details:   https://code.openbravo.com/erp/devel/pi/rev/d9618a03e3bb
changeset: 14167:d9618a03e3bb
user:      Mikel Irurita <mikel.irurita <at> openbravo.com>
date:      Mon Oct 31 12:20:52 2011 +0100
summary:   Fixes issue 18491: validation in payment process is failing.
Validation is failing under some circunstancies (see issue notes).
The validation was preventing to pay more than expected in the payment plan 
(overpayments).
But due to how payment schedule details are created (in extension point), 
temporary overpayments
are allowed. In this case the validation was showing an error and it was not 
possible to
process the payment.
The only case in which the validation is adding value is when the payment plan 
info does not match
with the payment schedule details. This can happen because of an issue. We 
already have alerts for
checking this scenarios and the APRM payment monitor is able to fix incorrect 
payment plans.
The validation has been removed

details:   https://code.openbravo.com/erp/devel/pi/rev/57a7a2379efa
changeset: 14168:57a7a2379efa
user:      Mikel Irurita <mikel.irurita <at> openbravo.com>
date:      Mon Oct 31 12:22:52 2011 +0100
summary:   Related to issue 18895: code review - improve performance

diffstat:

 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
 |  39 ----------
 
modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/FIN_Utilities.js
                |  13 +-
 2 files changed, 6 insertions(+), 46 deletions(-)

diffs (100 lines):

diff -r b2c924670350 -r 57a7a2379efa 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
     Mon Oct 31 11:41:03 2011 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
     Mon Oct 31 12:22:52 2011 +0100
@@ -30,7 +30,6 @@
 import org.openbravo.advpaymentmngt.dao.TransactionsDao;
 import org.openbravo.advpaymentmngt.exception.NoExecutionProcessFoundException;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
-import org.openbravo.base.exception.OBException;
 import org.openbravo.base.provider.OBProvider;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.dal.core.OBContext;
@@ -45,7 +44,6 @@
 import org.openbravo.model.financialmgmt.payment.FIN_FinaccTransaction;
 import org.openbravo.model.financialmgmt.payment.FIN_Payment;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentDetail;
-import org.openbravo.model.financialmgmt.payment.FIN_PaymentSchedule;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail;
 import org.openbravo.model.financialmgmt.payment.PaymentExecutionProcess;
 import org.openbravo.scheduling.ProcessBundle;
@@ -269,15 +267,11 @@
                   } else {
                     increaseCustomerCredit(businessPartner, amount);
                   }
-                  
validateAmount(paymentScheduleDetail.getInvoicePaymentSchedule(),
-                      paymentScheduleDetail.getAmount(), 
paymentScheduleDetail.getWriteoffAmount());
                   FIN_AddPayment.updatePaymentScheduleAmounts(
                       paymentScheduleDetail.getInvoicePaymentSchedule(),
                       paymentScheduleDetail.getAmount(), 
paymentScheduleDetail.getWriteoffAmount());
                 }
                 if (paymentScheduleDetail.getOrderPaymentSchedule() != null) {
-                  
validateAmount(paymentScheduleDetail.getOrderPaymentSchedule(),
-                      paymentScheduleDetail.getAmount(), 
paymentScheduleDetail.getWriteoffAmount());
                   FIN_AddPayment.updatePaymentScheduleAmounts(
                       paymentScheduleDetail.getOrderPaymentSchedule(),
                       paymentScheduleDetail.getAmount(), 
paymentScheduleDetail.getWriteoffAmount());
@@ -670,39 +664,6 @@
     }
   }
 
-  /**
-   * Checks if the amount to pay/receive fits with the outstanding amount in 
the invoice or order.
-   * 
-   * @param paymentSchedule
-   *          Payment plan of the order or invoice where the outstanding 
amount is specified.
-   * @param amount
-   *          Amount to by paid or received.
-   * @param writeOffAmount
-   *          Write off amount.
-   * @return True if the amount is valid.
-   * @throws OBException
-   *           Exception explaining why the amount is not valid.
-   */
-  private boolean validateAmount(FIN_PaymentSchedule paymentSchedule, 
BigDecimal amount,
-      BigDecimal writeOffAmount) throws OBException {
-    BigDecimal totalPaid = amount;
-    BigDecimal outstanding = paymentSchedule.getOutstandingAmount();
-    if (writeOffAmount != null && writeOffAmount.compareTo(BigDecimal.ZERO) != 
0) {
-      totalPaid = amount.add(writeOffAmount);
-    }
-    // ((totalPaid > 0 || outstanding > 0) && totalPaid <= outstanding)
-    // || (totalPaid < 0 && outstanding < 0 && totalPaid >= outstanding)
-    if (((totalPaid.compareTo(BigDecimal.ZERO) == 1 || 
outstanding.compareTo(BigDecimal.ZERO) == 1) && totalPaid
-        .compareTo(outstanding) <= 0)
-        || (totalPaid.compareTo(BigDecimal.ZERO) == -1
-            && outstanding.compareTo(BigDecimal.ZERO) == -1 && 
totalPaid.compareTo(outstanding) >= 0)) {
-      return true;
-    } else {
-      throw new 
OBException(String.format(FIN_Utility.messageBD("APRM_AmountOutOfRange"),
-          totalPaid.toString(), 
paymentSchedule.getOutstandingAmount().toString()));
-    }
-  }
-
   private List<ConversionRateDoc> getConversionRateDocument(FIN_Payment 
payment) {
     OBContext.setAdminMode();
     try {
diff -r b2c924670350 -r 57a7a2379efa 
modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/FIN_Utilities.js
--- 
a/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/FIN_Utilities.js
    Mon Oct 31 11:41:03 2011 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/FIN_Utilities.js
    Mon Oct 31 12:22:52 2011 +0100
@@ -711,15 +711,14 @@
  * @return
  */
 function reloadParentGrid() {
-  var f, dad, layoutMDI;
+  var f, dad, layoutMDI, popup;
   try {
     f = getFrame('LayoutMDI');
-    layoutMDI = (f && f.OB
-                 && f.OB.Layout.ClassicOBCompatibility.Popup
-                 && 
f.OB.Layout.ClassicOBCompatibility.Popup.getPopup('process')
-                 && 
f.OB.Layout.ClassicOBCompatibility.Popup.getPopup('process').getIframeHtmlObj()
-                 && 
f.OB.Layout.ClassicOBCompatibility.Popup.getPopup('process').getIframeHtmlObj().contentWindow
-                 && 
f.OB.Layout.ClassicOBCompatibility.Popup.getPopup('process').getIframeHtmlObj().contentWindow.frames[0]);
+    popup = f && f.OB && f.OB.Layout.ClassicOBCompatibility.Popup;
+    layoutMDI = popup && popup.getPopup('process')
+                && popup.getPopup('process').getIframeHtmlObj()
+                && popup.getPopup('process').getIframeHtmlObj().contentWindow
+                && 
popup.getPopup('process').getIframeHtmlObj().contentWindow.frames[0];
     dad = layoutMDI || top.opener;
     if (dad) {
       if (typeof dad.loadGrid === "function" || typeof dad.loadGrid === 
"object") {

------------------------------------------------------------------------------
Get your Android app more play: Bring it to the BlackBerry PlayBook 
in minutes. BlackBerry App World&#153; now supports Android&#153; Apps 
for the BlackBerry&reg; PlayBook&#153;. Discover just how easy and simple 
it is! http://p.sf.net/sfu/android-dev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to