From 671517221153f53244e50ff7a86023e7622c9a24 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 9 Mar 2012 16:04:19 +0530 Subject: [PATCH 1/2] sub contracted item are allowed to create po --- erpnext/buying/doctype/purchase_common/purchase_common.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js index 9a414a364a..f0f24a0eca 100644 --- a/erpnext/buying/doctype/purchase_common/purchase_common.js +++ b/erpnext/buying/doctype/purchase_common/purchase_common.js @@ -162,7 +162,7 @@ cur_frm.cscript.conversion_rate = function(doc,cdt,cdn) { //==================== Item Code Get Query ======================================================= // Only Is Purchase Item = 'Yes' and Items not moved to trash are allowed. cur_frm.fields_dict[fname].grid.get_field("item_code").get_query = function(doc, cdt, cdn) { - return 'SELECT tabItem.name, tabItem.description FROM tabItem WHERE tabItem.is_purchase_item="Yes" AND (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` ="0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND tabItem.%(key)s LIKE "%s" LIMIT 50' + return 'SELECT tabItem.name, tabItem.description FROM tabItem WHERE (ifnull(tabItem.is_purchase_item, "No")="Yes" or ifnull(tabItem.is_sub_contracted_item, "No")="Yes") AND (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` ="0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND tabItem.%(key)s LIKE "%s" LIMIT 50' } //==================== Get Item Code Details ===================================================== @@ -358,17 +358,17 @@ cur_frm.cscript.calc_amount = function(doc, n) { set_multiple(tname, cl[i].name, {'import_rate': flt(flt(cl[i][rate_fld]) / flt(doc.conversion_rate))}, fname); set_multiple(tname, cl[i].name, {'import_amount': flt(flt(cl[i].qty) * flt(cl[i][rate_fld]) / flt(doc.conversion_rate))}, fname); - }else if( n==4){ + }else if( n==4){ set_multiple(tname, cl[i].name, {'import_ref_rate': flt(flt(cl[i].purchase_ref_rate) / flt(doc.conversion_rate))}, fname); tmp[rate_fld] = flt( flt(cl[i].purchase_ref_rate) - flt(flt(cl[i].purchase_ref_rate)*flt(cl[i].discount_rate)/100) ) set_multiple(tname, cl[i].name, tmp, fname); - + msgprint(cl[i][rate_fld]) set_multiple(tname, cl[i].name, {'import_rate': flt(flt(cl[i][rate_fld]) / flt(doc.conversion_rate))}, fname); set_multiple(tname, cl[i].name, {'amount':flt(flt(cl[i].qty) * flt(cl[i][rate_fld]))}, fname); set_multiple(tname, cl[i].name, {'import_amount': flt(flt(cl[i].qty) * flt(cl[i][rate_fld]) / flt(doc.conversion_rate))}, fname); - + msgprint(cl[i]['amount']) }else if( n==5){ tmp[rate_fld] = flt( flt(cl[i].import_ref_rate) - flt(flt(cl[i].import_ref_rate)*flt(cl[i].discount_rate)/100) ) * flt(doc.conversion_rate); set_multiple(tname, cl[i].name, {'purchase_ref_rate': flt(flt(cl[i].import_ref_rate) * flt(doc.conversion_rate))}, fname); From b5b39f0e489b01144754a93bcdd5a20bda7dbbb7 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 12 Mar 2012 11:25:10 +0530 Subject: [PATCH 2/2] update cost as per LPR and standard rate --- .../doctype/bill_of_materials/bill_of_materials.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/erpnext/production/doctype/bill_of_materials/bill_of_materials.py b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py index 3f0bb9e3e6..dfbc998d6f 100644 --- a/erpnext/production/doctype/bill_of_materials/bill_of_materials.py +++ b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py @@ -91,14 +91,12 @@ class DocType: arg = eval(arg) item = self.get_item_det(arg['item_code']) - self.validate_rm_item(item) arg['bom_no'] = arg['bom_no'] or item and cstr(item[0]['default_bom']) or '' arg.update(item[0]) rate = self.get_rm_rate(arg) - ret_item = { 'description' : item and arg['description'] or '', 'stock_uom' : item and arg['stock_uom'] or '', @@ -209,11 +207,11 @@ class DocType: """Fetch RM rate as per today's valuation rate and calculate totals""" total_rm_cost = 0 for d in getlist(self.doclist, 'bom_materials'): - if self.doc.rm_cost_as_per == 'Valuation Rate': - arg = {'item_code': d.item_code, 'qty': d.qty, 'bom_no': d.bom_no} - ret = self.get_bom_material_detail(cstr(arg)) - for k in ret: - d.fields[k] = ret[k] + #if self.doc.rm_cost_as_per == 'Valuation Rate': + arg = {'item_code': d.item_code, 'qty': d.qty, 'bom_no': d.bom_no} + ret = self.get_bom_material_detail(cstr(arg)) + for k in ret: + d.fields[k] = ret[k] d.amount = flt(d.rate) * flt(d.qty) total_rm_cost += d.amount