mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-09 00:01:18 +00:00
fix: address mapping between sales and purchase document
This commit is contained in:
@@ -21,6 +21,8 @@ from erpnext.accounts.general_ledger import get_round_off_account_and_cost_cente
|
||||
from erpnext.accounts.doctype.loyalty_program.loyalty_program import \
|
||||
get_loyalty_program_details_with_points, get_loyalty_details, validate_loyalty_points
|
||||
from erpnext.accounts.deferred_revenue import validate_service_stop_date
|
||||
from frappe.model.utils import get_fetch_values
|
||||
from frappe.contacts.doctype.address.address import get_address_display
|
||||
|
||||
from erpnext.healthcare.utils import manage_invoice_submit_cancel
|
||||
|
||||
@@ -1609,7 +1611,10 @@ def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
target_doc.is_internal_supplier = 1
|
||||
target_doc.ignore_pricing_rule = 1
|
||||
target_doc.buying_price_list = source_doc.selling_price_list
|
||||
target_doc.shipping_address = source_doc.customer_address
|
||||
|
||||
# Invert Addresses
|
||||
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)
|
||||
|
||||
if currency:
|
||||
target_doc.currency = currency
|
||||
@@ -1619,6 +1624,10 @@ def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
target_doc.customer = details.get("party")
|
||||
target_doc.selling_price_list = source_doc.buying_price_list
|
||||
|
||||
update_address(target_doc, 'company_address', 'company_address_display', source_doc.supplier_address)
|
||||
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)
|
||||
|
||||
if currency:
|
||||
target_doc.currency = currency
|
||||
|
||||
@@ -1664,6 +1673,15 @@ def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
|
||||
return doclist
|
||||
|
||||
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)
|
||||
|
||||
for key, value in fetch_values.items():
|
||||
doc.set(key, value)
|
||||
|
||||
doc.set(address_display_field, get_address_display(doc.get(address_field)))
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_loyalty_programs(customer):
|
||||
''' sets applicable loyalty program to the customer or returns a list of applicable programs '''
|
||||
|
||||
@@ -15,6 +15,7 @@ from frappe.model.mapper import get_mapped_doc
|
||||
from frappe.model.utils import get_fetch_values
|
||||
from frappe.utils import cint, flt
|
||||
from erpnext.controllers.accounts_controller import get_taxes_and_charges
|
||||
from erpnext.accounts.doctype.sales_invoice.sales_invoice import update_address
|
||||
|
||||
form_grid_templates = {
|
||||
"items": "templates/form_grid/item_grid.html"
|
||||
@@ -697,20 +698,26 @@ def make_inter_company_transaction(doctype, source_name, target_doc=None):
|
||||
if target_doc.doctype == 'Purchase Receipt':
|
||||
target_doc.company = details.get("company")
|
||||
target_doc.supplier = details.get("party")
|
||||
target_doc.supplier_address = source_doc.company_address
|
||||
target_doc.shipping_address = source_doc.shipping_address_name or source_doc.customer_address
|
||||
target_doc.buying_price_list = source_doc.selling_price_list
|
||||
target_doc.is_internal_supplier = 1
|
||||
target_doc.inter_company_reference = source_doc.name
|
||||
|
||||
# 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)
|
||||
else:
|
||||
target_doc.company = details.get("company")
|
||||
target_doc.customer = details.get("party")
|
||||
target_doc.company_address = source_doc.supplier_address
|
||||
target_doc.shipping_address_name = source_doc.shipping_address
|
||||
target_doc.selling_price_list = source_doc.buying_price_list
|
||||
target_doc.is_internal_customer = 1
|
||||
target_doc.inter_company_reference = source_doc.name
|
||||
|
||||
# Invert the address on target doc creation
|
||||
update_address(target_doc, 'company_address', 'company_address_display', source_doc.supplier_address)
|
||||
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)
|
||||
|
||||
doclist = get_mapped_doc(doctype, source_name, {
|
||||
doctype: {
|
||||
"doctype": target_doctype,
|
||||
|
||||
Reference in New Issue
Block a user