[ Fix ] UOM Conversion fix (#14768)
* increase precision for conversion value * inverse the conversion data * update uom data * rectify conversion logic according to inversion of values * rectify test case for uom conversion * patch improv to correct conversion data
This commit is contained in:
parent
4dc5721ba5
commit
dfe897b888
@ -520,7 +520,7 @@ erpnext.patches.v11_0.move_leave_approvers_from_employee #13-06-2018
|
|||||||
erpnext.patches.v11_0.update_department_lft_rgt
|
erpnext.patches.v11_0.update_department_lft_rgt
|
||||||
erpnext.patches.v11_0.add_default_email_template_for_leave
|
erpnext.patches.v11_0.add_default_email_template_for_leave
|
||||||
erpnext.patches.v11_0.set_default_email_template_in_hr #08-06-2018
|
erpnext.patches.v11_0.set_default_email_template_in_hr #08-06-2018
|
||||||
erpnext.patches.v11_0.uom_conversion_data
|
erpnext.patches.v11_0.uom_conversion_data #30-06-2018
|
||||||
erpnext.patches.v10_0.taxes_issue_with_pos
|
erpnext.patches.v10_0.taxes_issue_with_pos
|
||||||
erpnext.patches.v11_0.update_account_type_in_party_type
|
erpnext.patches.v11_0.update_account_type_in_party_type
|
||||||
erpnext.patches.v10_1.transfer_subscription_to_auto_repeat
|
erpnext.patches.v10_1.transfer_subscription_to_auto_repeat
|
||||||
|
@ -9,3 +9,13 @@ def execute():
|
|||||||
|
|
||||||
if not frappe.db.a_row_exists("UOM Conversion Factor"):
|
if not frappe.db.a_row_exists("UOM Conversion Factor"):
|
||||||
add_uom_data()
|
add_uom_data()
|
||||||
|
else:
|
||||||
|
# delete conversion data and insert again
|
||||||
|
frappe.db.sql("delete from `tabUOM Conversion Factor`")
|
||||||
|
try:
|
||||||
|
frappe.delete_doc('UOM', 'Hundredweight')
|
||||||
|
frappe.delete_doc('UOM', 'Pound Cubic Yard')
|
||||||
|
except frappe.LinkExistsError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
add_uom_data()
|
||||||
|
@ -163,7 +163,7 @@
|
|||||||
"length": 0,
|
"length": 0,
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "9",
|
||||||
"print_hide": 0,
|
"print_hide": 0,
|
||||||
"print_hide_if_no_value": 0,
|
"print_hide_if_no_value": 0,
|
||||||
"read_only": 0,
|
"read_only": 0,
|
||||||
@ -186,7 +186,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2018-06-05 12:50:02.648100",
|
"modified": "2018-06-29 15:35:34.580831",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Setup",
|
"module": "Setup",
|
||||||
"name": "UOM Conversion Factor",
|
"name": "UOM Conversion Factor",
|
||||||
@ -220,5 +220,6 @@
|
|||||||
"sort_field": "modified",
|
"sort_field": "modified",
|
||||||
"sort_order": "DESC",
|
"sort_order": "DESC",
|
||||||
"track_changes": 1,
|
"track_changes": 1,
|
||||||
"track_seen": 0
|
"track_seen": 0,
|
||||||
|
"track_views": 0
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
@ -261,7 +261,11 @@
|
|||||||
"must_be_whole_number": 0
|
"must_be_whole_number": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"uom_name": "Hundredweight",
|
"uom_name": "Hundredweight (UK)",
|
||||||
|
"must_be_whole_number": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uom_name": "Hundredweight (US)",
|
||||||
"must_be_whole_number": 0
|
"must_be_whole_number": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -789,7 +793,7 @@
|
|||||||
"must_be_whole_number": 0
|
"must_be_whole_number": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"uom_name": "Pound Cubic Yard",
|
"uom_name": "Pound/Cubic Yard",
|
||||||
"must_be_whole_number": 0
|
"must_be_whole_number": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -934,10 +934,11 @@ def get_uom_conv_factor(uom, stock_uom):
|
|||||||
|
|
||||||
for d in uom_details:
|
for d in uom_details:
|
||||||
if d.from_uom == stock_uom and d.to_uom == uom:
|
if d.from_uom == stock_uom and d.to_uom == uom:
|
||||||
value = d.value
|
|
||||||
elif d.from_uom == uom and d.to_uom == stock_uom:
|
|
||||||
value = 1/flt(d.value)
|
value = 1/flt(d.value)
|
||||||
else:
|
elif d.from_uom == uom and d.to_uom == stock_uom:
|
||||||
|
value = d.value
|
||||||
|
|
||||||
|
if not value:
|
||||||
uom_stock = frappe.db.get_value("UOM Conversion Factor", {"to_uom": stock_uom}, ["from_uom", "value"], as_dict=1)
|
uom_stock = frappe.db.get_value("UOM Conversion Factor", {"to_uom": stock_uom}, ["from_uom", "value"], as_dict=1)
|
||||||
uom_row = frappe.db.get_value("UOM Conversion Factor", {"to_uom": uom}, ["from_uom", "value"], as_dict=1)
|
uom_row = frappe.db.get_value("UOM Conversion Factor", {"to_uom": uom}, ["from_uom", "value"], as_dict=1)
|
||||||
|
|
||||||
|
@ -255,9 +255,9 @@ class TestItem(unittest.TestCase):
|
|||||||
d.conversion_factor = value
|
d.conversion_factor = value
|
||||||
|
|
||||||
self.assertEqual(item_doc.uoms[0].uom, "Carat")
|
self.assertEqual(item_doc.uoms[0].uom, "Carat")
|
||||||
self.assertEqual(item_doc.uoms[0].conversion_factor, 5)
|
self.assertEqual(item_doc.uoms[0].conversion_factor, 0.2)
|
||||||
self.assertEqual(item_doc.uoms[1].uom, "Kg")
|
self.assertEqual(item_doc.uoms[1].uom, "Kg")
|
||||||
self.assertEqual(item_doc.uoms[1].conversion_factor, 0.001)
|
self.assertEqual(item_doc.uoms[1].conversion_factor, 1000)
|
||||||
|
|
||||||
def test_item_variant_by_manufacturer(self):
|
def test_item_variant_by_manufacturer(self):
|
||||||
fields = [{'field_name': 'description'}, {'field_name': 'variant_based_on'}]
|
fields = [{'field_name': 'description'}, {'field_name': 'variant_based_on'}]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user