details:   https://code.openbravo.com/erp/devel/pi/rev/60243532caef
changeset: 19845:60243532caef
user:      Eduardo Argal Guibert <eduardo.argal <at> openbravo.com>
date:      Mon Mar 04 10:49:27 2013 +0100
summary:   Fixed bug 22888 Distributed amount properly in AddOrderOrInvoice

diffstat:

 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.html
 |  30 +++++++++-
 1 files changed, 28 insertions(+), 2 deletions(-)

diffs (53 lines):

diff -r 9159b893ca71 -r 60243532caef 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.html
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.html
      Mon Mar 04 10:36:17 2013 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.html
      Mon Mar 04 10:49:27 2013 +0100
@@ -71,7 +71,6 @@
   if (isGLItemEnabled) {
     amount = subtract(amount, frm.inpGLSumAmount.value);
   }
-  
   if (!chk) {
     updateTotal();
     return;
@@ -90,13 +89,40 @@
     var total = chk.length;
     for ( i = 0; i < total; i++) {
       if (chk[i].checked) {
-        distributedAmount = add(distributedAmount, 
frm.elements["inpPaymentAmount" + chk[i].value].value);
+        if(frm.elements["inpPaymentAmount" + chk[i].value].value > 0){
+          distributedAmount = add(distributedAmount, 
frm.elements["inpPaymentAmount" + chk[i].value].value);
+        } else{
+          amount = subtract(amount, frm.elements["inpPaymentAmount" + 
chk[i].value].value);
+        }
       }
     }
     if (compare(amount, '>', distributedAmount) || compare(amount, '==', 
distributedAmount)) {
       amount = subtract(amount, distributedAmount);
       keepSelection = true;
     }
+    if (compare(amount, '>', 0)){
+        for (i = 0; i < total; i++) {
+          scheduledPaymentDetailId = frm.elements["inpRecordId" + i].value;
+          outstandingAmount = frm.elements["inpRecordAmt" + 
scheduledPaymentDetailId].value;
+          if(compare(outstandingAmount, '>', 0)){
+              continue;
+          }
+          if (chk[i].checked && keepSelection) {
+            if(compare(outstandingAmount, '<', amount) && 
compare(distributedAmount, '==', outstandingAmount))
+              continue;
+            else
+              amount = add(amount, frm.elements["inpPaymentAmount" + 
chk[i].value].value);
+          }
+          frm.elements["inpPaymentAmount" + scheduledPaymentDetailId].value = 
outstandingAmount;
+          for ( j = 0; j < total; j++) {
+            if (!chk[j].checked && chk[j].value === scheduledPaymentDetailId) {
+              chk[j].checked = true;
+              updateData(chk[j].value, chk[j].checked,null ,true );
+            }
+          }
+          amount = subtract(amount, outstandingAmount);
+        }
+    }
     for (i = 0; i < total; i++) {
       scheduledPaymentDetailId = frm.elements["inpRecordId" + i].value;
       outstandingAmount = frm.elements["inpRecordAmt" + 
scheduledPaymentDetailId].value;

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to