details:   https://code.openbravo.com/erp/devel/main/rev/39528c7e2870
changeset: 31730:39528c7e2870
user:      Miguel <martencobasmiguel <at> gmail.com>
date:      Mon Mar 20 12:51:51 2017 -0400
summary:   Fixes issue 35499: Currency conversion problem when posting a Goods 
Receipt.

This problem is caused because when posting a Goods Receipt related to a
Purchase Order and referring product defined as
"Book Using Purchase Order Price", is taking into account the Currency of the
Legal Organization to which Goods Receipt document belongs in exchange
for the Purchase Order.

To correct this error, is takes into account the Currency of the Purchase Order
related with the lines of the Goods Receipt, in the posting process.

details:   https://code.openbravo.com/erp/devel/main/rev/c58496414ce7
changeset: 31731:c58496414ce7
user:      Miguel <martencobasmiguel <at> gmail.com>
date:      Thu Mar 23 10:47:27 2017 -0400
summary:   Fixes issue 35566: Incorrect posting of a Matched Invoice document.

When posting a Matched Invoice document referring product defined
as "Book Using Purchase Order Price", the  currency being taken into
account corresponds to the legal entity to which the document belongs instead
of the Purchase Order's currency.

Now when you post a Matched Invoice document referring to a product defined
as "Book Using Purchase Order Price", take into account the Purchase Order's
currency.

details:   https://code.openbravo.com/erp/devel/main/rev/b1948c9bd671
changeset: 31732:b1948c9bd671
user:      Alvaro Ferraz <alvaro.ferraz <at> openbravo.com>
date:      Thu Mar 23 17:37:27 2017 +0100
summary:   Related to issue 35499 & Related to issue 35566: Code review 
improvements

Get currency from order line only in case product is defined as Book Using 
Purchase Order Price.

details:   https://code.openbravo.com/erp/devel/main/rev/595d854767a2
changeset: 31733:595d854767a2
user:      Miguel <martencobasmiguel <at> gmail.com>
date:      Mon Mar 20 14:07:23 2017 -0400
summary:   Fixes issue 35539: Delivered Sales Order Report is not showing 
business partner

The problem is that the link between c_order and c_bpartner tables is made by
the c_project table and in cases where the sales order is not related to a
project, the relationship between c_project and c_bpartner is going to return
null, causing it to be impossible to obtain the information of the
business partner.

To solve this problem the union is established between the tables c_order
and c_bdpartner.

details:   https://code.openbravo.com/erp/devel/main/rev/defaa5739e3f
changeset: 31734:defaa5739e3f
user:      Alvaro Ferraz <alvaro.ferraz <at> openbravo.com>
date:      Thu Mar 23 17:54:38 2017 +0100
summary:   Related to issue 35539: Code review improvements

Join with C_BPARTNER_LOCATION table done using C_ORDER table instead of 
C_PROJECT table.

details:   https://code.openbravo.com/erp/devel/main/rev/be40f5712403
changeset: 31735:be40f5712403
user:      RM packaging bot <staff.rm <at> openbravo.com>
date:      Thu Mar 23 19:41:53 2017 +0000
summary:   CI: merge back from main

details:   https://code.openbravo.com/erp/devel/main/rev/ee5bf188484a
changeset: 31736:ee5bf188484a
user:      Luis <luisrs8608 <at> gmail.com>
date:      Thu Mar 23 09:49:00 2017 -0400
summary:   Fixes issue 35385: Error is shown when posting a Goods Movement with 
a 0 cost

When it was a matter of posting a Goods Movements with zero cost, it showed
'Posted error', and in spite of this it was tried to post the document leaving
it in an inconsistent state, when testing the option Unpost an exception was
fired because it was to eliminate the lines When these were not created.

To solve this when it comes to posting a Goods Movements, it is validated that
all lines of this have a cost other than zero or cost null, in case this
condition is not met, the document is changed to Document Disabled and returned
False interrupting the post process since the cost of its lines has zero value.

details:   https://code.openbravo.com/erp/devel/main/rev/41352442cc7e
changeset: 31737:41352442cc7e
user:      Mark <markmm82 <at> gmail.com>
date:      Thu Mar 23 11:33:43 2017 -0400
summary:   Related to issue 34992 and 34589: Code review improvements

Related to 34992: Taken into accounts invoices with negatives prepayments.
Replaced some loops by queries to improve the performance.

Related to 34589: Functionality covered by two loops to validate payment status
has been replaced by a query to improve the performance.

