details:   https://code.openbravo.com/erp/devel/pi/rev/8e9266e71595
changeset: 25901:8e9266e71595
user:      Unai Martirena <unai.martirena <at> openbravo.com>
date:      Wed Feb 11 18:25:54 2015 +0100
summary:   Related to bug 28854: Fix on JoinClauserOrder and JoinClauseInvoice.

filter by business partner only if a business partner is selected in the parent 
window

details:   https://code.openbravo.com/erp/devel/pi/rev/f0e8afa3c9fa
changeset: 25902:f0e8afa3c9fa
user:      Unai Martirena <unai.martirena <at> openbravo.com>
date:      Wed Feb 11 19:01:27 2015 +0100
summary:   Fixes bug 28896: Purchase Invoices Supplier reference is shown in 
add payment.

A case has been added in AddPaymentOrderInvoicesTransformer to display the 
Supplier Reference instead of Invoice Number when is configured like that in 
Organization Info tab, only for Purchase Invoices

diffstat:

 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/hqlinjections/AddPaymentOrderInvoicesTransformer.java
 |  47 ++++++++-
 1 files changed, 38 insertions(+), 9 deletions(-)

diffs (113 lines):

diff -r 084bfe1a6854 -r f0e8afa3c9fa 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/hqlinjections/AddPaymentOrderInvoicesTransformer.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/hqlinjections/AddPaymentOrderInvoicesTransformer.java
       Wed Feb 11 17:49:29 2015 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/hqlinjections/AddPaymentOrderInvoicesTransformer.java
       Wed Feb 11 19:01:27 2015 +0100
@@ -35,6 +35,8 @@
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.model.ad.datamodel.Column;
 import org.openbravo.model.ad.datamodel.Table;
+import org.openbravo.model.common.enterprise.OrganizationInformation;
+import org.openbravo.model.common.invoice.Invoice;
 import org.openbravo.service.datasource.HQLDataSourceService;
 import org.openbravo.service.datasource.hql.HqlQueryTransformer;
 import org.openbravo.service.db.DalConnectionProvider;
@@ -68,8 +70,8 @@
     boolean justCount = strJustCount.equalsIgnoreCase("true");
 
     StringBuffer selectClause = getSelectClause(transactionType, 
hasSelectedIds);
-    StringBuffer joinClauseOrder = getJoinClauseOrder();
-    StringBuffer joinClauseInvoice = getJoinClauseInvoice();
+    StringBuffer joinClauseOrder = getJoinClauseOrder(requestParameters);
+    StringBuffer joinClauseInvoice = getJoinClauseInvoice(requestParameters);
     StringBuffer whereClause = getWhereClause(transactionType, 
requestParameters, selectedPSDs);
     StringBuffer groupByClause = getGroupByClause(transactionType);
     StringBuffer orderByClause = new StringBuffer();
