Merge pull request #28698 from frappe/mergify/bp/develop/pr-28654
fix: Taxes and Charges template not getting copied from Purchase Order/Receipt to Invoice (backport #28654)
This commit is contained in:
commit
c339240250
@ -68,10 +68,12 @@ def _get_party_details(party=None, account=None, party_type="Customer", company=
|
|||||||
party_details["tax_category"] = get_address_tax_category(party.get("tax_category"),
|
party_details["tax_category"] = get_address_tax_category(party.get("tax_category"),
|
||||||
party_address, shipping_address if party_type != "Supplier" else party_address)
|
party_address, shipping_address if party_type != "Supplier" else party_address)
|
||||||
|
|
||||||
if not party_details.get("taxes_and_charges"):
|
tax_template = set_taxes(party.name, party_type, posting_date, company,
|
||||||
party_details["taxes_and_charges"] = set_taxes(party.name, party_type, posting_date, company,
|
customer_group=party_details.customer_group, supplier_group=party_details.supplier_group, tax_category=party_details.tax_category,
|
||||||
customer_group=party_details.customer_group, supplier_group=party_details.supplier_group, tax_category=party_details.tax_category,
|
billing_address=party_address, shipping_address=shipping_address)
|
||||||
billing_address=party_address, shipping_address=shipping_address)
|
|
||||||
|
if tax_template:
|
||||||
|
party_details['taxes_and_charges'] = tax_template
|
||||||
|
|
||||||
if cint(fetch_payment_terms_template):
|
if cint(fetch_payment_terms_template):
|
||||||
party_details["payment_terms_template"] = get_payment_terms_template(party.name, party_type, company)
|
party_details["payment_terms_template"] = get_payment_terms_template(party.name, party_type, company)
|
||||||
|
|||||||
@ -206,28 +206,18 @@ def get_regional_address_details(party_details, doctype, company):
|
|||||||
|
|
||||||
if doctype in ("Sales Invoice", "Delivery Note", "Sales Order"):
|
if doctype in ("Sales Invoice", "Delivery Note", "Sales Order"):
|
||||||
master_doctype = "Sales Taxes and Charges Template"
|
master_doctype = "Sales Taxes and Charges Template"
|
||||||
get_tax_template_based_on_category(master_doctype, company, party_details)
|
tax_template_by_category = get_tax_template_based_on_category(master_doctype, company, party_details)
|
||||||
|
|
||||||
if party_details.get('taxes_and_charges'):
|
|
||||||
return party_details
|
|
||||||
|
|
||||||
if not party_details.company_gstin:
|
|
||||||
return party_details
|
|
||||||
|
|
||||||
elif doctype in ("Purchase Invoice", "Purchase Order", "Purchase Receipt"):
|
elif doctype in ("Purchase Invoice", "Purchase Order", "Purchase Receipt"):
|
||||||
master_doctype = "Purchase Taxes and Charges Template"
|
master_doctype = "Purchase Taxes and Charges Template"
|
||||||
get_tax_template_based_on_category(master_doctype, company, party_details)
|
tax_template_by_category = get_tax_template_based_on_category(master_doctype, company, party_details)
|
||||||
|
|
||||||
if party_details.get('taxes_and_charges'):
|
if tax_template_by_category:
|
||||||
return party_details
|
party_details.get['taxes_and_charges'] = tax_template_by_category
|
||||||
|
return
|
||||||
if not party_details.supplier_gstin:
|
|
||||||
return party_details
|
|
||||||
|
|
||||||
if not party_details.place_of_supply: return party_details
|
if not party_details.place_of_supply: return party_details
|
||||||
|
|
||||||
if not party_details.company_gstin: return party_details
|
|
||||||
|
|
||||||
if ((doctype in ("Sales Invoice", "Delivery Note", "Sales Order") and party_details.company_gstin
|
if ((doctype in ("Sales Invoice", "Delivery Note", "Sales Order") and party_details.company_gstin
|
||||||
and party_details.company_gstin[:2] != party_details.place_of_supply[:2]) or (doctype in ("Purchase Invoice",
|
and party_details.company_gstin[:2] != party_details.place_of_supply[:2]) or (doctype in ("Purchase Invoice",
|
||||||
"Purchase Order", "Purchase Receipt") and party_details.supplier_gstin and party_details.supplier_gstin[:2] != party_details.place_of_supply[:2])):
|
"Purchase Order", "Purchase Receipt") and party_details.supplier_gstin and party_details.supplier_gstin[:2] != party_details.place_of_supply[:2])):
|
||||||
@ -237,6 +227,7 @@ def get_regional_address_details(party_details, doctype, company):
|
|||||||
|
|
||||||
if not default_tax:
|
if not default_tax:
|
||||||
return party_details
|
return party_details
|
||||||
|
|
||||||
party_details["taxes_and_charges"] = default_tax
|
party_details["taxes_and_charges"] = default_tax
|
||||||
party_details.taxes = get_taxes_and_charges(master_doctype, default_tax)
|
party_details.taxes = get_taxes_and_charges(master_doctype, default_tax)
|
||||||
|
|
||||||
@ -268,9 +259,7 @@ def get_tax_template_based_on_category(master_doctype, company, party_details):
|
|||||||
default_tax = frappe.db.get_value(master_doctype, {'company': company, 'tax_category': party_details.get('tax_category')},
|
default_tax = frappe.db.get_value(master_doctype, {'company': company, 'tax_category': party_details.get('tax_category')},
|
||||||
'name')
|
'name')
|
||||||
|
|
||||||
if default_tax:
|
return default_tax
|
||||||
party_details["taxes_and_charges"] = default_tax
|
|
||||||
party_details.taxes = get_taxes_and_charges(master_doctype, default_tax)
|
|
||||||
|
|
||||||
def get_tax_template(master_doctype, company, is_inter_state, state_code):
|
def get_tax_template(master_doctype, company, is_inter_state, state_code):
|
||||||
tax_categories = frappe.get_all('Tax Category', fields = ['name', 'is_inter_state', 'gst_state'],
|
tax_categories = frappe.get_all('Tax Category', fields = ['name', 'is_inter_state', 'gst_state'],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user