From 0761301c2eee23cca45ccdc00ad477ea9948d299 Mon Sep 17 00:00:00 2001 From: Anurag Mishra Date: Mon, 17 Aug 2020 14:50:35 +0530 Subject: [PATCH] feat: Added all 3 standard slab for UAE --- .../regional/united_arab_emirates/setup.py | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/erpnext/regional/united_arab_emirates/setup.py b/erpnext/regional/united_arab_emirates/setup.py index 013ae5cf73..690c6feedd 100644 --- a/erpnext/regional/united_arab_emirates/setup.py +++ b/erpnext/regional/united_arab_emirates/setup.py @@ -13,6 +13,8 @@ def setup(company=None, patch=True): add_print_formats() add_custom_roles_for_reports() add_permissions() + create_standard_documents() + if company: create_sales_tax(company) @@ -153,3 +155,104 @@ def add_permissions(): add_permission(doctype, role, 0) update_permission_property(doctype, role, 0, 'write', 1) update_permission_property(doctype, role, 0, 'create', 1) +def create_standard_documents(): + + # Standard Gratuity Rules for UAE + + # Rule Under Limited Contract + rule_1 = frappe.new_doc("Gratuity Rule") + rule_1.name = "Rule Under Limited Contract" + rule_1.calculate_gratuity_amount_based_on = "Sum of all previous slabs" + rule_1.work_experience_calculation_method = "Take Exact Completed Years" + rule_1.minimum_year_for_gratuity = 1 + + rule_1.append("gratuity_rule_slabs", { + "from_year": 0, + "to_year":1, + "fraction_of_applicable_earnings": 0 + }) + + rule_1.append("gratuity_rule_slabs", { + "from_year": 1, + "to_year":5, + "fraction_of_applicable_earnings": 21/30 + }) + + rule_1.append("gratuity_rule_slabs", { + "from_year": 5, + "to_year":0, + "fraction_of_applicable_earnings": 1 + }) + + # Rule Under Unlimited Contract on termination + rule_2 = frappe.new_doc("Gratuity Rule") + rule_2.name = "Rule Under Unlimited Contract on termination" + rule_2.calculate_gratuity_amount_based_on = "Current Slab" + rule_2.work_experience_calculation_method = "Take Exact Completed Years" + rule_2.minimum_year_for_gratuity = 1 + + rule_2.append("gratuity_rule_slabs", { + "from_year": 0, + "to_year":1, + "fraction_of_applicable_earnings": 0 + }) + + rule_2.append("gratuity_rule_slabs", { + "from_year": 1, + "to_year":5, + "fraction_of_applicable_earnings": 21/30 + }) + + rule_2.append("gratuity_rule_slabs", { + "from_year": 5, + "to_year":0, + "fraction_of_applicable_earnings": 1 + }) + + # Rule Under Unlimited Contract + rule_3 = frappe.new_doc("Gratuity Rule") + rule_3.name = "Rule Under Unlimited Contract on resignation" + rule_3.calculate_gratuity_amount_based_on = "Current Slab" + rule_3.work_experience_calculation_method = "Take Exact Completed Years" + rule_3.minimum_year_for_gratuity = 1 + + rule_3.append("gratuity_rule_slabs", { + "from_year": 0, + "to_year":1, + "fraction_of_applicable_earnings": 0 + }) + + fraction_of_applicable_earnings = 1/3 * 21/30 + rule_3.append("gratuity_rule_slabs", { + "from_year": 1, + "to_year":3, + "fraction_of_applicable_earnings": fraction_of_applicable_earnings + }) + + fraction_of_applicable_earnings = 2/3 * 21/30 + rule_3.append("gratuity_rule_slabs", { + "from_year": 3, + "to_year":5, + "fraction_of_applicable_earnings": fraction_of_applicable_earnings + }) + + fraction_of_applicable_earnings = 21/30 + rule_3.append("gratuity_rule_slabs", { + "from_year": 5, + "to_year":0, + "fraction_of_applicable_earnings": fraction_of_applicable_earnings + }) + + + #for applicable salary component user need to set this by its own + rule_1.flags.ignore_mandatory = True + rule_2.flags.ignore_mandatory = True + rule_3.flags.ignore_mandatory = True + + rule_1.save() + rule_2.save() + rule_3.save() + + return rule_1, rule_2, rule_3 + +