Merge branch 'develop' into fix-consolidation-precision-error
diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.json b/erpnext/accounts/doctype/pos_profile/pos_profile.json
index d5f7ee4..994b677 100644
--- a/erpnext/accounts/doctype/pos_profile/pos_profile.json
+++ b/erpnext/accounts/doctype/pos_profile/pos_profile.json
@@ -43,6 +43,7 @@
"currency",
"write_off_account",
"write_off_cost_center",
+ "write_off_limit",
"account_for_change_amount",
"disable_rounded_total",
"column_break_23",
@@ -361,6 +362,14 @@
"label": "Validate Stock on Save"
},
{
+ "default": "1",
+ "description": "Auto write off precision loss while consolidation",
+ "fieldname": "write_off_limit",
+ "fieldtype": "Currency",
+ "label": "Write Off Limit",
+ "reqd": 1
+ },
+ {
"default": "0",
"description": "If enabled, the consolidated invoices will have rounded total disabled",
"fieldname": "disable_rounded_total",
@@ -393,7 +402,7 @@
"link_fieldname": "pos_profile"
}
],
- "modified": "2022-07-21 11:16:46.911173",
+ "modified": "2022-08-10 12:57:06.241439",
"modified_by": "Administrator",
"module": "Accounts",
"name": "POS Profile",
diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py
index bc38d08..b73b8ad 100644
--- a/erpnext/controllers/taxes_and_totals.py
+++ b/erpnext/controllers/taxes_and_totals.py
@@ -772,6 +772,18 @@
if (
self.doc.doctype == "Sales Invoice"
and self.doc.get("is_pos")
+ and self.doc.get("pos_profile")
+ and self.doc.get("is_consolidated")
+ ):
+ write_off_limit = flt(
+ frappe.db.get_value("POS Profile", self.doc.pos_profile, "write_off_limit")
+ )
+ if write_off_limit and abs(self.doc.outstanding_amount) <= write_off_limit:
+ self.doc.write_off_outstanding_amount_automatically = 1
+
+ if (
+ self.doc.doctype == "Sales Invoice"
+ and self.doc.get("is_pos")
and self.doc.get("is_return")
and not self.doc.get("is_consolidated")
):