Merge branch 'develop' into FIX-ISS-23-24-00171
diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
index c0eed18..5cecddd 100644
--- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
+++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
@@ -184,6 +184,7 @@
},
{
"default": "0",
+ "description": "Payment Terms from orders will be fetched into the invoices as is",
"fieldname": "automatically_fetch_payment_terms",
"fieldtype": "Check",
"label": "Automatically Fetch Payment Terms from Order"
@@ -375,7 +376,7 @@
"index_web_pages_for_search": 1,
"issingle": 1,
"links": [],
- "modified": "2023-03-28 09:50:20.375233",
+ "modified": "2023-04-14 17:22:03.680886",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Accounts Settings",
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index f8a2653..3583dc7 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -1754,7 +1754,12 @@
if doc.doctype == "Purchase Invoice" and doc.invoice_is_blocked():
frappe.msgprint(_("{0} is on hold till {1}").format(doc.name, doc.release_date))
else:
- if doc.doctype in ("Sales Invoice", "Purchase Invoice") and frappe.get_cached_value(
+ if doc.doctype in (
+ "Sales Invoice",
+ "Purchase Invoice",
+ "Purchase Order",
+ "Sales Order",
+ ) and frappe.get_cached_value(
"Payment Terms Template",
doc.payment_terms_template,
"allocate_payment_based_on_payment_terms",
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 7fcc28b..c741622 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -273,8 +273,8 @@
self.validate_payment_schedule_dates()
self.set_due_date()
self.set_payment_schedule()
- self.validate_payment_schedule_amount()
if not self.get("ignore_default_payment_terms_template"):
+ self.validate_payment_schedule_amount()
self.validate_due_date()
self.validate_advance_entries()
@@ -1607,6 +1607,7 @@
base_grand_total = self.get("base_rounded_total") or self.base_grand_total
grand_total = self.get("rounded_total") or self.grand_total
+ automatically_fetch_payment_terms = 0
if self.doctype in ("Sales Invoice", "Purchase Invoice"):
base_grand_total = base_grand_total - flt(self.base_write_off_amount)
@@ -1652,19 +1653,20 @@
)
self.append("payment_schedule", data)
- for d in self.get("payment_schedule"):
- if d.invoice_portion:
- d.payment_amount = flt(
- grand_total * flt(d.invoice_portion / 100), d.precision("payment_amount")
- )
- d.base_payment_amount = flt(
- base_grand_total * flt(d.invoice_portion / 100), d.precision("base_payment_amount")
- )
- d.outstanding = d.payment_amount
- elif not d.invoice_portion:
- d.base_payment_amount = flt(
- d.payment_amount * self.get("conversion_rate"), d.precision("base_payment_amount")
- )
+ if not automatically_fetch_payment_terms:
+ for d in self.get("payment_schedule"):
+ if d.invoice_portion:
+ d.payment_amount = flt(
+ grand_total * flt(d.invoice_portion / 100), d.precision("payment_amount")
+ )
+ d.base_payment_amount = flt(
+ base_grand_total * flt(d.invoice_portion / 100), d.precision("base_payment_amount")
+ )
+ d.outstanding = d.payment_amount
+ elif not d.invoice_portion:
+ d.base_payment_amount = flt(
+ d.payment_amount * self.get("conversion_rate"), d.precision("base_payment_amount")
+ )
def get_order_details(self):
if self.doctype == "Sales Invoice":
@@ -1717,6 +1719,10 @@
"invoice_portion": schedule.invoice_portion,
"mode_of_payment": schedule.mode_of_payment,
"description": schedule.description,
+ "payment_amount": schedule.payment_amount,
+ "base_payment_amount": schedule.base_payment_amount,
+ "outstanding": schedule.outstanding,
+ "paid_amount": schedule.paid_amount,
}
if schedule.discount_type == "Percentage":
diff --git a/erpnext/crm/doctype/lead/lead.json b/erpnext/crm/doctype/lead/lead.json
index 077e7fa..0cb8824 100644
--- a/erpnext/crm/doctype/lead/lead.json
+++ b/erpnext/crm/doctype/lead/lead.json
@@ -2,6 +2,7 @@
"actions": [],
"allow_events_in_timeline": 1,
"allow_import": 1,
+ "allow_rename": 1,
"autoname": "naming_series:",
"creation": "2022-02-08 13:14:41.083327",
"doctype": "DocType",
@@ -515,7 +516,7 @@
"idx": 5,
"image_field": "image",
"links": [],
- "modified": "2023-01-24 18:20:05.044791",
+ "modified": "2023-04-14 18:20:05.044791",
"modified_by": "Administrator",
"module": "CRM",
"name": "Lead",
@@ -582,4 +583,4 @@
"states": [],
"subject_field": "title",
"title_field": "title"
-}
\ No newline at end of file
+}
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 0bd4d91..1675e2c 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -1920,7 +1920,7 @@
}
prompt_user_for_reference_date(){
- var me = this;
+ let me = this;
frappe.prompt({
label: __("Cheque/Reference Date"),
fieldname: "reference_date",
@@ -1947,7 +1947,7 @@
let has_payment_schedule = this.frm.doc.payment_schedule && this.frm.doc.payment_schedule.length;
if(!is_eligible || !has_payment_schedule) return false;
- let has_discount = this.frm.doc.payment_schedule.some(row => row.discount_date);
+ let has_discount = this.frm.doc.payment_schedule.some(row => row.discount);
return has_discount;
}
diff --git a/erpnext/selling/workspace/selling/selling.json b/erpnext/selling/workspace/selling/selling.json
index 45e160d..180a3d7 100644
--- a/erpnext/selling/workspace/selling/selling.json
+++ b/erpnext/selling/workspace/selling/selling.json
@@ -704,7 +704,7 @@
"type": "Link"
}
],
- "modified": "2022-04-26 13:29:55.087240",
+ "modified": "2023-04-16 13:29:55.087240",
"modified_by": "Administrator",
"module": "Selling",
"name": "Selling",
diff --git a/erpnext/stock/doctype/serial_no/serial_no.json b/erpnext/stock/doctype/serial_no/serial_no.json
index 6e1e0d4..7989b1a 100644
--- a/erpnext/stock/doctype/serial_no/serial_no.json
+++ b/erpnext/stock/doctype/serial_no/serial_no.json
@@ -410,10 +410,10 @@
"fieldtype": "Link",
"label": "Company",
"options": "Company",
- "read_only": 1,
"remember_last_selected_value": 1,
"reqd": 1,
- "search_index": 1
+ "search_index": 1,
+ "set_only_once": 1
},
{
"fieldname": "status",
@@ -433,7 +433,7 @@
"icon": "fa fa-barcode",
"idx": 1,
"links": [],
- "modified": "2021-12-23 10:44:30.299450",
+ "modified": "2023-04-14 15:58:46.139887",
"modified_by": "Administrator",
"module": "Stock",
"name": "Serial No",
@@ -461,7 +461,6 @@
"read": 1,
"report": 1,
"role": "Stock Manager",
- "set_user_permissions": 1,
"write": 1
},
{