overflow validation fixed
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 80aa73a..74a9628 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -30,6 +30,7 @@
'target_ref_field': 'amount',
'source_field': 'amount',
'percent_join_field': 'purchase_order',
+ 'overflow_type': 'billing'
}]
def validate(self):
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 5e29487..0f6737c 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -36,7 +36,8 @@
'join_field': 'so_detail',
'percent_join_field': 'sales_order',
'status_field': 'billing_status',
- 'keyword': 'Billed'
+ 'keyword': 'Billed',
+ 'overflow_type': 'billing'
}]
def validate(self):
@@ -134,7 +135,8 @@
'keyword':'Delivered',
'second_source_dt': 'Delivery Note Item',
'second_source_field': 'qty',
- 'second_join_field': 'prevdoc_detail_docname'
+ 'second_join_field': 'prevdoc_detail_docname',
+ 'overflow_type': 'delivery'
})
def on_update_after_submit(self):
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index 2109d72..f9f5103 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -24,6 +24,7 @@
'target_ref_field': 'qty',
'source_field': 'qty',
'percent_join_field': 'prevdoc_docname',
+ 'overflow_type': 'order'
}]
def validate(self):
diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py
index 90eacd9..3c63554 100644
--- a/erpnext/controllers/status_updater.py
+++ b/erpnext/controllers/status_updater.py
@@ -132,11 +132,12 @@
if not item[args['target_ref_field']]:
msgprint(_("Note: System will not check over-delivery and over-booking for Item {0} as quantity or amount is 0").format(item.item_code))
elif args.get('no_tolerance'):
- item['reduce_by'] = item[args['target_field']] - \
- item[args['target_ref_field']]
+ item['reduce_by'] = item[args['target_field']] - item[args['target_ref_field']]
if item['reduce_by'] > .01:
- msgprint(_("Allowance for over-delivery / over-billing crossed for Item {0}").format(item.item_code))
- throw(_("{0} must be less than or equal to {1}").format(_(item.target_ref_field), item[args["target_ref_field"]]))
+ msgprint(_("Allowance for over-{0} crossed for Item {1}")
+ .format(args["overflow_type"], item.item_code))
+ throw(_("{0} must be reduced by {1} or you should increase overflow tolerance")
+ .format(_(item.target_ref_field.title()), item["reduce_by"]))
else:
self.check_overflow_with_tolerance(item, args)
@@ -156,8 +157,10 @@
item['max_allowed'] = flt(item[args['target_ref_field']] * (100+tolerance)/100)
item['reduce_by'] = item[args['target_field']] - item['max_allowed']
- msgprint(_("Allowance for over-delivery / over-billing crossed for Item {0}.").format(item["item_code"]))
- throw(_("{0} must be less than or equal to {1}").format(item["target_ref_field"].title(), item["max_allowed"]))
+ msgprint(_("Allowance for over-{0} crossed for Item {1}.")
+ .format(args["overflow_type"], item["item_code"]))
+ throw(_("{0} must be reduced by {1} or you should increase overflow tolerance")
+ .format(_(item["target_ref_field"].title()), item["reduce_by"]))
def update_qty(self, change_modified=True):
"""
diff --git a/erpnext/selling/doctype/installation_note/installation_note.py b/erpnext/selling/doctype/installation_note/installation_note.py
index 7d2d3d0..0477abc 100644
--- a/erpnext/selling/doctype/installation_note/installation_note.py
+++ b/erpnext/selling/doctype/installation_note/installation_note.py
@@ -28,7 +28,8 @@
'source_field': 'qty',
'percent_join_field': 'prevdoc_docname',
'status_field': 'installation_status',
- 'keyword': 'Installed'
+ 'keyword': 'Installed',
+ 'overflow_type': 'installation'
}]
def validate(self):
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index c1ddf63..13da907 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -29,7 +29,8 @@
'source_field': 'qty',
'percent_join_field': 'against_sales_order',
'status_field': 'delivery_status',
- 'keyword': 'Delivered'
+ 'keyword': 'Delivered',
+ 'overflow_type': 'delivery'
}]
def onload(self):
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index 71c07eb..74f1198 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -27,6 +27,7 @@
'target_ref_field': 'qty',
'source_field': 'qty',
'percent_join_field': 'prevdoc_docname',
+ 'overflow_type': 'receipt'
}]
def onload(self):