fix: not able to make inter-company po from so (backport #38826) (#38828)
fix: not able to make inter-company po from so (#38826)
(cherry picked from commit 23042dfc3c0d02374c5710ed679731b1910f9b9a)
Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index f9d9cb5..c0228e6 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -2382,9 +2382,18 @@
def get_received_items(reference_name, doctype, reference_fieldname):
+ reference_field = "inter_company_invoice_reference"
+ if doctype == "Purchase Order":
+ reference_field = "inter_company_order_reference"
+
+ filters = {
+ reference_field: reference_name,
+ "docstatus": 1,
+ }
+
target_doctypes = frappe.get_all(
doctype,
- filters={"inter_company_invoice_reference": reference_name, "docstatus": 1},
+ filters=filters,
as_list=True,
)
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 3d863e9..572fa51 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -381,7 +381,11 @@
rate = flt(outgoing_rate * (d.conversion_factor or 1), d.precision("rate"))
else:
- field = "incoming_rate" if self.get("is_internal_supplier") else "rate"
+ field = (
+ "incoming_rate"
+ if self.get("is_internal_supplier") and not self.doctype == "Purchase Order"
+ else "rate"
+ )
rate = flt(
frappe.db.get_value(ref_doctype, d.get(frappe.scrub(ref_doctype)), field)
* (d.conversion_factor or 1),