details:   https://code.openbravo.com/erp/devel/main/rev/a169bf5db5fd
changeset: 31738:a169bf5db5fd
user:      RM packaging bot <staff.rm <at> openbravo.com>
date:      Sat Mar 25 00:38:07 2017 +0000
summary:   CI: update AD_MODULE to version 31737

diffstat:

 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml  
                           |    2 +-
 
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                  |    4 +-
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java
 |  118 +++++----
 
modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE.xml
                   |    2 +-
 
modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
        |    2 +-
 modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml       
                           |    2 +-
 
modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                       |    2 +-
 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml
                         |    2 +-
 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
              |    8 +-
 
modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml
                          |    2 +-
 
modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
               |    2 +-
 modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml   
                           |    2 +-
 
modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                   |    6 +-
 modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml     
                           |    2 +-
 
modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                     |    4 +-
 
modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml 
                          |    2 +-
 
modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                |    2 +-
 modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml  
                           |    2 +-
 
modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                  |    2 +-
 
modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml
                    |    2 +-
 
modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
         |    2 +-
 
modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml
             |    2 +-
 
modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
  |    2 +-
 
modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml
                         |    2 +-
 
modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
              |   10 +-
 
modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE.xml
                 |    2 +-
 
modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
      |    4 +-
 
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml
                 |    2 +-
 
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
      |    2 +-
 modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml    
                           |    2 +-
 
modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                    |    2 +-
 
modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml
                     |    2 +-
 
modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
          |   12 +-
 
modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml
            |    2 +-
 
modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
 |    2 +-
 
modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml
                  |    2 +-
 
modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
       |    6 +-
 
modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE.xml
                        |    2 +-
 
modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
             |    2 +-
 modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE.xml     
                           |    2 +-
 
modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                     |    6 +-
 modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE.xml    
                           |    2 +-
 
modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                    |   24 +-
 modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml              
                           |    2 +-
 modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml   
                           |   22 +-
 src-db/database/sourcedata/AD_MODULE.xml                                       
                           |    4 +-
 src/org/openbravo/erpCommon/ad_forms/DocInOut.java                             
                           |   25 +-
 src/org/openbravo/erpCommon/ad_forms/DocMatchInv.java                          
                           |    6 +-
 src/org/openbravo/erpCommon/ad_forms/DocMovement.java                          
                           |   20 +-
 src/org/openbravo/erpCommon/ad_reports/ReportSalesOrderProvided_data.xsql      
                           |    6 +-
 50 files changed, 183 insertions(+), 168 deletions(-)

diffs (truncated from 1260 to 300 lines):

diff -r bf2f97e60aa6 -r a169bf5db5fd 
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml
--- 
a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml 
    Wed Mar 22 13:37:20 2017 -0400
+++ 
b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml 
    Sat Mar 25 00:38:07 2017 +0000
@@ -6,7 +6,7 @@
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <NAME><![CDATA[Advanced Payables and 
Receivables Mngmt]]></NAME>
-<!--A918E3331C404B889D69AA9BFAFB23AC-->  
<VERSION><![CDATA[3.0.31724]]></VERSION>
+<!--A918E3331C404B889D69AA9BFAFB23AC-->  
<VERSION><![CDATA[3.0.31737]]></VERSION>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <DESCRIPTION><![CDATA[Managing your 
finances with an ERP does not have to be difficult. Enjoy a radically improved 
user experience that combines the power of an enterprise grade financial 
application with the simplicity and ease of a web 2.0 personal accounting 
service.]]></DESCRIPTION>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <HELP><![CDATA[Advanced Payables and 
Receivables Management simplifies and automates the business processes around 
the management of financial accounts, from the receipt and issue of payment, to 
the reconciliation of those events with bank statements.
 If you would like to help shape this module you are welcome to take part in 
the forum discussions or register feature requests or issues in the 
corresponding (Forum and Bug Tracking) sections in the Advanced Payables and 
Receivable project in the OB Forge.]]></HELP>
diff -r bf2f97e60aa6 -r a169bf5db5fd 
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
--- 
a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
  Wed Mar 22 13:37:20 2017 -0400
+++ 
b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
  Sat Mar 25 00:38:07 2017 +0000
