def create_material_request(self,args): mr=Document('Material Request') mr.material_request_type='Purchase' mr.naming_series='MREQ-' mr.company='InnoWorth' mr.transaction_date=nowdate() mr.fiscal_year=webnotes.conn.get_value("Global Defaults", None, "current_fiscal_year") mr.status='Submitted' mr.docstatus=1 mr.save() mrc=Document('Material Request Item') mrc.parent=mr.name mrc.item_code=args[0][0] mrc.qty=args[0][1] mrc.schedule_date=args[0][2] mrc.docstatus=1 mrc.warehouse=args[0][3] mrc.item_name=args[0][4] mrc.uom=args[0][5] mrc.description=args[0][6] mrc.parentfield='indent_details' mrc.parenttype='Material Request' mrc.save() child_data=[] child_data.append([mrc.item_code,mrc.qty,mrc.schedule_date,mr.name,mrc.warehouse,mrc.item_name,mrc.uom,mrc.description,mrc.name,args[0][7]]) data=[] data.append({"item_code":mrc.item_code,"so_qty":cstr(mrc.qty),"proj_qty":('+'+cstr(mrc.qty)),"warehouse":mrc.warehouse,"bin_iqty":"Bin.indented_qty","bin_pqty":"Bin.projected_qty","type":"po"}) self.update_bin(data) import_amount=self.create_child_po(child_data) return import_amount
def create_child_po(self,child_data): sic=Document('Purchase Order Item') sic.item_code=child_data[0][0] sic.qty=child_data[0][1] sic.stock_qty=child_data[0][1] sic.schedule_date=child_data[0][2] sic.prevdoc_docname=child_data[0][3] sic.warehouse=child_data[0][4] sic.item_name=child_data[0][5] sic.uom=child_data[0][6] sic.stock_uom=child_data[0][6] sic.description=child_data[0][7] sic.prevdoc_detail_docname=child_data[0][8] sic.conversion_factor=1.0 sic.prevdoc_doctype='Material Request' rate=webnotes.conn.sql("select ref_rate from `tabItem Price` where price_list='Standard Buying' and item_code='"+child_data[0][0]+"'",as_list=1) if rate: sic.import_ref_rate=rate[0][0] sic.import_rate=rate[0][0] else: sic.import_ref_rate=1 sic.import_rate=1 if child_data[0][1]: sic.import_amount=cstr(flt(sic.import_ref_rate)*flt(child_data[0][1])) else: sic.import_amount=sic.import_ref_rate sic.parentfield='po_details' sic.parenttype='Purchase Order' sic.parent=child_data[0][9] sic.save() return sic.import_amount