feat: Auto allocate advance payments only against orders (#34727)
feat: Auto allocate advance payments only againt orders
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
index 54caf6f..b4d369e 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
@@ -118,6 +118,7 @@
"paid_amount",
"advances_section",
"allocate_advances_automatically",
+ "only_include_allocated_payments",
"get_advances",
"advances",
"advance_tax",
@@ -1550,17 +1551,24 @@
"fieldname": "named_place",
"fieldtype": "Data",
"label": "Named Place"
+ },
+ {
+ "default": "0",
+ "depends_on": "allocate_advances_automatically",
+ "description": "Advance payments allocated against orders will only be fetched",
+ "fieldname": "only_include_allocated_payments",
+ "fieldtype": "Check",
+ "label": "Only Include Allocated Payments"
}
],
"icon": "fa fa-file-text",
"idx": 204,
"is_submittable": 1,
"links": [],
- "modified": "2023-01-28 19:18:56.586321",
+ "modified": "2023-04-03 22:57:14.074982",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Invoice",
- "name_case": "Title Case",
"naming_rule": "By \"Naming Series\" field",
"owner": "Administrator",
"permissions": [
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
index 2a8ff40..a41e13c 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
@@ -120,6 +120,7 @@
"account_for_change_amount",
"advances_section",
"allocate_advances_automatically",
+ "only_include_allocated_payments",
"get_advances",
"advances",
"write_off_section",
@@ -2126,6 +2127,14 @@
"fieldname": "named_place",
"fieldtype": "Data",
"label": "Named Place"
+ },
+ {
+ "default": "0",
+ "depends_on": "allocate_advances_automatically",
+ "description": "Advance payments allocated against orders will only be fetched",
+ "fieldname": "only_include_allocated_payments",
+ "fieldtype": "Check",
+ "label": "Only Include Allocated Payments"
}
],
"icon": "fa fa-file-text",
@@ -2138,7 +2147,7 @@
"link_fieldname": "consolidated_invoice"
}
],
- "modified": "2023-03-13 11:43:15.883055",
+ "modified": "2023-04-03 22:55:14.206473",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Invoice",
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 390af0d..a347323 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -845,7 +845,9 @@
def set_advances(self):
"""Returns list of advances against Account, Party, Reference"""
- res = self.get_advance_entries()
+ res = self.get_advance_entries(
+ include_unallocated=not cint(self.get("only_include_allocated_payments"))
+ )
self.set("advances", [])
advance_allocated = 0
diff --git a/erpnext/public/js/controllers/accounts.js b/erpnext/public/js/controllers/accounts.js
index a07f75d..d943126 100644
--- a/erpnext/public/js/controllers/accounts.js
+++ b/erpnext/public/js/controllers/accounts.js
@@ -55,6 +55,14 @@
},
allocate_advances_automatically: function(frm) {
+ frm.trigger('fetch_advances');
+ },
+
+ only_include_allocated_payments: function(frm) {
+ frm.trigger('fetch_advances');
+ },
+
+ fetch_advances: function(frm) {
if(frm.doc.allocate_advances_automatically) {
frappe.call({
doc: frm.doc,