mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-31 10:49:09 +00:00
feat: validating and ordeing the rule slabr
This commit is contained in:
@@ -6,3 +6,36 @@ frappe.ui.form.on('Gratuity Rule', {
|
|||||||
|
|
||||||
// }
|
// }
|
||||||
});
|
});
|
||||||
|
|
||||||
|
frappe.ui.form.on('Gratuity Rule Slab', {
|
||||||
|
|
||||||
|
/*
|
||||||
|
Slabs should be in order like
|
||||||
|
|
||||||
|
from | to | fraction
|
||||||
|
0 | 4 | 0.5
|
||||||
|
4 | 6 | 0.7
|
||||||
|
|
||||||
|
So, on row addition setting current_row.from = previous row.to.
|
||||||
|
On to_year insert we have to check that it is not less than from_year
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
gratuity_rule_slabs_add(frm, cdt, cdn) {
|
||||||
|
let row = locals[cdt][cdn];
|
||||||
|
let array_idx = row.idx - 1
|
||||||
|
if(array_idx > 0){
|
||||||
|
row.from_year = cur_frm.doc.gratuity_rule_slabs[array_idx-1].to_year;
|
||||||
|
frm.refresh();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
to_year(frm, cdt, cdn) {
|
||||||
|
let row = locals[cdt][cdn];
|
||||||
|
if (row.to_year <= row.from_year){
|
||||||
|
frappe.throw(__("To(Year) year can not be less than From(year) "));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,18 @@
|
|||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
# import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
from frappe import _
|
||||||
|
|
||||||
class GratuityRule(Document):
|
class GratuityRule(Document):
|
||||||
pass
|
|
||||||
|
def validate(self):
|
||||||
|
for current_slab in self.gratuity_rule_slabs:
|
||||||
|
if current_slab.from_year > current_slab.to_year:
|
||||||
|
frappe(_("Row {0}: From (Year) can not be greater than To (Year)").format(slab.idx))
|
||||||
|
|
||||||
|
if current_slab.to_year == 0 and current_slab.from_year == 0 and len(self.gratuity_rule_slabs) > 1:
|
||||||
|
frappe.throw(_("You can not define multiple slabs if you have a slab with no lower and upper limits."))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,34 +5,39 @@
|
|||||||
"editable_grid": 1,
|
"editable_grid": 1,
|
||||||
"engine": "InnoDB",
|
"engine": "InnoDB",
|
||||||
"field_order": [
|
"field_order": [
|
||||||
"from",
|
"from_year",
|
||||||
"to",
|
"to_year",
|
||||||
"fraction_of_applicable_earnings"
|
"fraction_of_applicable_earnings"
|
||||||
],
|
],
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
|
||||||
"fieldname": "from",
|
|
||||||
"fieldtype": "Int",
|
|
||||||
"in_list_view": 1,
|
|
||||||
"label": "From(Year)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldname": "to",
|
|
||||||
"fieldtype": "Int",
|
|
||||||
"in_list_view": 1,
|
|
||||||
"label": "To(Year)"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"fieldname": "fraction_of_applicable_earnings",
|
"fieldname": "fraction_of_applicable_earnings",
|
||||||
"fieldtype": "Float",
|
"fieldtype": "Float",
|
||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"label": "Fraction of Applicable Earnings ",
|
"label": "Fraction of Applicable Earnings ",
|
||||||
"reqd": 1
|
"reqd": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "from_year",
|
||||||
|
"fieldtype": "Int",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"label": "From(Year)",
|
||||||
|
"read_only": 1,
|
||||||
|
"reqd": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "to_year",
|
||||||
|
"fieldtype": "Int",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"label": "To(Year)",
|
||||||
|
"reqd": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2020-08-05 20:03:25.955448",
|
"modified": "2020-08-14 15:23:12.041375",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Payroll",
|
"module": "Payroll",
|
||||||
"name": "Gratuity Rule Slab",
|
"name": "Gratuity Rule Slab",
|
||||||
|
|||||||
Reference in New Issue
Block a user