Merge pull request #43864 from frappe/mergify/bp/version-15-hotfix/pr-43685

fix: do not check for payment terms details for return invoices. (backport #43685)
This commit is contained in:
ruthra kumar
2024-10-28 15:52:45 +05:30
committed by GitHub
6 changed files with 18 additions and 5 deletions

View File

@@ -342,7 +342,9 @@ erpnext.accounts.PurchaseInvoice = class PurchaseInvoice extends erpnext.buying.
party_type: "Supplier", party_type: "Supplier",
account: this.frm.doc.credit_to, account: this.frm.doc.credit_to,
price_list: this.frm.doc.buying_price_list, price_list: this.frm.doc.buying_price_list,
fetch_payment_terms_template: cint(!this.frm.doc.ignore_default_payment_terms_template), fetch_payment_terms_template: cint(
(this.frm.doc.is_return == 0) & !this.frm.doc.ignore_default_payment_terms_template
),
}, },
function () { function () {
me.apply_pricing_rule(); me.apply_pricing_rule();

View File

@@ -1134,12 +1134,14 @@
"label": "Payment Terms" "label": "Payment Terms"
}, },
{ {
"depends_on": "eval:(!doc.is_paid && !doc.is_return)",
"fieldname": "payment_terms_template", "fieldname": "payment_terms_template",
"fieldtype": "Link", "fieldtype": "Link",
"label": "Payment Terms Template", "label": "Payment Terms Template",
"options": "Payment Terms Template" "options": "Payment Terms Template"
}, },
{ {
"depends_on": "eval:(!doc.is_paid && !doc.is_return)",
"fieldname": "payment_schedule", "fieldname": "payment_schedule",
"fieldtype": "Table", "fieldtype": "Table",
"label": "Payment Schedule", "label": "Payment Schedule",
@@ -1631,7 +1633,7 @@
"idx": 204, "idx": 204,
"is_submittable": 1, "is_submittable": 1,
"links": [], "links": [],
"modified": "2024-09-11 12:59:19.130593", "modified": "2024-10-25 18:13:01.944477",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Accounts", "module": "Accounts",
"name": "Purchase Invoice", "name": "Purchase Invoice",

View File

@@ -339,6 +339,9 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends (
account: this.frm.doc.debit_to, account: this.frm.doc.debit_to,
price_list: this.frm.doc.selling_price_list, price_list: this.frm.doc.selling_price_list,
pos_profile: pos_profile, pos_profile: pos_profile,
fetch_payment_terms_template: cint(
(this.frm.doc.is_return == 0) & !this.frm.doc.ignore_default_payment_terms_template
),
}, },
function () { function () {
me.apply_pricing_rule(); me.apply_pricing_rule();

View File

@@ -522,7 +522,8 @@ class ReceivablePayableReport:
from `tab{row.voucher_type}` si, `tabPayment Schedule` ps from `tab{row.voucher_type}` si, `tabPayment Schedule` ps
where where
si.name = ps.parent and si.name = ps.parent and
si.name = %s si.name = %s and
si.is_return = 0
order by ps.paid_amount desc, due_date order by ps.paid_amount desc, due_date
""", """,
row.voucher_no, row.voucher_no,

View File

@@ -451,6 +451,11 @@ class AccountsController(TransactionBase):
) )
def validate_invoice_documents_schedule(self): def validate_invoice_documents_schedule(self):
if self.is_return:
self.payment_terms_template = ""
self.payment_schedule = []
return
self.validate_payment_schedule_dates() self.validate_payment_schedule_dates()
self.set_due_date() self.set_due_date()
self.set_payment_schedule() self.set_payment_schedule()
@@ -465,7 +470,7 @@ class AccountsController(TransactionBase):
self.validate_payment_schedule_amount() self.validate_payment_schedule_amount()
def validate_all_documents_schedule(self): def validate_all_documents_schedule(self):
if self.doctype in ("Sales Invoice", "Purchase Invoice") and not self.is_return: if self.doctype in ("Sales Invoice", "Purchase Invoice"):
self.validate_invoice_documents_schedule() self.validate_invoice_documents_schedule()
elif self.doctype in ("Quotation", "Purchase Order", "Sales Order"): elif self.doctype in ("Quotation", "Purchase Order", "Sales Order"):
self.validate_non_invoice_documents_schedule() self.validate_non_invoice_documents_schedule()

View File

@@ -2438,7 +2438,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
payment_terms_template() { payment_terms_template() {
var me = this; var me = this;
const doc = this.frm.doc; const doc = this.frm.doc;
if(doc.payment_terms_template && doc.doctype !== 'Delivery Note') { if(doc.payment_terms_template && doc.doctype !== 'Delivery Note' && doc.is_return == 0) {
var posting_date = doc.posting_date || doc.transaction_date; var posting_date = doc.posting_date || doc.transaction_date;
frappe.call({ frappe.call({
method: "erpnext.controllers.accounts_controller.get_payment_terms", method: "erpnext.controllers.accounts_controller.get_payment_terms",