[0000229] Payment overallocation is now forbidden.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Wed, 12 May 2010 19:19:11 +0000 (19:19 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Wed, 12 May 2010 19:19:11 +0000 (19:19 +0000)
CHANGELOG.txt
includes/ui/allocation_cart.inc
js/allocate.js

index 72923fefb9bf38ef889181cf14818d3abba6504f..901f47fe241837277166b59d6546dc585afd580b 100644 (file)
@@ -24,6 +24,9 @@ $ -> Affected files
 $ /admin/system_diagnostics.php
 # [0000227] Fixed cookie name to enable multiply FA instances on the same server.
 $ /includes/session.inc
+# [0000229] Payment overallocation is now forbidden
+$ /includes/ui/allocation_cart.inc
+  /js/allocate.js
 # Fixed email links to use ajax
 $ /purchasing/po_entry_items.php
   /sales/credit_note_entry.php
index bd84f5cc7533b738238d3d1d8694b7beddfb770d..058e0b918205d9036b6545fa45f9a8032edfbdda 100644 (file)
@@ -274,7 +274,7 @@ function show_allocatable($show_totals) {
                amount_cells(null, "amount" . $counter, price_format('amount' . $counter));
 
                $un_allocated = round($alloc_item->amount - $alloc_item->amount_allocated, 6);
-               amount_cell($un_allocated);
+               amount_cell($un_allocated, false,'', 'maxval'.$counter);
                        label_cell("<a href='#' name=Alloc$counter onclick='allocate_all(this.name.substr(5));return true;'>"
                                 . _("All") . "</a>");
                        label_cell("<a href='#' name=DeAll$counter onclick='allocate_none(this.name.substr(5));return true;'>"
index 0294137ad3c2561e566a64b763d3acf0cfd245ec..707bdf8ef841afd4ff4c9fc94a7d2aa45ccffc13 100644 (file)
@@ -14,12 +14,16 @@ function focus_alloc(i) {
 }
 
 function blur_alloc(i) {
-       var change = get_amount(i.name);
-               price_format(i.name, change, user.pdec);                
-               if(change<0) change = 0;
-               change = change-i.getAttribute('_last');
+
+       var last = +i.getAttribute('_last')
+       var left = get_amount('left_to_allocate', 1); 
+       var cur = Math.min(get_amount(i.name), get_amount('maxval'+i.name.substr(6), 1), last+left)
+
+       price_format(i.name, cur, user.pdec);
+       change = cur-last;
+
        var total = get_amount('total_allocated', 1)+change;
-       var left = get_amount('left_to_allocate', 1)-change;
+               left -= change;
        
        price_format('left_to_allocate', left, user.pdec, 1, 1);
        price_format('total_allocated', total, user.pdec, 1, 1);