@@ -7,7 +7,7 @@
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_DEPENDENT_MODULE_ID>
-<!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<STARTVERSION><![CDATA[2.1.31724]]></STARTVERSION>
+<!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<STARTVERSION><![CDATA[2.1.31737]]></STARTVERSION>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <DEPENDANT_MODULE_NAME><![CDATA[User 
Interface Selector]]></DEPENDANT_MODULE_NAME>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--B97FC854C6DD41E692161585645A900F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--B97FC854C6DD41E692161585645A900F-->  
<AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--B97FC854C6DD41E692161585645A900F-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--B97FC854C6DD41E692161585645A900F-->  
<STARTVERSION><![CDATA[3.0.31724]]></STARTVERSION>
+<!--B97FC854C6DD41E692161585645A900F-->  
<STARTVERSION><![CDATA[3.0.31737]]></STARTVERSION>
 <!--B97FC854C6DD41E692161585645A900F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--B97FC854C6DD41E692161585645A900F-->  
<DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--B97FC854C6DD41E692161585645A900F-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
diff -r bf2f97e60aa6 -r a169bf5db5fd 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java
 Wed Mar 22 13:37:20 2017 -0400
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java
 Sat Mar 25 00:38:07 2017 +0000
@@ -52,6 +52,7 @@
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.dal.service.OBDao;
+import org.openbravo.dal.service.OBQuery;
 import org.openbravo.data.FieldProvider;
 import org.openbravo.erpCommon.ad_actionButton.ActionButtonUtility;
 import org.openbravo.erpCommon.ad_forms.AcctServer;
@@ -254,25 +255,23 @@
             }
 
             // If Invoice has a awaiting execution payment related, show an 
