mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-09 00:01:18 +00:00
fix: Tax updation for internal invoices
This commit is contained in:
@@ -275,8 +275,11 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
|
||||
|
||||
supplier: function() {
|
||||
var me = this;
|
||||
if(this.frm.updating_party_details)
|
||||
|
||||
// Do not update if inter company reference is there as the details will already be updated
|
||||
if(this.frm.updating_party_details || this.frm.doc.inter_company_invoice_reference)
|
||||
return;
|
||||
|
||||
erpnext.utils.get_party_details(this.frm, "erpnext.accounts.party.get_party_details",
|
||||
{
|
||||
posting_date: this.frm.doc.posting_date,
|
||||
|
||||
@@ -6,7 +6,7 @@ import frappe, erpnext
|
||||
import frappe.defaults
|
||||
from frappe.utils import cint, flt, add_months, today, date_diff, getdate, add_days, cstr, nowdate, get_link_to_form
|
||||
from frappe import _, msgprint, throw
|
||||
from erpnext.accounts.party import get_party_account, get_due_date
|
||||
from erpnext.accounts.party import get_party_account, get_due_date, get_party_details
|
||||
from frappe.model.mapper import get_mapped_doc
|
||||
from erpnext.controllers.selling_controller import SellingController
|
||||
from erpnext.accounts.utils import get_account_currency
|
||||
@@ -1618,6 +1618,11 @@ def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
|
||||
if currency:
|
||||
target_doc.currency = currency
|
||||
|
||||
update_taxes(target_doc, party=target_doc.supplier, party_type='Supplier', company=target_doc.company,
|
||||
doctype=target_doc.doctype, party_address=target_doc.supplier_address,
|
||||
company_address=target_doc.shipping_address)
|
||||
|
||||
else:
|
||||
currency = frappe.db.get_value('Customer', details.get('party'), 'default_currency')
|
||||
target_doc.company = details.get("company")
|
||||
@@ -1631,6 +1636,10 @@ def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
if currency:
|
||||
target_doc.currency = currency
|
||||
|
||||
update_taxes(target_doc, party=target_doc.customer, party_type='Customer', company=target_doc.company,
|
||||
doctype=target_doc.doctype, party_address=target_doc.customer_address,
|
||||
company_address=target_doc.company_address, shipping_address_name=target_doc.shipping_address_name)
|
||||
|
||||
item_field_map = {
|
||||
"doctype": target_doctype + " Item",
|
||||
"field_no_map": [
|
||||
@@ -1673,6 +1682,18 @@ def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
|
||||
return doclist
|
||||
|
||||
def update_taxes(doc, party=None, party_type=None, company=None, doctype=None, party_address=None,
|
||||
company_address=None, shipping_address_name=None, master_doctype=None):
|
||||
# Update Party Details
|
||||
party_details = get_party_details(party=party, party_type=party_type, company=company,
|
||||
doctype=doctype, party_address=party_address, company_address=company_address,
|
||||
shipping_address=shipping_address_name)
|
||||
|
||||
# Update taxes and charges if any
|
||||
doc.taxes_and_charges = party_details.get('taxes_and_charges')
|
||||
if party_details.get('taxes'):
|
||||
doc.set('taxes', party_details.get('taxes'))
|
||||
|
||||
def update_address(doc, address_field, address_display_field, address_name):
|
||||
doc.set(address_field, address_name)
|
||||
fetch_values = get_fetch_values(doc.doctype, address_field, address_name)
|
||||
|
||||
@@ -665,7 +665,7 @@ def make_inter_company_purchase_receipt(source_name, target_doc=None):
|
||||
|
||||
def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
from erpnext.accounts.doctype.sales_invoice.sales_invoice import (validate_inter_company_transaction,
|
||||
get_inter_company_details, update_address)
|
||||
get_inter_company_details, update_address, update_taxes)
|
||||
|
||||
if doctype == 'Delivery Note':
|
||||
source_doc = frappe.get_doc(doctype, source_name)
|
||||
@@ -705,6 +705,10 @@ def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
# Invert the address on target doc creation
|
||||
update_address(target_doc, 'supplier_address', 'address_display', source_doc.company_address)
|
||||
update_address(target_doc, 'shipping_address', 'shipping_address_display', source_doc.customer_address)
|
||||
|
||||
update_taxes(target_doc, party=target_doc.supplier, party_type='Supplier', company=target_doc.company,
|
||||
doctype=target_doc.doctype, party_address=target_doc.supplier_address,
|
||||
company_address=target_doc.shipping_address)
|
||||
else:
|
||||
target_doc.company = details.get("company")
|
||||
target_doc.customer = details.get("party")
|
||||
@@ -718,6 +722,10 @@ def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
update_address(target_doc, 'shipping_address_name', 'shipping_address', source_doc.shipping_address)
|
||||
update_address(target_doc, 'customer_address', 'address_display', source_doc.shipping_address)
|
||||
|
||||
update_taxes(target_doc, party=target_doc.customer, party_type='Customer', company=target_doc.company,
|
||||
doctype=target_doc.doctype, party_address=target_doc.customer_address,
|
||||
company_address=target_doc.company_address, shipping_address_name=target_doc.shipping_address_name)
|
||||
|
||||
doclist = get_mapped_doc(doctype, source_name, {
|
||||
doctype: {
|
||||
"doctype": target_doctype,
|
||||
|
||||
Reference in New Issue
Block a user