fix: Quotation and Sales Order item sync
This commit is contained in:
		
							parent
							
								
									db2484b6b2
								
							
						
					
					
						commit
						58fe220479
					
				| @ -218,6 +218,15 @@ def make_sales_order(source_name, target_doc=None): | |||||||
| 
 | 
 | ||||||
| def _make_sales_order(source_name, target_doc=None, ignore_permissions=False): | def _make_sales_order(source_name, target_doc=None, ignore_permissions=False): | ||||||
| 	customer = _make_customer(source_name, ignore_permissions) | 	customer = _make_customer(source_name, ignore_permissions) | ||||||
|  | 	ordered_items = frappe._dict( | ||||||
|  | 		frappe.db.get_all( | ||||||
|  | 			"Sales Order Item", | ||||||
|  | 			{"prevdoc_docname": source_name, "docstatus": 1}, | ||||||
|  | 			["item_code", "sum(qty)"], | ||||||
|  | 			group_by="item_code", | ||||||
|  | 			as_list=1, | ||||||
|  | 		) | ||||||
|  | 	) | ||||||
| 
 | 
 | ||||||
| 	def set_missing_values(source, target): | 	def set_missing_values(source, target): | ||||||
| 		if customer: | 		if customer: | ||||||
| @ -233,7 +242,9 @@ def _make_sales_order(source_name, target_doc=None, ignore_permissions=False): | |||||||
| 		target.run_method("calculate_taxes_and_totals") | 		target.run_method("calculate_taxes_and_totals") | ||||||
| 
 | 
 | ||||||
| 	def update_item(obj, target, source_parent): | 	def update_item(obj, target, source_parent): | ||||||
| 		target.stock_qty = flt(obj.qty) * flt(obj.conversion_factor) | 		balance_qty = obj.qty - ordered_items.get(obj.item_code, 0.0) | ||||||
|  | 		target.qty = balance_qty if balance_qty > 0 else 0 | ||||||
|  | 		target.stock_qty = flt(target.qty) * flt(obj.conversion_factor) | ||||||
| 
 | 
 | ||||||
| 		if obj.against_blanket_order: | 		if obj.against_blanket_order: | ||||||
| 			target.against_blanket_order = obj.against_blanket_order | 			target.against_blanket_order = obj.against_blanket_order | ||||||
| @ -249,6 +260,7 @@ def _make_sales_order(source_name, target_doc=None, ignore_permissions=False): | |||||||
| 				"doctype": "Sales Order Item", | 				"doctype": "Sales Order Item", | ||||||
| 				"field_map": {"parent": "prevdoc_docname"}, | 				"field_map": {"parent": "prevdoc_docname"}, | ||||||
| 				"postprocess": update_item, | 				"postprocess": update_item, | ||||||
|  | 				"condition": lambda doc: doc.qty > 0, | ||||||
| 			}, | 			}, | ||||||
| 			"Sales Taxes and Charges": {"doctype": "Sales Taxes and Charges", "add_if_empty": True}, | 			"Sales Taxes and Charges": {"doctype": "Sales Taxes and Charges", "add_if_empty": True}, | ||||||
| 			"Sales Team": {"doctype": "Sales Team", "add_if_empty": True}, | 			"Sales Team": {"doctype": "Sales Team", "add_if_empty": True}, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user