@@ -119,7 +121,11 @@
     selectClause.append(getAggregatorFunction("psd.id") + " as 
paymentScheduleDetail, ");
     if ("I".equals(transactionType)) {
       selectClause.append(getAggregatorFunction("ord.documentNo") + " as 
salesOrderNo, ");
-      selectClause.append(" inv.documentNo as invoiceNo, ");
+      selectClause.append(" case when (inv." + 
Invoice.PROPERTY_SALESTRANSACTION
+          + " = false and oinfo is not null and oinfo."
+          + OrganizationInformation.PROPERTY_APRMPAYMENTDESCRIPTION
+          + " like 'Supplier Reference') then inv." + 
Invoice.PROPERTY_ORDERREFERENCE
+          + " else inv." + Invoice.PROPERTY_DOCUMENTNO + " end as invoiceNo, 
");
       selectClause
           .append(" COALESCE(ips.finPaymentmethod.id, ops.finPaymentmethod.id) 
as paymentMethod, ");
       selectClause.append(" COALESCE(ipsfp.name, opsfp.name) as 
paymentMethodName, ");
@@ -130,7 +136,12 @@
       selectClause.append(" max(COALESCE(inv.grandTotalAmount, 0)) as 
invoicedAmount, ");
     } else if ("O".equals(transactionType)) {
       selectClause.append(" ord.documentNo as salesOrderNo, ");
-      selectClause.append(getAggregatorFunction("inv.documentNo") + " as 
invoiceNo, ");
+      selectClause.append(getAggregatorFunction(" case when (inv."
+          + Invoice.PROPERTY_SALESTRANSACTION + " = false and oinfo is not 
null and oinfo."
+          + OrganizationInformation.PROPERTY_APRMPAYMENTDESCRIPTION
+          + " like 'Supplier Reference') then inv." + 
Invoice.PROPERTY_ORDERREFERENCE
+          + " else inv." + Invoice.PROPERTY_DOCUMENTNO + " end")
+          + " as invoiceNo, ");
       selectClause
           .append(" COALESCE(ops.finPaymentmethod.id, ips.finPaymentmethod.id) 
as paymentMethod, ");
       selectClause.append(" COALESCE(opsfp.name, ipsfp.name) as 
paymentMethodName, ");
@@ -141,7 +152,11 @@
       selectClause.append(" sum(COALESCE(inv.grandTotalAmount, 0)) as 
invoicedAmount, ");
     } else {
       selectClause.append(" ord.documentNo as salesOrderNo, ");
-      selectClause.append(" inv.documentNo as invoiceNo, ");
+      selectClause.append(" case when (inv." + 
Invoice.PROPERTY_SALESTRANSACTION
+          + " = false and oinfo is not null and oinfo."
+          + OrganizationInformation.PROPERTY_APRMPAYMENTDESCRIPTION
+          + " like 'Supplier Reference') then inv." + 
Invoice.PROPERTY_ORDERREFERENCE
+          + " else inv." + Invoice.PROPERTY_DOCUMENTNO + " end as invoiceNo, 
");
       selectClause
           .append(" COALESCE(ips.finPaymentmethod.id, ops.finPaymentmethod.id) 
as paymentMethod, ");
       selectClause.append(" COALESCE(ipsfp.name, opsfp.name) as 
paymentMethodName, ");
@@ -165,17 +180,25 @@
     return selectClause;
   }
 
-  protected StringBuffer getJoinClauseOrder() {
+  protected StringBuffer getJoinClauseOrder(Map<String, String> 
requestParameters) {
+    String strBusinessPartnerId = requestParameters.get("received_from");
     StringBuffer joinClauseOrder = new StringBuffer();
     joinClauseOrder
-        .append(" with ord.businessPartner.id = :businessPartnerId and 
ord.salesTransaction = :isSalesTransaction and ord.currency.id = :currencyId");
+        .append(" with ord.salesTransaction = :isSalesTransaction and 
ord.currency.id = :currencyId");
+    if (strBusinessPartnerId != null && !"null".equals(strBusinessPartnerId)) {
+      joinClauseOrder.append(" and ord.businessPartner.id = 
:businessPartnerId");
+    }
     return joinClauseOrder;
   }
 
-  protected StringBuffer getJoinClauseInvoice() {
+  protected StringBuffer getJoinClauseInvoice(Map<String, String> 
requestParameters) {
+    String strBusinessPartnerId = requestParameters.get("received_from");
     StringBuffer joinClauseInvoice = new StringBuffer();
     joinClauseInvoice
-        .append(" with inv.businessPartner.id = :businessPartnerId and 
inv.salesTransaction = :isSalesTransaction and inv.currency.id = :currencyId");
+        .append(" with inv.salesTransaction = :isSalesTransaction and 
inv.currency.id = :currencyId");
+    if (strBusinessPartnerId != null && !"null".equals(strBusinessPartnerId)) {
+      joinClauseInvoice.append(" and inv.businessPartner.id = 
:businessPartnerId");
+    }
     return joinClauseInvoice;
   }
 
@@ -269,6 +292,9 @@
       groupByClause.append(" COALESCE(ipsfp.name, opsfp.name), ");
       groupByClause.append(" COALESCE(ips.expectedDate, ops.expectedDate), ");
       groupByClause.append(" COALESCE(ipriority.priority, opriority.priority), 
");
+      groupByClause.append(" inv.salesTransaction, ");
+      groupByClause.append(" oinfo.organization, ");
+      groupByClause.append(" inv.orderReference, ");
     } else if ("O".equals(transactionType)) {
       groupByClause.append(" ord.documentNo, ");
       groupByClause.append(" COALESCE(ops.finPaymentmethod.id, 
ips.finPaymentmethod.id), ");
@@ -282,6 +308,9 @@
       groupByClause.append(" COALESCE(ipsfp.name, opsfp.name), ");
       groupByClause.append(" COALESCE(ips.expectedDate, ops.expectedDate), ");
       groupByClause.append(" COALESCE(ipriority.priority, opriority.priority), 
");
+      groupByClause.append(" inv.salesTransaction, ");
+      groupByClause.append(" oinfo.organization, ");
+      groupByClause.append(" inv.orderReference, ");
     }
     groupByClause.append(" COALESCE(invbp.id, ordbp.id), ");
     groupByClause.append(" COALESCE(invbp.name, ordbp.name) ");

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to