fix: Make conversion rate optional for non itemized items (#18541)
This commit is contained in:
parent
fb5aa43e77
commit
cfb899451f
@ -30,7 +30,9 @@ def update_last_purchase_rate(doc, is_submit):
|
|||||||
# for it to be considered for latest purchase rate
|
# for it to be considered for latest purchase rate
|
||||||
if flt(d.conversion_factor):
|
if flt(d.conversion_factor):
|
||||||
last_purchase_rate = flt(d.base_rate) / flt(d.conversion_factor)
|
last_purchase_rate = flt(d.base_rate) / flt(d.conversion_factor)
|
||||||
else:
|
# Check if item code is present
|
||||||
|
# Conversion factor should not be mandatory for non itemized items
|
||||||
|
elif d.item_code:
|
||||||
frappe.throw(_("UOM Conversion factor is required in row {0}").format(d.idx))
|
frappe.throw(_("UOM Conversion factor is required in row {0}").format(d.idx))
|
||||||
|
|
||||||
# update last purchsae rate
|
# update last purchsae rate
|
||||||
@ -84,13 +86,13 @@ def get_linked_material_requests(items):
|
|||||||
items = json.loads(items)
|
items = json.loads(items)
|
||||||
mr_list = []
|
mr_list = []
|
||||||
for item in items:
|
for item in items:
|
||||||
material_request = frappe.db.sql("""SELECT distinct mr.name AS mr_name,
|
material_request = frappe.db.sql("""SELECT distinct mr.name AS mr_name,
|
||||||
(mr_item.qty - mr_item.ordered_qty) AS qty,
|
(mr_item.qty - mr_item.ordered_qty) AS qty,
|
||||||
mr_item.item_code AS item_code,
|
mr_item.item_code AS item_code,
|
||||||
mr_item.name AS mr_item
|
mr_item.name AS mr_item
|
||||||
FROM `tabMaterial Request` mr, `tabMaterial Request Item` mr_item
|
FROM `tabMaterial Request` mr, `tabMaterial Request Item` mr_item
|
||||||
WHERE mr.name = mr_item.parent
|
WHERE mr.name = mr_item.parent
|
||||||
AND mr_item.item_code = %(item)s
|
AND mr_item.item_code = %(item)s
|
||||||
AND mr.material_request_type = 'Purchase'
|
AND mr.material_request_type = 'Purchase'
|
||||||
AND mr.per_ordered < 99.99
|
AND mr.per_ordered < 99.99
|
||||||
AND mr.docstatus = 1
|
AND mr.docstatus = 1
|
||||||
@ -98,6 +100,6 @@ def get_linked_material_requests(items):
|
|||||||
ORDER BY mr_item.item_code ASC""",{"item": item}, as_dict=1)
|
ORDER BY mr_item.item_code ASC""",{"item": item}, as_dict=1)
|
||||||
if material_request:
|
if material_request:
|
||||||
mr_list.append(material_request)
|
mr_list.append(material_request)
|
||||||
|
|
||||||
return mr_list
|
return mr_list
|
||||||
|
|
||||||
|
|||||||
@ -395,7 +395,9 @@ class BuyingController(StockController):
|
|||||||
def set_qty_as_per_stock_uom(self):
|
def set_qty_as_per_stock_uom(self):
|
||||||
for d in self.get("items"):
|
for d in self.get("items"):
|
||||||
if d.meta.get_field("stock_qty"):
|
if d.meta.get_field("stock_qty"):
|
||||||
if not d.conversion_factor:
|
# Check if item code is present
|
||||||
|
# Conversion factor should not be mandatory for non itemized items
|
||||||
|
if not d.conversion_factor and d.item_code:
|
||||||
frappe.throw(_("Row {0}: Conversion Factor is mandatory").format(d.idx))
|
frappe.throw(_("Row {0}: Conversion Factor is mandatory").format(d.idx))
|
||||||
d.stock_qty = flt(d.qty) * flt(d.conversion_factor)
|
d.stock_qty = flt(d.qty) * flt(d.conversion_factor)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user