@@ -1314,17 +1314,38 @@ def _validate_work_order(pro_doc):
13141314
13151315 @frappe .whitelist ()
13161316 def get_item_details (self , args = None , for_update = False ):
1317- item = frappe .db .sql (
1318- """select i.name, i.stock_uom, i.description, i.image, i.item_name, i.item_group,
1319- i.has_batch_no, i.sample_quantity, i.has_serial_no, i.allow_alternative_item,
1320- id.expense_account, id.buying_cost_center
1321- from `tabItem` i LEFT JOIN `tabItem Default` id ON i.name=id.parent and id.company=%s
1322- where i.name=%s
1323- and i.disabled=0
1324- and (i.end_of_life is null or i.end_of_life<'1900-01-01' or i.end_of_life > %s)""" ,
1325- (self .company , args .get ("item_code" ), nowdate ()),
1326- as_dict = 1 ,
1317+ item = frappe .qb .DocType ("Item" )
1318+ item_default = frappe .qb .DocType ("Item Default" )
1319+
1320+ query = (
1321+ frappe .qb .from_ (item )
1322+ .left_join (item_default )
1323+ .on ((item .name == item_default .parent ) & (item_default .company == self .company ))
1324+ .select (
1325+ item .name ,
1326+ item .stock_uom ,
1327+ item .description ,
1328+ item .image ,
1329+ item .item_name ,
1330+ item .item_group ,
1331+ item .has_batch_no ,
1332+ item .sample_quantity ,
1333+ item .has_serial_no ,
1334+ item .allow_alternative_item ,
1335+ item_default .expense_account ,
1336+ item_default .buying_cost_center ,
1337+ )
1338+ .where (
1339+ (item .name == args .get ("item_code" ))
1340+ & (item .disabled == 0 )
1341+ & (
1342+ (item .end_of_life .isnull ())
1343+ | (item .end_of_life < "1900-01-01" )
1344+ | (item .end_of_life > nowdate ())
1345+ )
1346+ )
13271347 )
1348+ item = query .run (as_dict = True )
13281349
13291350 if not item :
13301351 frappe .throw (
@@ -1369,6 +1390,11 @@ def get_item_details(self, args=None, for_update=False):
13691390 if self .purpose == "Material Issue" :
13701391 ret ["expense_account" ] = item .get ("expense_account" ) or item_group_defaults .get ("expense_account" )
13711392
1393+ if self .purpose == "Manufacture" :
1394+ ret ["expense_account" ] = frappe .get_cached_value (
1395+ "Company" , self .company , "stock_adjustment_account"
1396+ )
1397+
13721398 for company_field , field in {
13731399 "stock_adjustment_account" : "expense_account" ,
13741400 "cost_center" : "cost_center" ,
0 commit comments