예제 #1
0
  private static boolean handleCustCreditAndProdQuant(Session session, SalesOrder s) {

    Customer c = (Customer) session.get(Customer.class, s.getCustomer().getCode());
    if (s.getTotalPrice() > (c.getCreditLimit() - c.getCurrentCredit())) {
      return false;
    } else {
      Double curCredit = c.getCreditLimit() - s.getTotalPrice() - c.getCurrentCredit();
      c.setCurrentCredit(curCredit);
      session.saveOrUpdate(c);
    }
    for (OrderLines ol : s.getOrderLinesList()) {
      Product p = (Product) session.get(Product.class, ol.getProduct().getCode());
      int remQuantity = p.getQuantity() - ol.getQuantity();
      if (remQuantity < 0) {
        return false;
      } else {
        p.setQuantity(remQuantity);
        session.saveOrUpdate(p);
      }
    }
    return true;
  }