[itemwise tax details] store tax rate as well as tax amount for that item tax combination
This commit is contained in:
parent
f41ce11e91
commit
53b7342b09
@ -190,9 +190,6 @@ class AccountsController(TransactionBase):
|
|||||||
# accumulate tax amount into tax.tax_amount
|
# accumulate tax amount into tax.tax_amount
|
||||||
tax.tax_amount += current_tax_amount
|
tax.tax_amount += current_tax_amount
|
||||||
|
|
||||||
# store tax breakup for each item
|
|
||||||
tax.item_wise_tax_detail[item.item_code] = current_tax_amount
|
|
||||||
|
|
||||||
if tax.category:
|
if tax.category:
|
||||||
# if just for valuation, do not add the tax amount in total
|
# if just for valuation, do not add the tax amount in total
|
||||||
# hence, setting it as 0 for further steps
|
# hence, setting it as 0 for further steps
|
||||||
@ -233,8 +230,13 @@ class AccountsController(TransactionBase):
|
|||||||
elif tax.charge_type == "On Previous Row Total":
|
elif tax.charge_type == "On Previous Row Total":
|
||||||
current_tax_amount = (tax_rate / 100.0) * \
|
current_tax_amount = (tax_rate / 100.0) * \
|
||||||
self.tax_doclist[cint(tax.row_id) - 1].grand_total_for_current_item
|
self.tax_doclist[cint(tax.row_id) - 1].grand_total_for_current_item
|
||||||
|
|
||||||
|
current_tax_amount = flt(current_tax_amount, self.precision("tax_amount", tax))
|
||||||
|
|
||||||
|
# store tax breakup for each item
|
||||||
|
tax.item_wise_tax_detail[item.item_code or item.item_name] = [tax_rate, current_tax_amount]
|
||||||
|
|
||||||
return flt(current_tax_amount, self.precision("tax_amount", tax))
|
return current_tax_amount
|
||||||
|
|
||||||
def _load_item_tax_rate(self, item_tax_rate):
|
def _load_item_tax_rate(self, item_tax_rate):
|
||||||
return json.loads(item_tax_rate) if item_tax_rate else {}
|
return json.loads(item_tax_rate) if item_tax_rate else {}
|
||||||
|
@ -259,10 +259,18 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({
|
|||||||
|
|
||||||
$.each(this.get_tax_doclist(), function(i, tax) {
|
$.each(this.get_tax_doclist(), function(i, tax) {
|
||||||
var tax_amount_precision = precision("tax_amount", tax);
|
var tax_amount_precision = precision("tax_amount", tax);
|
||||||
|
var tax_rate_precision = precision("rate", tax);
|
||||||
$.each(JSON.parse(tax.item_wise_tax_detail || '{}'),
|
$.each(JSON.parse(tax.item_wise_tax_detail || '{}'),
|
||||||
function(item_code, tax_amount) {
|
function(item_code, tax_data) {
|
||||||
if(!item_tax[item_code]) item_tax[item_code] = {};
|
if(!item_tax[item_code]) item_tax[item_code] = {};
|
||||||
item_tax[item_code][tax.account_head] = flt(tax_amount, tax_amount_precision);
|
if($.isArray(tax_data)) {
|
||||||
|
var tax_rate = tax_data[0] == null ? "" : (flt(tax_data[0], tax_rate_precision) + "%"),
|
||||||
|
tax_amount = format_currency(flt(tax_data[1], tax_amount_precision), company_currency);
|
||||||
|
|
||||||
|
item_tax[item_code][tax.account_head] = [tax_rate, tax_amount];
|
||||||
|
} else {
|
||||||
|
item_tax[item_code][tax.account_head] = [flt(tax_data, tax_rate_precision) + "%", ""];
|
||||||
|
}
|
||||||
});
|
});
|
||||||
tax_accounts.push(tax.account_head);
|
tax_accounts.push(tax.account_head);
|
||||||
});
|
});
|
||||||
@ -272,14 +280,16 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({
|
|||||||
|
|
||||||
var rows = $.map(this.get_item_doclist(), function(item) {
|
var rows = $.map(this.get_item_doclist(), function(item) {
|
||||||
var item_tax_record = item_tax[item.item_code || item.item_name];
|
var item_tax_record = item_tax[item.item_code || item.item_name];
|
||||||
|
if(!item_tax_record) { return null; }
|
||||||
return repl("<tr><td>%(item_name)s</td>%(taxes)s</tr>", {
|
return repl("<tr><td>%(item_name)s</td>%(taxes)s</tr>", {
|
||||||
item_name: item.item_name,
|
item_name: item.item_name,
|
||||||
taxes: $.map(tax_accounts, function(head) {
|
taxes: $.map(tax_accounts, function(head) {
|
||||||
return "<td>" + format_currency(item_tax_record[head], company_currency) + "</td>"
|
return "<td>(" + item_tax_record[head][0] + ") " + item_tax_record[head][1] + "</td>"
|
||||||
}).join("\n")
|
}).join("\n")
|
||||||
});
|
});
|
||||||
}).join("\n");
|
}).join("\n");
|
||||||
|
|
||||||
|
if(!rows) return "";
|
||||||
return '<div style="overflow-x: scroll;"><table class="table table-bordered table-hover">\
|
return '<div style="overflow-x: scroll;"><table class="table table-bordered table-hover">\
|
||||||
<thead><tr>' + headings + '</tr></thead> \
|
<thead><tr>' + headings + '</tr></thead> \
|
||||||
<tbody>' + rows + '</tbody> \
|
<tbody>' + rows + '</tbody> \
|
||||||
@ -392,7 +402,7 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({
|
|||||||
$.each(me.frm.tax_doclist, function(i, tax) {
|
$.each(me.frm.tax_doclist, function(i, tax) {
|
||||||
// tax_amount represents the amount of tax for the current step
|
// tax_amount represents the amount of tax for the current step
|
||||||
var current_tax_amount = me.get_current_tax_amount(item, tax, item_tax_map);
|
var current_tax_amount = me.get_current_tax_amount(item, tax, item_tax_map);
|
||||||
|
|
||||||
me.set_item_tax_amount && me.set_item_tax_amount(item, tax, current_tax_amount);
|
me.set_item_tax_amount && me.set_item_tax_amount(item, tax, current_tax_amount);
|
||||||
|
|
||||||
// case when net total is 0 but there is an actual type charge
|
// case when net total is 0 but there is an actual type charge
|
||||||
@ -411,9 +421,6 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({
|
|||||||
// accumulate tax amount into tax.tax_amount
|
// accumulate tax amount into tax.tax_amount
|
||||||
tax.tax_amount += current_tax_amount;
|
tax.tax_amount += current_tax_amount;
|
||||||
|
|
||||||
// store tax breakup for each item
|
|
||||||
tax.item_wise_tax_detail[item.item_code || item.item_name] = current_tax_amount;
|
|
||||||
|
|
||||||
// for buying
|
// for buying
|
||||||
if(tax.category) {
|
if(tax.category) {
|
||||||
// if just for valuation, do not add the tax amount in total
|
// if just for valuation, do not add the tax amount in total
|
||||||
@ -465,7 +472,12 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return flt(current_tax_amount, precision("tax_amount", tax));
|
current_tax_amount = flt(current_tax_amount, precision("tax_amount", tax));
|
||||||
|
|
||||||
|
// store tax breakup for each item
|
||||||
|
tax.item_wise_tax_detail[item.item_code || item.item_name] = [tax_rate, current_tax_amount];
|
||||||
|
|
||||||
|
return current_tax_amount;
|
||||||
},
|
},
|
||||||
|
|
||||||
_cleanup: function() {
|
_cleanup: function() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user