mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-08 23:52:57 +00:00
Merge pull request #31262 from frappe/mergify/bp/version-13-hotfix/pr-30155
fix: Add cost center in loan document (backport #30155)
This commit is contained in:
@@ -32,6 +32,8 @@
|
|||||||
"monthly_repayment_amount",
|
"monthly_repayment_amount",
|
||||||
"repayment_start_date",
|
"repayment_start_date",
|
||||||
"is_term_loan",
|
"is_term_loan",
|
||||||
|
"accounting_dimensions_section",
|
||||||
|
"cost_center",
|
||||||
"account_info",
|
"account_info",
|
||||||
"mode_of_payment",
|
"mode_of_payment",
|
||||||
"disbursement_account",
|
"disbursement_account",
|
||||||
@@ -366,12 +368,23 @@
|
|||||||
"options": "Account",
|
"options": "Account",
|
||||||
"read_only": 1,
|
"read_only": 1,
|
||||||
"reqd": 1
|
"reqd": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "accounting_dimensions_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Accounting Dimensions"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "cost_center",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Cost Center",
|
||||||
|
"options": "Cost Center"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2022-01-25 16:29:16.325501",
|
"modified": "2022-03-10 11:50:31.957360",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Loan Management",
|
"module": "Loan Management",
|
||||||
"name": "Loan",
|
"name": "Loan",
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ class Loan(AccountsController):
|
|||||||
self.set_loan_amount()
|
self.set_loan_amount()
|
||||||
self.validate_loan_amount()
|
self.validate_loan_amount()
|
||||||
self.set_missing_fields()
|
self.set_missing_fields()
|
||||||
|
self.validate_cost_center()
|
||||||
self.validate_accounts()
|
self.validate_accounts()
|
||||||
self.check_sanctioned_amount_limit()
|
self.check_sanctioned_amount_limit()
|
||||||
self.validate_repay_from_salary()
|
self.validate_repay_from_salary()
|
||||||
@@ -59,6 +60,13 @@ class Loan(AccountsController):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def validate_cost_center(self):
|
||||||
|
if not self.cost_center and self.rate_of_interest != 0.0:
|
||||||
|
self.cost_center = frappe.db.get_value("Company", self.company, "cost_center")
|
||||||
|
|
||||||
|
if not self.cost_center:
|
||||||
|
frappe.throw(_("Cost center is mandatory for loans having rate of interest greater than 0"))
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
self.link_loan_security_pledge()
|
self.link_loan_security_pledge()
|
||||||
# Interest accrual for backdated term loans
|
# Interest accrual for backdated term loans
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import frappe
|
|||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.utils import add_days, cint, date_diff, flt, get_datetime, getdate, nowdate
|
from frappe.utils import add_days, cint, date_diff, flt, get_datetime, getdate, nowdate
|
||||||
|
|
||||||
import erpnext
|
|
||||||
from erpnext.accounts.general_ledger import make_gl_entries
|
from erpnext.accounts.general_ledger import make_gl_entries
|
||||||
from erpnext.controllers.accounts_controller import AccountsController
|
from erpnext.controllers.accounts_controller import AccountsController
|
||||||
|
|
||||||
@@ -41,6 +40,8 @@ class LoanInterestAccrual(AccountsController):
|
|||||||
def make_gl_entries(self, cancel=0, adv_adj=0):
|
def make_gl_entries(self, cancel=0, adv_adj=0):
|
||||||
gle_map = []
|
gle_map = []
|
||||||
|
|
||||||
|
cost_center = frappe.db.get_value("Loan", self.loan, "cost_center")
|
||||||
|
|
||||||
if self.interest_amount:
|
if self.interest_amount:
|
||||||
gle_map.append(
|
gle_map.append(
|
||||||
self.get_gl_dict(
|
self.get_gl_dict(
|
||||||
@@ -56,7 +57,7 @@ class LoanInterestAccrual(AccountsController):
|
|||||||
"remarks": _("Interest accrued from {0} to {1} against loan: {2}").format(
|
"remarks": _("Interest accrued from {0} to {1} against loan: {2}").format(
|
||||||
self.last_accrual_date, self.posting_date, self.loan
|
self.last_accrual_date, self.posting_date, self.loan
|
||||||
),
|
),
|
||||||
"cost_center": erpnext.get_default_cost_center(self.company),
|
"cost_center": cost_center,
|
||||||
"posting_date": self.posting_date,
|
"posting_date": self.posting_date,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -74,7 +75,7 @@ class LoanInterestAccrual(AccountsController):
|
|||||||
"remarks": ("Interest accrued from {0} to {1} against loan: {2}").format(
|
"remarks": ("Interest accrued from {0} to {1} against loan: {2}").format(
|
||||||
self.last_accrual_date, self.posting_date, self.loan
|
self.last_accrual_date, self.posting_date, self.loan
|
||||||
),
|
),
|
||||||
"cost_center": erpnext.get_default_cost_center(self.company),
|
"cost_center": cost_center,
|
||||||
"posting_date": self.posting_date,
|
"posting_date": self.posting_date,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -367,3 +367,4 @@ erpnext.patches.v13_0.create_accounting_dimensions_in_orders
|
|||||||
erpnext.patches.v13_0.set_per_billed_in_return_delivery_note
|
erpnext.patches.v13_0.set_per_billed_in_return_delivery_note
|
||||||
erpnext.patches.v13_0.update_employee_advance_status
|
erpnext.patches.v13_0.update_employee_advance_status
|
||||||
erpnext.patches.v13_0.job_card_status_on_hold
|
erpnext.patches.v13_0.job_card_status_on_hold
|
||||||
|
erpnext.patches.v13_0.add_cost_center_in_loans
|
||||||
|
|||||||
12
erpnext/patches/v13_0/add_cost_center_in_loans.py
Normal file
12
erpnext/patches/v13_0/add_cost_center_in_loans.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import frappe
|
||||||
|
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
frappe.reload_doc("loan_management", "doctype", "loan")
|
||||||
|
loan = frappe.qb.DocType("Loan")
|
||||||
|
|
||||||
|
for company in frappe.get_all("Company", pluck="name"):
|
||||||
|
default_cost_center = frappe.db.get_value("Company", company, "cost_center")
|
||||||
|
frappe.qb.update(loan).set(loan.cost_center, default_cost_center).where(
|
||||||
|
loan.company == company
|
||||||
|
).run()
|
||||||
Reference in New Issue
Block a user