fix: added validation for incorrect type
This commit is contained in:
		
							parent
							
								
									be78ae72ef
								
							
						
					
					
						commit
						f968f0f257
					
				| @ -125,6 +125,9 @@ class DeprecatedBatchNoValuation: | ||||
| 			if batch_no not in self.non_batchwise_valuation_batches: | ||||
| 				continue | ||||
| 
 | ||||
| 			if not self.non_batchwise_balance_qty: | ||||
| 				continue | ||||
| 
 | ||||
| 			self.batch_avg_rate[batch_no] = ( | ||||
| 				self.non_batchwise_balance_value / self.non_batchwise_balance_qty | ||||
| 			) | ||||
|  | ||||
| @ -5,7 +5,7 @@ import frappe | ||||
| from frappe import _, bold | ||||
| from frappe.model.naming import make_autoname | ||||
| from frappe.query_builder.functions import CombineDatetime, Sum | ||||
| from frappe.utils import cint, flt, now, nowtime, today | ||||
| from frappe.utils import cint, flt, get_link_to_form, now, nowtime, today | ||||
| 
 | ||||
| from erpnext.stock.deprecated_serial_batch import ( | ||||
| 	DeprecatedBatchNoValuation, | ||||
| @ -79,9 +79,24 @@ class SerialBatchBundle: | ||||
| 		self.set_serial_and_batch_bundle(sn_doc) | ||||
| 
 | ||||
| 	def validate_actual_qty(self, sn_doc): | ||||
| 		link = get_link_to_form("Serial and Batch Bundle", sn_doc.name) | ||||
| 
 | ||||
| 		condition = { | ||||
| 			"Inward": self.sle.actual_qty > 0, | ||||
| 			"Outward": self.sle.actual_qty < 0, | ||||
| 		}.get(sn_doc.type_of_transaction) | ||||
| 
 | ||||
| 		if not condition: | ||||
| 			correct_type = "Inward" | ||||
| 			if sn_doc.type_of_transaction == "Inward": | ||||
| 				correct_type = "Outward" | ||||
| 
 | ||||
| 			msg = f"The type of transaction of Serial and Batch Bundle {link} is {bold(sn_doc.type_of_transaction)} but as per the Actual Qty {self.sle.actual_qty} for the item {bold(self.sle.item_code)} in the {self.sle.voucher_type} {self.sle.voucher_no} the type of transaction should be {bold(correct_type)}" | ||||
| 			frappe.throw(_(msg), title=_("Incorrect Type of Transaction")) | ||||
| 
 | ||||
| 		precision = sn_doc.precision("total_qty") | ||||
| 		if flt(sn_doc.total_qty, precision) != flt(self.sle.actual_qty, precision): | ||||
| 			msg = f"Total qty {flt(sn_doc.total_qty, precision)} of Serial and Batch Bundle {sn_doc.name} is not equal to Actual Qty {flt(self.sle.actual_qty, precision)} in the {self.sle.voucher_type} {self.sle.voucher_no}" | ||||
| 			msg = f"Total qty {flt(sn_doc.total_qty, precision)} of Serial and Batch Bundle {link} is not equal to Actual Qty {flt(self.sle.actual_qty, precision)} in the {self.sle.voucher_type} {self.sle.voucher_no}" | ||||
| 			frappe.throw(_(msg)) | ||||
| 
 | ||||
| 	def validate_item(self): | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user