I"/(function() { accounting.settings = { number: { precision: 2, thousand: " ", decimal: "," } }; window.str2num = function(str) { return parseFloat(String(str).replace(",", ".").replace(" ", "")) || 0.0; }; window.num2str = function(num) { num = parseFloat(num); return accounting.formatNumber(num); }; $(document).on("ready page:load cocoon:after-insert", function() { $("#billing_machine-form input.number").keyup(function() { var advance, balance, commercial_discount, discount_rate, raw_total_excluding_taxes, total_excluding_taxes, total_including_taxes, vat_amount; total_excluding_taxes = 0.0; $("#billing_machine-form .line").map(function() { var line_total, quantity, unit_price; if (parseInt($(this).find("input[name*=destroy]").val()) === 1) { return; } quantity = str2num($(this).find(".line-quantity input").val()); unit_price = str2num($(this).find(".line-unit_price input").val()); line_total = unit_price * quantity; $(this).find(".line-total input").val(num2str(line_total)); return total_excluding_taxes += line_total; }); commercial_discount = str2num($(".commercial_discount input").val()); raw_total_excluding_taxes = total_excluding_taxes; total_excluding_taxes = raw_total_excluding_taxes - commercial_discount; $(".total_excluding_taxes input").val(num2str(total_excluding_taxes)); discount_rate = commercial_discount / raw_total_excluding_taxes; vat_amount = 0.0; $("#billing_machine-form .line").map(function() { var discounted_line_total, line_total, line_vat_amount, vat_rate; if (parseInt($(this).find("input[name*=destroy]").val()) === 1) { return; } if ($(this).find(".line-vat_rate input").length > 0) { vat_rate = str2num($(this).find(".line-vat_rate input").val()); } else { vat_rate = str2num($("#totals-table .vat_rate input").val()); } line_total = str2num($(this).find(".line-total input").val()); discounted_line_total = line_total - (line_total * discount_rate); line_vat_amount = discounted_line_total * vat_rate / 100; return vat_amount += line_vat_amount; }); $(".vat_amount input").val(num2str(vat_amount)); total_including_taxes = total_excluding_taxes + vat_amount; $(".total_including_taxes input").val(num2str(total_including_taxes)); if ($(".advance input").length > 0 && $(".balance input").length > 0) { advance = str2num($(".advance input").val()); balance = total_including_taxes - advance; return $(".balance input").val(num2str(balance)); } }); $("#billing_machine-form input").keyup(); $("#billing_machine-form input.number").blur(function() { return $("#billing_machine-form input.number").map(function() { var formatted_number; formatted_number = num2str(str2num($(this).val())); return $(this).val(formatted_number); }); }); $("#billing_machine-form input.number").blur(); $("#billing_machine-form input.number").focus(function() { var number; number = str2num($(this).val()); if (number === 0) { return $(this).val(""); } }); $("#billing_machine-form textarea").keyup(function() { return this.rows = this.value.split("\n").length; }); $("#billing_machine-form textarea").keyup(); $("#billing_machine-form .line textarea").map(function() { return this.value = this.value.trim(); }); return $("#billing_machine-form a.delete").click(function() { $(this).parents("td").find("input").val(1); $(this).parents("tr").hide(); $("#billing_machine-form input").keyup(); return false; }); }); }).call(this); :ET