feat: validating and ordeing the rule slabr

This commit is contained in:
Anurag Mishra 2020-08-14 16:44:22 +05:30
parent dedc0015c0
commit 30299c6f49
3 changed files with 65 additions and 17 deletions

View File

@ -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) "));
}
}
});

View File

@ -3,8 +3,18 @@
# For license information, please see license.txt
from __future__ import unicode_literals
# import frappe
import frappe
from frappe.model.document import Document
from frappe import _
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."))

View File

@ -5,34 +5,39 @@
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"from",
"to",
"from_year",
"to_year",
"fraction_of_applicable_earnings"
],
"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",
"fieldtype": "Float",
"in_list_view": 1,
"label": "Fraction of Applicable Earnings ",
"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,
"links": [],
"modified": "2020-08-05 20:03:25.955448",
"modified": "2020-08-14 15:23:12.041375",
"modified_by": "Administrator",
"module": "Payroll",
"name": "Gratuity Rule Slab",