From: Janusz Dobrowolski Date: Fri, 10 Jul 2009 10:57:41 +0000 (+0000) Subject: Javascript support to direct allocations in supplier/customer payments. X-Git-Tag: v2.4.2~19^2~1339 X-Git-Url: https://delta.frontaccounting.com/gitweb/?p=fa-stable.git;a=commitdiff_plain;h=db2ce859a356443c313ea577ea07029b78655e2a Javascript support to direct allocations in supplier/customer payments. --- diff --git a/js/payalloc.js b/js/payalloc.js new file mode 100644 index 00000000..7bdd9914 --- /dev/null +++ b/js/payalloc.js @@ -0,0 +1,64 @@ +/********************************************************************** + Copyright (C) FrontAccounting, LLC. + Released under the terms of the GNU General Public License, GPL, + as published by the Free Software Foundation, either version 3 + of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License here . +***********************************************************************/ +function focus_alloc(i) { + save_focus(i); + i.setAttribute('_last', get_amount(i.name)); +} + +function blur_alloc(i) { + var change = get_amount(i.name); + 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 total = get_amount('amount')+change; + price_format('amount', total, user.pdec, 0); + } +} + +function allocate_all(doc) { + var amount = get_amount('amount'+doc); + var unallocated = get_amount('un_allocated'+doc); + var total = get_amount('amount'); + var left = 0; + total -= (amount-unallocated); + left -= (amount-unallocated); + amount = unallocated; + if(left<0) { + total += left; + amount += left; + left = 0; + } + price_format('amount'+doc, amount, user.pdec); + price_format('amount', total, user.pdec); +} + +function allocate_none(doc) { + amount = get_amount('amount'+doc); + total = get_amount('amount'); + price_format('amount'+doc, 0, user.pdec); + price_format('amount', total-amount, user.pdec); +} + +var allocations = { + '.amount': function(e) { + e.onblur = function() { + blur_alloc(this); + }; + e.onfocus = function() { + focus_alloc(this); + }; + } +} + +Behaviour.register(allocations);