# HG changeset patch
# User Ranjith S R <ranjith@qualiantech.com>
# Date 1461931655 -19800
#      Fri Apr 29 17:37:35 2016 +0530
# Node ID 58e57243735cd652347807b7833817c1e9eaa61c
# Parent  b839c2bf93e75477a0709dbf92ca13fc0dbeb606
Related to issue 32777 : Order Invoice Terms should be loaded based on Customer default values
If Customer default values is not available, Organizational default values should be applied.
If Organizationa default value is not avaiable, First value should be loaded from the Invoicing Rules list

diff -r b839c2bf93e7 -r 58e57243735c src/org/openbravo/retail/posterminal/OrderLoader.java
--- a/src/org/openbravo/retail/posterminal/OrderLoader.java	Fri Apr 29 17:37:35 2016 +0530
+++ b/src/org/openbravo/retail/posterminal/OrderLoader.java	Fri Apr 29 17:37:35 2016 +0530
@@ -1456,7 +1456,24 @@
       }
     }
 
-    order.setInvoiceTerms(bp.getInvoiceTerms());
+    if (bp.getInvoiceTerms() != null) {
+      order.setInvoiceTerms(bp.getInvoiceTerms());
+    } else if (order.getOrganization().getObretcoDbpIrulesid() != null) {
+      order.setInvoiceTerms(order.getOrganization().getObretcoDbpIrulesid());
+    } else {
+      OBCriteria<org.openbravo.model.ad.domain.List> invoiceRules = OBDal.getInstance()
+          .createCriteria(org.openbravo.model.ad.domain.List.class);
+      invoiceRules.add(Restrictions.eq(org.openbravo.model.ad.domain.List.PROPERTY_REFERENCE
+          + ".id", "150"));
+      invoiceRules.add(Restrictions.eq(org.openbravo.model.ad.domain.List.PROPERTY_ACTIVE, true));
+      invoiceRules.addOrderBy(org.openbravo.model.ad.domain.List.PROPERTY_SEARCHKEY, true);
+      invoiceRules.setMaxResults(1);
+      List<org.openbravo.model.ad.domain.List> lstInvoiceRule = invoiceRules.list();
+      if (lstInvoiceRule != null && lstInvoiceRule.size() > 0) {
+        order.setInvoiceTerms(lstInvoiceRule.get(0).getSearchKey());
+      }
+    }
+
     order.setGrandTotalAmount(BigDecimal.valueOf(jsonorder.getDouble("gross")).setScale(
         pricePrecision, RoundingMode.HALF_UP));
     order.setSummedLineAmount(BigDecimal.valueOf(jsonorder.getDouble("net")).setScale(