Error
-            List<FIN_PaymentSchedule> psl = 
invoice.getFINPaymentScheduleList();
-            for (FIN_PaymentSchedule ps : psl) {
-              List<FIN_PaymentScheduleDetail> psdl = ps
-                  .getFINPaymentScheduleDetailInvoicePaymentScheduleList();
-              for (FIN_PaymentScheduleDetail psd : psdl) {
-                FIN_PaymentDetail pd = psd.getPaymentDetails();
-                if (pd != null
-                    && (pd.getFinPayment().getStatus().equals("RPAE") || 
pd.getFinPayment()
-                        .getStatus().equals("RPAP"))) {
-                  msg = new OBError();
-                  msg.setType("Error");
-                  msg.setTitle(Utility.messageBD(this, "Error", 
vars.getLanguage()));
-                  msg.setMessage(OBMessageUtils
-                      
.messageBD("APRM_InvoiceAwaitingExcutionPaymentRelated"));
-                  vars.setMessage(strTabId, msg);
-                  printPageClosePopUp(response, vars, 
Utility.getTabURL(strTabId, "R", true));
-                  return;
-                }
-              }
+            StringBuilder fpHQLQuery = new StringBuilder(" as fp ");
+            fpHQLQuery.append("JOIN fp.fINPaymentDetailList fpd ");
+            fpHQLQuery.append("JOIN fpd.fINPaymentScheduleDetailList fpsd ");
+            fpHQLQuery.append("JOIN fpsd.invoicePaymentSchedule fps ");
+            fpHQLQuery.append("WHERE fps.invoice = :invoice AND fp.status IN 
('RPAE', 'RPAP')");
+            OBQuery<FIN_Payment> paymentQuery = 
OBDal.getInstance().createQuery(FIN_Payment.class,
+                fpHQLQuery.toString());
+            paymentQuery.setNamedParameter("invoice", invoice);
+            paymentQuery.setMaxResult(1);
+            if (paymentQuery.uniqueResult() != null) {
+              msg = new OBError();
+              msg.setType("Error");
+              msg.setTitle(Utility.messageBD(this, "Error", 
vars.getLanguage()));
+              
msg.setMessage(OBMessageUtils.messageBD("APRM_InvoiceAwaitingExcutionPaymentRelated"));
+              vars.setMessage(strTabId, msg);
+              printPageClosePopUp(response, vars, Utility.getTabURL(strTabId, 
"R", true));
+              return;
             }
 
             // Reversed invoice's date: voidDate in Purchase Invoice, new 
Date() in Sales Invoice
@@ -341,7 +340,7 @@
         }
 
         boolean voidingPrepaidInvoice = "RC".equals(strdocaction)
-            && invoice.getPrepaymentamt().compareTo(BigDecimal.ZERO) > 0;
+            && invoice.getPrepaymentamt().compareTo(BigDecimal.ZERO) != 0;
 
         final ProcessInstance pinstance = 
CallProcess.getInstance().call(process, strC_Invoice_ID,
             parameters);
@@ -366,31 +365,16 @@
             if (voidingPrepaidInvoice) {
               processPayment = true;
 
-              FIN_Payment orderPayment = null;
-
-              List<FIN_PaymentSchedule> fpsList = 
invoice.getFINPaymentScheduleList();
-
-              // Searching for invoice payment
-              for (FIN_PaymentSchedule fps : fpsList) {
-                List<FIN_PaymentScheduleDetail> fpsdList = fps
-                    .getFINPaymentScheduleDetailInvoicePaymentScheduleList();
-                for (FIN_PaymentScheduleDetail fpsd : fpsdList) {
-                  FIN_PaymentDetail pd = fpsd.getPaymentDetails();
-                  orderPayment = pd.getFinPayment();
-                  break;
-                }
-                if (orderPayment != null) {
-                  break;
-                }
-              }
-
-              
fpsList.addAll(revInvoice.getInvoice().getFINPaymentScheduleList());
-
-              List<FIN_PaymentScheduleDetail> fpsdList = new ArrayList<>();
-
-              for (FIN_PaymentSchedule fps : fpsList) {
-                
fpsdList.addAll(fps.getFINPaymentScheduleDetailInvoicePaymentScheduleList());
-              }
+              StringBuilder orderPaymentHQLQuery = new StringBuilder(" as fp 
");
+              orderPaymentHQLQuery.append("JOIN fp.fINPaymentDetailList fpd ");
+              orderPaymentHQLQuery.append("JOIN 
fpd.fINPaymentScheduleDetailList fpsd ");
+              orderPaymentHQLQuery.append("JOIN fpsd.invoicePaymentSchedule 
fps ");
+              orderPaymentHQLQuery.append("WHERE fps.invoice = :invoice");
+              OBQuery<FIN_Payment> paymentQuery = 
OBDal.getInstance().createQuery(
+                  FIN_Payment.class, orderPaymentHQLQuery.toString());
+              paymentQuery.setNamedParameter("invoice", invoice);
+              paymentQuery.setMaxResult(1);
+              FIN_Payment orderPayment = (FIN_Payment) 
paymentQuery.uniqueResult();
 
               final DocumentType docType = 
FIN_Utility.getDocumentType(invoice.getOrganization(),
                   orderPayment.isReceipt() ? AcctServer.DOCTYPE_ARReceipt
@@ -409,9 +393,21 @@
 
               invoice.setOutstandingAmount(BigDecimal.ZERO);
 
+              StringBuilder psdHQLQuery = new StringBuilder(" as fpsd ");
+              psdHQLQuery.append("WHERE fpsd.invoicePaymentSchedule IN ");
+              psdHQLQuery.append("(SELECT fps.id FROM FIN_Payment_Schedule fps 
");
+              psdHQLQuery.append(" WHERE fps.invoice = :invoice ");
+              psdHQLQuery.append(" OR fps.invoice = :revInvoice))");
+              OBQuery<FIN_PaymentScheduleDetail> psdQuery = 
OBDal.getInstance().createQuery(
+                  FIN_PaymentScheduleDetail.class, psdHQLQuery.toString());
+              psdQuery.setNamedParameter("invoice", invoice);
+              psdQuery.setNamedParameter("revInvoice", 
revInvoice.getInvoice());
+
               // Updating dummy payment lines with invoice and reverse invoice
+              List<FIN_PaymentScheduleDetail> fpsdList = psdQuery.list();
               for (FIN_PaymentScheduleDetail fpsd : fpsdList) {
-                FIN_PaymentDetail psdOldPaymentDetail = 
fpsd.getPaymentDetails();
+                // invoice payment detail asociated to the order
+                boolean invoiceFPDOrder = fpsd.getPaymentDetails() != null;
 
                 // Create a payment detail
                 FIN_PaymentDetail pd = 
OBProvider.getInstance().get(FIN_PaymentDetail.class);
@@ -430,14 +426,22 @@
 
                 dummyPayment.getFINPaymentDetailList().add(pd);
 
-                if (psdOldPaymentDetail != null) {
-                  for (FIN_PaymentScheduleDetail orderPSD : psdOldPaymentDetail
-                      .getFINPaymentScheduleDetailList()) {
-                    if (!StringUtils.equals(orderPSD.getId(), fpsd.getId())) {
-                      // Update order received amount
-                      
orderPSD.setAmount(orderPSD.getAmount().add(fpsd.getAmount()));
-                      OBDal.getInstance().save(orderPSD);
-                    }
+                if (invoiceFPDOrder) {
+                  StringBuilder orderPSDHQLQuery = new StringBuilder();
+                  orderPSDHQLQuery.append(" as fpsd ");
+                  orderPSDHQLQuery.append("JOIN fpsd.paymentDetails fpd ");
+                  orderPSDHQLQuery.append("WHERE fpd.finPayment = :payment ");
+                  orderPSDHQLQuery.append("AND fpsd <> :invoicePSD");
+                  OBQuery<FIN_PaymentScheduleDetail> orderPSDQuery = 
OBDal.getInstance()
+                      .createQuery(FIN_PaymentScheduleDetail.class, 
orderPSDHQLQuery.toString());
+                  orderPSDQuery.setNamedParameter("payment", orderPayment);
+                  orderPSDQuery.setNamedParameter("invoicePSD", fpsd);
+                  List<FIN_PaymentScheduleDetail> orderPSDList = 
orderPSDQuery.list();
+
+                  for (FIN_PaymentScheduleDetail orderPSD : orderPSDList) {
+                    // Update order received amount
+                    
orderPSD.setAmount(orderPSD.getAmount().add(fpsd.getAmount()));
+                    OBDal.getInstance().save(orderPSD);
                   }
                   FIN_PaymentSchedule ps = fpsd.getInvoicePaymentSchedule();
                   ps.setPaidAmount(BigDecimal.ZERO);
@@ -445,10 +449,8 @@
                   OBDal.getInstance().save(ps);
 
                   // Update invoice outstanding amount
-                  if (StringUtils.equals(ps.getInvoice().getId(), 
invoice.getId())) {
-                    
invoice.setOutstandingAmount(invoice.getOutstandingAmount().add(
-                        fpsd.getAmount()));
-                  }
+                  invoice
+                      
.setOutstandingAmount(invoice.getOutstandingAmount().add(fpsd.getAmount()));
                 }
               }
               OBDal.getInstance().save(dummyPayment);
diff -r bf2f97e60aa6 -r a169bf5db5fd 
modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE.xml
--- 
a/modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE.xml
   Wed Mar 22 13:37:20 2017 -0400
+++ 
b/modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE.xml
   Sat Mar 25 00:38:07 2017 +0000
@@ -6,7 +6,7 @@
 <!--8A098711BB324335A19833286BDB093D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--8A098711BB324335A19833286BDB093D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8A098711BB324335A19833286BDB093D-->  <NAME><![CDATA[Apache External 
Connection Pool]]></NAME>
-<!--8A098711BB324335A19833286BDB093D-->  
<VERSION><![CDATA[1.0.31724]]></VERSION>
+<!--8A098711BB324335A19833286BDB093D-->  
<VERSION><![CDATA[1.0.31737]]></VERSION>
 <!--8A098711BB324335A19833286BDB093D-->  <DESCRIPTION><![CDATA[Apache External 
Connection Pool]]></DESCRIPTION>
 <!--8A098711BB324335A19833286BDB093D-->  <HELP><![CDATA[This module implements 
the Apache JDBC Connection Pool 
(http://wiki.openbravo.com/wiki/Modules:Apache_JDBC_Connection_Pool).]]></HELP>
 <!--8A098711BB324335A19833286BDB093D-->  <TYPE><![CDATA[M]]></TYPE>
diff -r bf2f97e60aa6 -r a169bf5db5fd 
modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
--- 
a/modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
        Wed Mar 22 13:37:20 2017 -0400
+++ 
b/modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
        Sat Mar 25 00:38:07 2017 +0000
@@ -7,7 +7,7 @@
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  
<AD_MODULE_ID><![CDATA[8A098711BB324335A19833286BDB093D]]></AD_MODULE_ID>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_DEPENDENT_MODULE_ID>
-<!--1467C397BC5F4999A5606F39CD6FF8A4-->  
<STARTVERSION><![CDATA[2.1.31724]]></STARTVERSION>
+<!--1467C397BC5F4999A5606F39CD6FF8A4-->  
<STARTVERSION><![CDATA[2.1.31737]]></STARTVERSION>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  
<DEPENDANT_MODULE_NAME><![CDATA[Openbravo 3.0 
Framework]]></DEPENDANT_MODULE_NAME>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
diff -r bf2f97e60aa6 -r a169bf5db5fd 
modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml
--- a/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml  
Wed Mar 22 13:37:20 2017 -0400
+++ b/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml  
Sat Mar 25 00:38:07 2017 +0000
@@ -6,7 +6,7 @@
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <NAME><![CDATA[JBoss Weld]]></NAME>
-<!--C70732EA90A14EC0916078B85CC33D2D-->  
<VERSION><![CDATA[1.1.31724]]></VERSION>
+<!--C70732EA90A14EC0916078B85CC33D2D-->  
<VERSION><![CDATA[1.1.31737]]></VERSION>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <DESCRIPTION><![CDATA[JBoss 
Weld]]></DESCRIPTION>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <HELP><![CDATA[Provides the JBoss 
Weld framework: Java Contexts and Dependency Injection for the Java EE platform 
(CDI). For more information see http://seamframework.org/Weld]]></HELP>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  
<URL><![CDATA[http://forge.openbravo.com/projects/weld]]></URL>
diff -r bf2f97e60aa6 -r a169bf5db5fd 
modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
--- 
a/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
       Wed Mar 22 13:37:20 2017 -0400
+++ 
b/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
       Sat Mar 25 00:38:07 2017 +0000
@@ -7,7 +7,7 @@
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  
<AD_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_MODULE_ID>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  
<STARTVERSION><![CDATA[3.0.31724]]></STARTVERSION>
+<!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  
<STARTVERSION><![CDATA[3.0.31737]]></STARTVERSION>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  
<DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
diff -r bf2f97e60aa6 -r a169bf5db5fd 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml
--- 
a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml
 Wed Mar 22 13:37:20 2017 -0400
+++ 
b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml
 Sat Mar 25 00:38:07 2017 +0000
@@ -6,7 +6,7 @@
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <NAME><![CDATA[User Interface 
Application]]></NAME>
-<!--9BA0836A3CD74EE4AB48753A47211BCC-->  
<VERSION><![CDATA[2.1.31724]]></VERSION>
+<!--9BA0836A3CD74EE4AB48753A47211BCC-->  
<VERSION><![CDATA[2.1.31737]]></VERSION>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <DESCRIPTION><![CDATA[Provides the 
main application components for the openbravo user interface]]></DESCRIPTION>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <HELP><![CDATA[Provides the main 
application components for the openbravo user interface. The main layout 
incorporates a navigation bar and a main view area.]]></HELP>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  
<URL><![CDATA[http://forge.openbravo.com/projects/clientapplication]]></URL>
diff -r bf2f97e60aa6 -r a169bf5db5fd 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
--- 
a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
      Wed Mar 22 13:37:20 2017 -0400
+++ 
b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
      Sat Mar 25 00:38:07 2017 +0000
@@ -7,7 +7,7 @@
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_DEPENDENT_MODULE_ID>
-<!--15D7CE8D95D043189162DBABA54A1F61-->  
<STARTVERSION><![CDATA[2.1.31724]]></STARTVERSION>
+<!--15D7CE8D95D043189162DBABA54A1F61-->  
<STARTVERSION><![CDATA[2.1.31737]]></STARTVERSION>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON 
Datasource]]></DEPENDANT_MODULE_NAME>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--60A170212F36499D83B8AD38D01F46B3-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--60A170212F36499D83B8AD38D01F46B3-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--60A170212F36499D83B8AD38D01F46B3-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--60A170212F36499D83B8AD38D01F46B3-->  
<STARTVERSION><![CDATA[2.1.31724]]></STARTVERSION>
+<!--60A170212F36499D83B8AD38D01F46B3-->  
<STARTVERSION><![CDATA[2.1.31737]]></STARTVERSION>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <DEPENDANT_MODULE_NAME><![CDATA[User 
Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--60A170212F36499D83B8AD38D01F46B3-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--824D60CB352E4099B1D8C903CA139DAE-->  
<STARTVERSION><![CDATA[3.0.31724]]></STARTVERSION>
+<!--824D60CB352E4099B1D8C903CA139DAE-->  
<STARTVERSION><![CDATA[3.0.31737]]></STARTVERSION>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  
<DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--E8FD820AFE3D4FE08C02FC47769026AD-->  
<STARTVERSION><![CDATA[8.1.31724]]></STARTVERSION>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to