Merge pull request #30848 from deepeshgarg007/cost_center_filter_p_r
fix: Cost center filter in payment reconciliation
This commit is contained in:
commit
e0fd980bcc
@ -38,6 +38,15 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo
|
|||||||
]
|
]
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.frm.set_query("cost_center", () => {
|
||||||
|
return {
|
||||||
|
"filters": {
|
||||||
|
"company": this.frm.doc.company,
|
||||||
|
"is_group": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh() {
|
refresh() {
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
"invoice_limit",
|
"invoice_limit",
|
||||||
"payment_limit",
|
"payment_limit",
|
||||||
"bank_cash_account",
|
"bank_cash_account",
|
||||||
|
"cost_center",
|
||||||
"sec_break1",
|
"sec_break1",
|
||||||
"invoices",
|
"invoices",
|
||||||
"column_break_15",
|
"column_break_15",
|
||||||
@ -178,13 +179,19 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "column_break_11",
|
"fieldname": "column_break_11",
|
||||||
"fieldtype": "Column Break"
|
"fieldtype": "Column Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "cost_center",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Cost Center",
|
||||||
|
"options": "Cost Center"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide_toolbar": 1,
|
"hide_toolbar": 1,
|
||||||
"icon": "icon-resize-horizontal",
|
"icon": "icon-resize-horizontal",
|
||||||
"issingle": 1,
|
"issingle": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2021-10-04 20:27:11.114194",
|
"modified": "2022-04-29 15:37:10.246831",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Payment Reconciliation",
|
"name": "Payment Reconciliation",
|
||||||
@ -209,5 +216,6 @@
|
|||||||
],
|
],
|
||||||
"sort_field": "modified",
|
"sort_field": "modified",
|
||||||
"sort_order": "DESC",
|
"sort_order": "DESC",
|
||||||
|
"states": [],
|
||||||
"track_changes": 1
|
"track_changes": 1
|
||||||
}
|
}
|
@ -332,6 +332,9 @@ class PaymentReconciliation(Document):
|
|||||||
def get_conditions(self, get_invoices=False, get_payments=False, get_return_invoices=False):
|
def get_conditions(self, get_invoices=False, get_payments=False, get_return_invoices=False):
|
||||||
condition = " and company = '{0}' ".format(self.company)
|
condition = " and company = '{0}' ".format(self.company)
|
||||||
|
|
||||||
|
if self.get("cost_center") and (get_invoices or get_payments or get_return_invoices):
|
||||||
|
condition = " and cost_center = '{0}' ".format(self.cost_center)
|
||||||
|
|
||||||
if get_invoices:
|
if get_invoices:
|
||||||
condition += (
|
condition += (
|
||||||
" and posting_date >= {0}".format(frappe.db.escape(self.from_invoice_date))
|
" and posting_date >= {0}".format(frappe.db.escape(self.from_invoice_date))
|
||||||
|
@ -1,9 +1,96 @@
|
|||||||
# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
|
|
||||||
# import frappe
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
import frappe
|
||||||
|
from frappe.utils import add_days, getdate
|
||||||
|
|
||||||
|
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
|
||||||
|
|
||||||
|
|
||||||
class TestPaymentReconciliation(unittest.TestCase):
|
class TestPaymentReconciliation(unittest.TestCase):
|
||||||
pass
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
make_customer()
|
||||||
|
make_invoice_and_payment()
|
||||||
|
|
||||||
|
def test_payment_reconciliation(self):
|
||||||
|
payment_reco = frappe.get_doc("Payment Reconciliation")
|
||||||
|
payment_reco.company = "_Test Company"
|
||||||
|
payment_reco.party_type = "Customer"
|
||||||
|
payment_reco.party = "_Test Payment Reco Customer"
|
||||||
|
payment_reco.receivable_payable_account = "Debtors - _TC"
|
||||||
|
payment_reco.from_invoice_date = add_days(getdate(), -1)
|
||||||
|
payment_reco.to_invoice_date = getdate()
|
||||||
|
payment_reco.from_payment_date = add_days(getdate(), -1)
|
||||||
|
payment_reco.to_payment_date = getdate()
|
||||||
|
payment_reco.maximum_invoice_amount = 1000
|
||||||
|
payment_reco.maximum_payment_amount = 1000
|
||||||
|
payment_reco.invoice_limit = 10
|
||||||
|
payment_reco.payment_limit = 10
|
||||||
|
payment_reco.bank_cash_account = "_Test Bank - _TC"
|
||||||
|
payment_reco.cost_center = "_Test Cost Center - _TC"
|
||||||
|
payment_reco.get_unreconciled_entries()
|
||||||
|
|
||||||
|
self.assertEqual(len(payment_reco.get("invoices")), 1)
|
||||||
|
self.assertEqual(len(payment_reco.get("payments")), 1)
|
||||||
|
|
||||||
|
payment_entry = payment_reco.get("payments")[0].reference_name
|
||||||
|
invoice = payment_reco.get("invoices")[0].invoice_number
|
||||||
|
|
||||||
|
payment_reco.allocate_entries(
|
||||||
|
{
|
||||||
|
"payments": [payment_reco.get("payments")[0].as_dict()],
|
||||||
|
"invoices": [payment_reco.get("invoices")[0].as_dict()],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
payment_reco.reconcile()
|
||||||
|
|
||||||
|
payment_entry_doc = frappe.get_doc("Payment Entry", payment_entry)
|
||||||
|
self.assertEqual(payment_entry_doc.get("references")[0].reference_name, invoice)
|
||||||
|
|
||||||
|
|
||||||
|
def make_customer():
|
||||||
|
if not frappe.db.get_value("Customer", "_Test Payment Reco Customer"):
|
||||||
|
frappe.get_doc(
|
||||||
|
{
|
||||||
|
"doctype": "Customer",
|
||||||
|
"customer_name": "_Test Payment Reco Customer",
|
||||||
|
"customer_type": "Individual",
|
||||||
|
"customer_group": "_Test Customer Group",
|
||||||
|
"territory": "_Test Territory",
|
||||||
|
}
|
||||||
|
).insert()
|
||||||
|
|
||||||
|
|
||||||
|
def make_invoice_and_payment():
|
||||||
|
si = create_sales_invoice(
|
||||||
|
customer="_Test Payment Reco Customer", qty=1, rate=690, do_not_save=True
|
||||||
|
)
|
||||||
|
si.cost_center = "_Test Cost Center - _TC"
|
||||||
|
si.save()
|
||||||
|
si.submit()
|
||||||
|
|
||||||
|
pe = frappe.get_doc(
|
||||||
|
{
|
||||||
|
"doctype": "Payment Entry",
|
||||||
|
"payment_type": "Receive",
|
||||||
|
"party_type": "Customer",
|
||||||
|
"party": "_Test Payment Reco Customer",
|
||||||
|
"company": "_Test Company",
|
||||||
|
"paid_from_account_currency": "INR",
|
||||||
|
"paid_to_account_currency": "INR",
|
||||||
|
"source_exchange_rate": 1,
|
||||||
|
"target_exchange_rate": 1,
|
||||||
|
"reference_no": "1",
|
||||||
|
"reference_date": getdate(),
|
||||||
|
"received_amount": 690,
|
||||||
|
"paid_amount": 690,
|
||||||
|
"paid_from": "Debtors - _TC",
|
||||||
|
"paid_to": "_Test Bank - _TC",
|
||||||
|
"cost_center": "_Test Cost Center - _TC",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
pe.insert()
|
||||||
|
pe.submit()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user