fix: don't allow negative rates (#36027)
* fix: don't allow negative rate * test: don't allow negative rate * fix: only check for -rate on items child table
This commit is contained in:
		
							parent
							
								
									b715453ae3
								
							
						
					
					
						commit
						dedf24b86d
					
				| @ -3371,6 +3371,13 @@ class TestSalesInvoice(unittest.TestCase): | ||||
| 
 | ||||
| 		set_advance_flag(company="_Test Company", flag=0, default_account="") | ||||
| 
 | ||||
| 	def test_sales_return_negative_rate(self): | ||||
| 		si = create_sales_invoice(is_return=1, qty=-2, rate=-10, do_not_save=True) | ||||
| 		self.assertRaises(frappe.ValidationError, si.save) | ||||
| 
 | ||||
| 		si.items[0].rate = 10 | ||||
| 		si.save() | ||||
| 
 | ||||
| 
 | ||||
| def set_advance_flag(company, flag, default_account): | ||||
| 	frappe.db.set_value( | ||||
|  | ||||
| @ -233,6 +233,9 @@ class StatusUpdater(Document): | ||||
| 				if hasattr(d, "qty") and d.qty > 0 and self.get("is_return"): | ||||
| 					frappe.throw(_("For an item {0}, quantity must be negative number").format(d.item_code)) | ||||
| 
 | ||||
| 				if hasattr(d, "item_code") and hasattr(d, "rate") and d.rate < 0: | ||||
| 					frappe.throw(_("For an item {0}, rate must be a positive number").format(d.item_code)) | ||||
| 
 | ||||
| 				if d.doctype == args["source_dt"] and d.get(args["join_field"]): | ||||
| 					args["name"] = d.get(args["join_field"]) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user