mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-01 20:48:27 +00:00
Merge pull request #46959 from barredterra/refactor-due-date
fix: interaction with due date / payment terms / payment schedule
This commit is contained in:
@@ -1042,39 +1042,48 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
||||
}
|
||||
}
|
||||
|
||||
due_date() {
|
||||
due_date(doc, cdt) {
|
||||
// due_date is to be changed, payment terms template and/or payment schedule must
|
||||
// be removed as due_date is automatically changed based on payment terms
|
||||
if (doc.doctype !== cdt) {
|
||||
// triggered by change to the due_date field in payment schedule child table
|
||||
// do nothing to avoid infinite clearing loop
|
||||
return;
|
||||
}
|
||||
|
||||
// if there is only one row in payment schedule child table, set its due date as the due date
|
||||
if (this.frm.doc.payment_schedule.length == 1){
|
||||
this.frm.doc.payment_schedule[0].due_date = this.frm.doc.due_date;
|
||||
if (doc.payment_schedule.length == 1){
|
||||
doc.payment_schedule[0].due_date = doc.due_date;
|
||||
this.frm.refresh_field("payment_schedule");
|
||||
return
|
||||
}
|
||||
|
||||
if (
|
||||
this.frm.doc.due_date &&
|
||||
doc.due_date &&
|
||||
!this.frm.updating_party_details &&
|
||||
!this.frm.doc.is_pos &&
|
||||
!doc.is_pos &&
|
||||
(
|
||||
this.frm.doc.payment_terms_template ||
|
||||
this.frm.doc.payment_schedule?.length
|
||||
doc.payment_terms_template ||
|
||||
doc.payment_schedule?.length
|
||||
)
|
||||
) {
|
||||
const to_clear = [];
|
||||
if (this.frm.doc.payment_terms_template) {
|
||||
to_clear.push("Payment Terms Template");
|
||||
if (doc.payment_terms_template) {
|
||||
to_clear.push(__(frappe.meta.get_label(cdt, "payment_terms_template")));
|
||||
}
|
||||
|
||||
if (this.frm.doc.payment_schedule?.length) {
|
||||
to_clear.push("Payment Schedule Table");
|
||||
if (doc.payment_schedule?.length) {
|
||||
to_clear.push(__(frappe.meta.get_label(cdt, "payment_schedule")));
|
||||
}
|
||||
|
||||
frappe.confirm(
|
||||
__(
|
||||
"Do you want to clear the selected {0}?",
|
||||
[frappe.utils.comma_and(to_clear.map(dt => __(dt)))]
|
||||
"For the new {0} to take effect, would you like to clear the current {1}?",
|
||||
[
|
||||
__(frappe.meta.get_label(cdt, "due_date")),
|
||||
frappe.utils.comma_and(to_clear)
|
||||
],
|
||||
"Clear payment terms template and/or payment schedule when due date is changed"
|
||||
),
|
||||
() => {
|
||||
this.frm.set_value("payment_terms_template", "");
|
||||
|
||||
Reference in New Issue
Block a user