Merge pull request #7875 from KanchanChauhan/employee-loan-fixes
[Fix] Multiple fixes in Employee Loan
diff --git a/erpnext/hr/doctype/employee_loan_application/employee_loan_application.js b/erpnext/hr/doctype/employee_loan_application/employee_loan_application.js
index 6958bea..33b620b 100644
--- a/erpnext/hr/doctype/employee_loan_application/employee_loan_application.js
+++ b/erpnext/hr/doctype/employee_loan_application/employee_loan_application.js
@@ -4,13 +4,33 @@
frappe.ui.form.on('Employee Loan Application', {
refresh: function(frm) {
frm.trigger("toggle_fields")
+ frm.trigger("add_toolbar_buttons")
},
repayment_method: function(frm) {
+ frm.doc.repayment_amount = frm.doc.repayment_periods = ""
frm.trigger("toggle_fields")
},
-
toggle_fields: function(frm) {
frm.toggle_enable("repayment_amount", frm.doc.repayment_method=="Repay Fixed Amount per Period")
frm.toggle_enable("repayment_periods", frm.doc.repayment_method=="Repay Over Number of Periods")
+ },
+ add_toolbar_buttons: function(frm) {
+ if (frm.doc.status == "Approved") {
+ frm.add_custom_button(__('Employee Loan'), function() {
+ frappe.call({
+ type: "GET",
+ method: "erpnext.hr.doctype.employee_loan_application.employee_loan_application.make_employee_loan",
+ args: {
+ "source_name": frm.doc.name
+ },
+ callback: function(r) {
+ if(!r.exc) {
+ var doc = frappe.model.sync(r.message);
+ frappe.set_route("Form", r.message.doctype, r.message.name);
+ }
+ }
+ });
+ })
+ }
}
});
diff --git a/erpnext/hr/doctype/employee_loan_application/employee_loan_application.json b/erpnext/hr/doctype/employee_loan_application/employee_loan_application.json
index f6a9c02..29617dd 100644
--- a/erpnext/hr/doctype/employee_loan_application/employee_loan_application.json
+++ b/erpnext/hr/doctype/employee_loan_application/employee_loan_application.json
@@ -146,9 +146,9 @@
"in_standard_filter": 0,
"label": "Status",
"length": 0,
- "no_copy": 0,
+ "no_copy": 1,
"options": "Open\nApproved\nRejected",
- "permlevel": 0,
+ "permlevel": 1,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
@@ -639,7 +639,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-02-22 04:27:36.144540",
+ "modified": "2017-02-27 04:52:39.344524",
"modified_by": "Administrator",
"module": "HR",
"name": "Employee Loan Application",
@@ -685,6 +685,46 @@
"share": 1,
"submit": 1,
"write": 1
+ },
+ {
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 1,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "HR Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 0,
+ "write": 1
+ },
+ {
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 0,
+ "email": 1,
+ "export": 1,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 1,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Employee",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 0,
+ "write": 0
}
],
"quick_entry": 0,
diff --git a/erpnext/hr/doctype/employee_loan_application/employee_loan_application.py b/erpnext/hr/doctype/employee_loan_application/employee_loan_application.py
index 15dbd4e..74a65e2 100644
--- a/erpnext/hr/doctype/employee_loan_application/employee_loan_application.py
+++ b/erpnext/hr/doctype/employee_loan_application/employee_loan_application.py
@@ -6,6 +6,7 @@
import frappe, math
from frappe import _
from frappe.utils import flt
+from frappe.model.mapper import get_mapped_doc
from frappe.model.document import Document
from erpnext.hr.doctype.employee_loan.employee_loan import get_monthly_repayment_amount, check_repayment_method
@@ -18,7 +19,7 @@
def validate_loan_amount(self):
maximum_loan_limit = frappe.db.get_value('Loan Type', self.loan_type, 'maximum_loan_amount')
- if self.loan_amount > maximum_loan_limit:
+ if maximum_loan_limit and self.loan_amount > maximum_loan_limit:
frappe.throw(_("Loan Amount cannot exceed Maximum Loan Amount of {0}").format(maximum_loan_limit))
def get_repayment_details(self):
@@ -31,4 +32,17 @@
(self.loan_amount*monthly_interest_rate)))/(math.log(1+monthly_interest_rate)))
self.total_payable_amount = self.repayment_amount * self.repayment_periods
- self.total_payable_interest = self.total_payable_amount - self.loan_amount
\ No newline at end of file
+ self.total_payable_interest = self.total_payable_amount - self.loan_amount
+
+@frappe.whitelist()
+def make_employee_loan(source_name, target_doc = None):
+ doclist = get_mapped_doc("Employee Loan Application", source_name, {
+ "Employee Loan Application": {
+ "doctype": "Employee Loan",
+ "validation": {
+ "docstatus": ["=", 1]
+ }
+ }
+ }, target_doc)
+
+ return doclist
\ No newline at end of file
diff --git a/erpnext/hr/doctype/loan_type/loan_type.json b/erpnext/hr/doctype/loan_type/loan_type.json
index f9441ea..3809fc1 100644
--- a/erpnext/hr/doctype/loan_type/loan_type.json
+++ b/erpnext/hr/doctype/loan_type/loan_type.json
@@ -23,6 +23,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Loan Name",
@@ -51,6 +52,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Maximum Loan Amount",
@@ -79,6 +81,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Rate of Interest (%) Yearly",
@@ -107,6 +110,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -135,6 +139,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Disabled",
@@ -164,6 +169,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Description",
@@ -192,7 +198,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2016-12-29 15:54:17.716285",
+ "modified": "2017-02-27 04:53:51.949600",
"modified_by": "Administrator",
"module": "HR",
"name": "Loan Type",
@@ -209,7 +215,6 @@
"export": 1,
"if_owner": 0,
"import": 0,
- "is_custom": 0,
"permlevel": 0,
"print": 1,
"read": 1,
@@ -224,7 +229,9 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
+ "show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
+ "track_changes": 0,
"track_seen": 0
}
\ No newline at end of file