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™ now supports Android™ Apps for the BlackBerry® PlayBook™. 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
