[minor] fixes in test cases and added the test case for multiple uom in selling
diff --git a/erpnext/accounts/doctype/sales_invoice/test_records.json b/erpnext/accounts/doctype/sales_invoice/test_records.json
index 732c446..0b7b76d 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_records.json
+++ b/erpnext/accounts/doctype/sales_invoice/test_records.json
@@ -147,9 +147,9 @@
"price_list_rate": 50,
"qty": 10,
"rate": 50,
- "uom": "_Test UOM",
+ "uom": "_Test UOM 1",
"conversion_factor": 1,
- "stock_uom": "_Test UOM"
+ "stock_uom": "_Test UOM 1"
},
{
"cost_center": "_Test Cost Center - _TC",
@@ -273,9 +273,9 @@
"parentfield": "items",
"price_list_rate": 62.5,
"qty": 10,
- "uom": "_Test UOM",
- "conversion_factor": 1,
- "stock_uom": "_Test UOM"
+ "uom": "_Test UOM 1",
+ "conversion_factor": 1,
+ "stock_uom": "_Test UOM 1"
},
{
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
index 305b689..0ada847 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -1043,6 +1043,25 @@
#check outstanding after advance cancellation
self.assertEqual(flt(si.outstanding_amount), flt(si.grand_total + si.total_advance, si.precision("outstanding_amount")))
+ def test_multiple_uom_in_selling(self):
+ si = frappe.copy_doc(test_records[1])
+
+ si.items[0].uom = "_Test UOM 1"
+ si.items[0].conversion_factor = None
+ si.items[0].price_list_rate = None
+ si.save()
+
+ expected_values = {
+ "keys": ["price_list_rate", "stock_uom", "uom", "conversion_factor", "rate", "amount",
+ "base_price_list_rate", "base_rate", "base_amount"],
+ "_Test Item": [1000, "_Test UOM", "_Test UOM 1", 10.0, 1000, 1000, 1000, 1000, 1000]
+ }
+
+ # check if the conversion_factor and price_list_rate is calculated according to uom
+ for d in si.get("items"):
+ for i, k in enumerate(expected_values["keys"]):
+ self.assertEquals(d.get(k), expected_values[d.item_code][i])
+
def create_sales_invoice(**args):
si = frappe.new_doc("Sales Invoice")
args = frappe._dict(args)
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 91f57f5..1cd705b 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -41,7 +41,7 @@
# set contact and address details for customer, if they are not mentioned
self.set_missing_lead_customer_details()
- self.set_price_list_and_item_details(for_validate)
+ self.set_price_list_and_item_details(for_validate=for_validate)
def set_missing_lead_customer_details(self):
if getattr(self, "customer", None):
@@ -60,7 +60,7 @@
posting_date=self.get('transaction_date') or self.get('posting_date'),
company=self.company))
- def set_price_list_and_item_details(self, for_validate):
+ def set_price_list_and_item_details(self, for_validate=False):
self.set_price_list_currency("Selling")
self.set_missing_item_details(for_validate=for_validate)
diff --git a/erpnext/selling/doctype/quotation/test_records.json b/erpnext/selling/doctype/quotation/test_records.json
index 8a37dbb..5637fb9 100644
--- a/erpnext/selling/doctype/quotation/test_records.json
+++ b/erpnext/selling/doctype/quotation/test_records.json
@@ -23,9 +23,9 @@
"parentfield": "items",
"qty": 10.0,
"rate": 100.0,
- "uom": "_Test UOM",
- "stock_uom": "_Test UOM",
- "conversion_factor": 1.0
+ "uom": "_Test UOM 1",
+ "stock_uom": "_Test UOM 1",
+ "conversion_factor": 1.0
}
],
"quotation_to": "Customer",
diff --git a/erpnext/stock/doctype/item/test_records.json b/erpnext/stock/doctype/item/test_records.json
index aad8ed0..2a1520e 100644
--- a/erpnext/stock/doctype/item/test_records.json
+++ b/erpnext/stock/doctype/item/test_records.json
@@ -24,6 +24,16 @@
"warehouse_reorder_qty": 20
}
],
+ "uoms": [
+ {
+ "uom": "_Test UOM",
+ "conversion_factor": 1.0
+ },
+ {
+ "uom": "_Test UOM 1",
+ "conversion_factor": 10.0
+ }
+ ],
"stock_uom": "_Test UOM",
"show_in_website": 1,
"website_warehouse": "_Test Warehouse - _TC"