mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-20 23:35:11 +00:00
Merge pull request #50911 from Dharanidharan2813/fix/list-index-bp-50860
fix: Payment Terms auto-fetched in Sales Invoice Without enabling the (automatically_fetch_payment_terms) in Account settings (backport #50149)
This commit is contained in:
@@ -2580,12 +2580,12 @@ class AccountsController(TransactionBase):
|
||||
|
||||
def get_order_details(self):
|
||||
if self.doctype == "Sales Invoice":
|
||||
po_or_so = self.get("items")[0].get("sales_order")
|
||||
po_or_so = self.get("items") and self.get("items")[0].get("sales_order")
|
||||
po_or_so_doctype = "Sales Order"
|
||||
po_or_so_doctype_name = "sales_order"
|
||||
|
||||
else:
|
||||
po_or_so = self.get("items")[0].get("purchase_order")
|
||||
po_or_so = self.get("items") and self.get("items")[0].get("purchase_order")
|
||||
po_or_so_doctype = "Purchase Order"
|
||||
po_or_so_doctype_name = "purchase_order"
|
||||
|
||||
|
||||
@@ -1203,7 +1203,6 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False, a
|
||||
"doctype": "Sales Invoice",
|
||||
"field_map": {
|
||||
"party_account_currency": "party_account_currency",
|
||||
"payment_terms_template": "payment_terms_template",
|
||||
},
|
||||
"field_no_map": ["payment_terms_template"],
|
||||
"validation": {"docstatus": ["=", 1]},
|
||||
|
||||
@@ -202,7 +202,11 @@ class TestSalesOrder(AccountsTestMixin, FrappeTestCase):
|
||||
|
||||
@change_settings(
|
||||
"Accounts Settings",
|
||||
{"add_taxes_from_item_tax_template": 0, "add_taxes_from_taxes_and_charges_template": 1},
|
||||
{
|
||||
"add_taxes_from_item_tax_template": 0,
|
||||
"add_taxes_from_taxes_and_charges_template": 1,
|
||||
"automatically_fetch_payment_terms": 1,
|
||||
},
|
||||
)
|
||||
def test_make_sales_invoice_with_terms(self):
|
||||
so = make_sales_order(do_not_submit=True)
|
||||
@@ -232,6 +236,34 @@ class TestSalesOrder(AccountsTestMixin, FrappeTestCase):
|
||||
si1 = make_sales_invoice(so.name)
|
||||
self.assertEqual(len(si1.get("items")), 0)
|
||||
|
||||
@change_settings("Accounts Settings", {"automatically_fetch_payment_terms": 1}) # Enable auto fetch
|
||||
def test_auto_fetch_terms_enable(self):
|
||||
so = make_sales_order(do_not_submit=True)
|
||||
|
||||
so.payment_terms_template = "_Test Payment Term Template"
|
||||
so.save()
|
||||
so.submit()
|
||||
|
||||
si = make_sales_invoice(so.name)
|
||||
# Check if payment terms are copied from sales order to sales invoice
|
||||
self.assertTrue(si.payment_terms_template)
|
||||
si.insert()
|
||||
si.submit()
|
||||
|
||||
@change_settings("Accounts Settings", {"automatically_fetch_payment_terms": 0}) # Disable auto fetch
|
||||
def test_auto_fetch_terms_disable(self):
|
||||
so = make_sales_order(do_not_submit=True)
|
||||
|
||||
so.payment_terms_template = "_Test Payment Term Template"
|
||||
so.save()
|
||||
so.submit()
|
||||
|
||||
si = make_sales_invoice(so.name)
|
||||
# Check if payment terms are not copied from sales order to sales invoice
|
||||
self.assertFalse(si.payment_terms_template)
|
||||
si.insert()
|
||||
si.submit()
|
||||
|
||||
def test_update_qty(self):
|
||||
so = make_sales_order()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user