diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py index 52a43169179..fac976ebe15 100644 --- a/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -195,8 +195,7 @@ class DocType(BuyingController): }, "Purchase Order Item": { "ref_dn_field": "po_detail", - "compare_fields": [["import_rate", "="], ["project_name", "="], ["item_code", "="], - ["uom", "="]], + "compare_fields": [["project_name", "="], ["item_code", "="], ["uom", "="]], "is_child_table": True }, "Purchase Receipt": { @@ -205,11 +204,25 @@ class DocType(BuyingController): }, "Purchase Receipt Item": { "ref_dn_field": "pr_detail", - "compare_fields": [["import_rate", "="], ["project_name", "="], ["item_code", "="], - ["uom", "="]], + "compare_fields": [["project_name", "="], ["item_code", "="], ["uom", "="]], "is_child_table": True } }) + + if cint(webnotes.defaults.get_global_default('maintain_same_rate')): + super(DocType, self).validate_with_previous_doc(self.tname, { + "Purchase Order Item": { + "ref_dn_field": "po_detail", + "compare_fields": [["import_rate", "="]], + "is_child_table": True + }, + "Purchase Receipt Item": { + "ref_dn_field": "pr_detail", + "compare_fields": [["import_rate", "="]], + "is_child_table": True + } + }) + def set_aging_date(self): if self.doc.is_opening != 'Yes': diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py index 744130a71ba..62b7a4f352a 100644 --- a/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/stock/doctype/purchase_receipt/purchase_receipt.py @@ -94,11 +94,21 @@ class DocType(BuyingController): }, "Purchase Order Item": { "ref_dn_field": "prevdoc_detail_docname", - "compare_fields": [["import_rate", "="], ["project_name", "="], ["warehouse", "="], + "compare_fields": [["project_name", "="], ["warehouse", "="], ["uom", "="], ["item_code", "="]], "is_child_table": True } }) + + if cint(webnotes.defaults.get_global_default('maintain_same_rate')): + super(DocType, self).validate_with_previous_doc(self.tname, { + "Purchase Order Item": { + "ref_dn_field": "prevdoc_detail_docname", + "compare_fields": [["import_rate", "="]], + "is_child_table": True + } + }) + def po_required(self): if webnotes.conn.get_single_value("Buying Settings", "po_required") == 'Yes':