@@ -414,6 +414,8 @@ def get_returned_qty_map(delivery_note):
414414@frappe .whitelist ()
415415def make_sales_invoice (source_name , target_doc = None ):
416416 doc = frappe .get_doc ('Delivery Note' , source_name )
417+
418+ to_make_invoice_qty_map = {}
417419 returned_qty_map = get_returned_qty_map (source_name )
418420 invoiced_qty_map = get_invoiced_qty_map (source_name )
419421
@@ -434,8 +436,7 @@ def set_missing_values(source, target):
434436 target .update (get_fetch_values ("Sales Invoice" , 'company_address' , target .company_address ))
435437
436438 def update_item (source_doc , target_doc , source_parent ):
437- target_doc .qty , returned_qty = get_pending_qty (source_doc )
438- returned_qty_map [source_doc .item_code ] = returned_qty
439+ target_doc .qty = to_make_invoice_qty_map [source_doc .name ]
439440
440441 if source_doc .serial_no and source_parent .per_billed > 0 :
441442 target_doc .serial_no = get_delivery_note_serial_no (source_doc .item_code ,
@@ -445,7 +446,7 @@ def get_pending_qty(item_row):
445446 pending_qty = item_row .qty - invoiced_qty_map .get (item_row .name , 0 )
446447
447448 returned_qty = 0
448- if returned_qty_map .get (item_row .item_code ) > 0 :
449+ if returned_qty_map .get (item_row .item_code , 0 ) > 0 :
449450 returned_qty = flt (returned_qty_map .get (item_row .item_code , 0 ))
450451 returned_qty_map [item_row .item_code ] -= pending_qty
451452
@@ -457,7 +458,9 @@ def get_pending_qty(item_row):
457458 pending_qty -= returned_qty
458459 returned_qty = 0
459460
460- return pending_qty , returned_qty
461+ to_make_invoice_qty_map [item_row .name ] = pending_qty
462+
463+ return pending_qty
461464
462465 doc = get_mapped_doc ("Delivery Note" , source_name , {
463466 "Delivery Note" : {
@@ -477,7 +480,7 @@ def get_pending_qty(item_row):
477480 "cost_center" : "cost_center"
478481 },
479482 "postprocess" : update_item ,
480- "filter" : lambda d : get_pending_qty (d )[ 0 ] <= 0 if not doc .get ("is_return" ) else get_pending_qty (d )[ 0 ] > 0
483+ "filter" : lambda d : get_pending_qty (d ) <= 0 if not doc .get ("is_return" ) else get_pending_qty (d ) > 0
481484 },
482485 "Sales Taxes and Charges" : {
483486 "doctype" : "Sales Taxes and Charges" ,
0 commit comments