Customer Payment, Supplier Payment: early discount support.
[fa-stable.git] / js / payalloc.js
index 1ea079866a9af88fcf1f24933dd9e5174645a3d3..d633a3cf19881b8c4a965f3e6c936d6a3a7d2853 100644 (file)
@@ -14,20 +14,14 @@ function focus_alloc(i) {
 }
 
 function blur_alloc(i) {
-               var change = get_amount(i.name);
-               
-               if (i.name != 'amount' && i.name != 'charge' && i.name != 'discount')
-                       change = Math.min(change, get_amount('maxval'+i.name.substr(6), 1))
+               var id = i.name.substr(6)
+               var unallocated = get_amount('un_allocated'+id);
 
-               price_format(i.name, change, user.pdec);
-               if (i.name != 'amount' && i.name != 'charge') {
-                       if (change<0) change = 0;
-                       change = change-i.getAttribute('_last');
-                       if (i.name == 'discount') change = -change;
+               var cur = Math.max(Math.min(get_amount(i.name), unallocated), 0);
 
-                       var total = get_amount('amount')+change;
-                       price_format('amount', total, user.pdec, 0);
-               }
+               price_format(i.name, cur, user.pdec);
+               price_format('left'+id, unallocated-cur, user.pdec, 1);
+               update_totals()
 }
 
 function update_totals() {
@@ -40,19 +34,23 @@ function update_totals() {
                        && (get_amount('un_allocated'+docs[i]) == get_amount('amount'+docs[i])))
                                discount += get_amount('early_disc'+docs[i]);
        }
+       console.info(discount);
        price_format('amount', amount-discount, user.pdec);
-       price_format('discount', discount, user.pdec);
+       price_format('discount', discount, user.pdec, 1);
        
 }
 
 function allocate_all(doc) {
-       var unallocated = get_amount('maxval'+doc, 1);
+       var unallocated = get_amount('un_allocated'+doc);
        price_format('amount'+doc, unallocated, user.pdec);
+       price_format('left'+doc, 0, user.pdec, 1);
        update_totals();
 }
 
 function allocate_none(doc) {
+       var unallocated = get_amount('un_allocated'+doc);
        price_format('amount'+doc, 0, user.pdec);
+       price_format('left'+doc, unallocated, user.pdec, 1);
        update_totals();
 }