Patch: taxes and totals in party currency

This commit is contained in:
Nabin Hait 2015-02-23 20:00:17 +05:30
parent 82e3e25cdb
commit 6dfbc2465b
3 changed files with 74 additions and 4 deletions

View File

@ -112,7 +112,6 @@ erpnext.patches.v5_0.remove_birthday_events
erpnext.patches.v5_0.update_item_name_in_bom
erpnext.patches.v5_0.rename_customer_issue
erpnext.patches.v5_0.rename_total_fields
erpnext.patches.v5_0.replace_renamed_fields_in_custom_script_and_print_formats
erpnext.patches.v5_0.new_crm_module
erpnext.patches.v5_0.rename_customer_issue
erpnext.patches.v5_0.update_material_transfer_for_manufacture
@ -124,3 +123,5 @@ erpnext.patches.v5_0.convert_stock_reconciliation
erpnext.patches.v5_0.update_projects
erpnext.patches.v5_0.item_patches
erpnext.patches.v5_0.update_journal_entry_title
erpnext.patches.v5_0.taxes_and_totals_in_party_currency
erpnext.patches.v5_0.replace_renamed_fields_in_custom_scripts_and_print_formats

View File

@ -21,9 +21,10 @@ def get_all_renamed_fields():
from erpnext.patches.v5_0.rename_table_fieldnames import rename_map
renamed_fields = (
("base_amount", "base_net_amount"),
("net_total", "base_net_total"),
("net_total_export", "net_total"),
("net_total_import", "net_total"),
("net_total_export", "total"),
("net_total_import", "total"),
("other_charges_total", "base_total_taxes_and_charges"),
("other_charges_total_export", "total_taxes_and_charges"),
("other_charges_added", "base_taxes_and_charges_added"),
@ -39,7 +40,9 @@ def get_all_renamed_fields():
("rounded_total_import", "rounded_total"),
("in_words", "base_in_words"),
("in_words_export", "in_words"),
("in_words_import", "in_words")
("in_words_import", "in_words"),
("tax_amount", "base_tax_amount"),
("tax_amount_after_discount_amount", "base_tax_amount_after_discount_amount"),
)
for fields in rename_map.values():

View File

@ -0,0 +1,66 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
import frappe
def execute():
selling_doctypes = ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice"]
buying_doctypes = ["Supplier Quotation", "Purchase Order", "Purchase Receipt", "Purchase Invoice"]
for dt in selling_doctypes:
update_values(dt, "Sales Taxes and Charges")
for dt in buying_doctypes:
update_values(dt, "Purchase Taxes and Charges")
def update_values(dt, tax_table):
frappe.reload_doctype(dt)
frappe.reload_doctype(dt + " Item")
frappe.reload_doctype(tax_table)
# update net_total, discount_on
frappe.db.sql("""
UPDATE
`tab{0}`
SET
total = net_total,
base_total = net_total*conversion_rate,
net_total = base_net_total / conversion_rate,
apply_discount_on = "Grand Total"
WHERE
docstatus < 2
""".format(dt))
# update net_amount
frappe.db.sql("""
UPDATE
`tab{0}` par, `tab{1}` item
SET
item.base_net_amount = item.base_amount,
item.base_net_rate = item.base_rate,
item.net_amount = item.base_net_amount / par.conversion_rate,
item.net_rate = item.base_net_rate / par.conversion_rate,
item.base_amount = item.amount * par.conversion_rate,
item.base_rate = item.rate * par.conversion_rate
WHERE
par.name = item.parent
and par.docstatus < 2
""".format(dt, dt + " Item"))
# update tax in party currency
frappe.db.sql("""
UPDATE
`tab{0}` par, `tab{1}` tax
SET
tax.base_tax_amount = tax.tax_amount,
tax.tax_amount = tax.base_tax_amount / par.conversion_rate,
tax.base_total = tax.total,
tax.total = tax.base_total / conversion_rate,
tax.base_tax_amount_after_discount_amount = tax.tax_amount_after_discount_amount,
tax.tax_amount_after_discount_amount = tax.base_tax_amount_after_discount_amount / conversion_rate
WHERE
par.name = tax.parent
and par.docstatus < 2
""".format(dt, tax_table))