fix(ux): overbiling message in SO->SI, PO->PI (#28088)
This commit is contained in:
parent
a87c201785
commit
6ec047cba9
@ -1032,7 +1032,7 @@ class AccountsController(TransactionBase):
|
|||||||
|
|
||||||
if role_allowed_to_over_bill in user_roles and total_overbilled_amt > 0.1:
|
if role_allowed_to_over_bill in user_roles and total_overbilled_amt > 0.1:
|
||||||
frappe.msgprint(_("Overbilling of {} ignored because you have {} role.")
|
frappe.msgprint(_("Overbilling of {} ignored because you have {} role.")
|
||||||
.format(total_overbilled_amt, role_allowed_to_over_bill), title=_("Warning"), indicator="orange")
|
.format(total_overbilled_amt, role_allowed_to_over_bill), indicator="orange", alert=True)
|
||||||
|
|
||||||
def throw_overbill_exception(self, item, max_allowed_amt):
|
def throw_overbill_exception(self, item, max_allowed_amt):
|
||||||
frappe.throw(_("Cannot overbill for Item {0} in row {1} more than {2}. To allow over-billing, please set allowance in Accounts Settings")
|
frappe.throw(_("Cannot overbill for Item {0} in row {1} more than {2}. To allow over-billing, please set allowance in Accounts Settings")
|
||||||
|
@ -216,11 +216,14 @@ class StatusUpdater(Document):
|
|||||||
overflow_percent = ((item[args['target_field']] - item[args['target_ref_field']]) /
|
overflow_percent = ((item[args['target_field']] - item[args['target_ref_field']]) /
|
||||||
item[args['target_ref_field']]) * 100
|
item[args['target_ref_field']]) * 100
|
||||||
|
|
||||||
if overflow_percent - allowance > 0.01 and role not in frappe.get_roles():
|
if overflow_percent - allowance > 0.01:
|
||||||
item['max_allowed'] = flt(item[args['target_ref_field']] * (100+allowance)/100)
|
item['max_allowed'] = flt(item[args['target_ref_field']] * (100+allowance)/100)
|
||||||
item['reduce_by'] = item[args['target_field']] - item['max_allowed']
|
item['reduce_by'] = item[args['target_field']] - item['max_allowed']
|
||||||
|
|
||||||
self.limits_crossed_error(args, item, qty_or_amount)
|
if role not in frappe.get_roles():
|
||||||
|
self.limits_crossed_error(args, item, qty_or_amount)
|
||||||
|
else:
|
||||||
|
self.warn_about_bypassing_with_role(item, qty_or_amount, role)
|
||||||
|
|
||||||
def limits_crossed_error(self, args, item, qty_or_amount):
|
def limits_crossed_error(self, args, item, qty_or_amount):
|
||||||
'''Raise exception for limits crossed'''
|
'''Raise exception for limits crossed'''
|
||||||
@ -238,6 +241,19 @@ class StatusUpdater(Document):
|
|||||||
frappe.bold(item.get('item_code'))
|
frappe.bold(item.get('item_code'))
|
||||||
) + '<br><br>' + action_msg, OverAllowanceError, title = _('Limit Crossed'))
|
) + '<br><br>' + action_msg, OverAllowanceError, title = _('Limit Crossed'))
|
||||||
|
|
||||||
|
def warn_about_bypassing_with_role(self, item, qty_or_amount, role):
|
||||||
|
action = _("Over Receipt/Delivery") if qty_or_amount == "qty" else _("Overbilling")
|
||||||
|
|
||||||
|
msg = (_("{} of {} {} ignored for item {} because you have {} role.")
|
||||||
|
.format(
|
||||||
|
action,
|
||||||
|
_(item["target_ref_field"].title()),
|
||||||
|
frappe.bold(item["reduce_by"]),
|
||||||
|
frappe.bold(item.get('item_code')),
|
||||||
|
role)
|
||||||
|
)
|
||||||
|
frappe.msgprint(msg, indicator="orange", alert=True)
|
||||||
|
|
||||||
def update_qty(self, update_modified=True):
|
def update_qty(self, update_modified=True):
|
||||||
"""Updates qty or amount at row level
|
"""Updates qty or amount at row level
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user