def validate_non_pro_rata_benefit_claim(self, max_benefits, payroll_period): claimed_amount = self.claimed_amount pro_rata_amount = self.get_pro_rata_amount_in_application( payroll_period.name) if not pro_rata_amount: pro_rata_amount = 0 # Get pro_rata_amount if there is no application, # get salary structure for the date and calculate pro-rata amount sal_struct_name = get_assigned_salary_structure( self.employee, self.claim_date) if sal_struct_name: sal_struct = frappe.get_doc("Salary Structure", sal_struct_name) pro_rata_amount = get_benefit_pro_rata_ratio_amount( self.employee, self.claim_date, sal_struct) claimed_amount += get_previous_claimed_amount(self.employee, payroll_period, non_pro_rata=True) if max_benefits < pro_rata_amount + claimed_amount: frappe.throw( _("Maximum benefit of employee {0} exceeds {1} by the sum {2} of benefit application pro-rata component\ amount and previous claimed amount").format( self.employee, max_benefits, pro_rata_amount + claimed_amount - max_benefits))
def validate_max_benefit_for_component(self, payroll_period): if self.max_amount_eligible: claimed_amount = self.claimed_amount claimed_amount += get_previous_claimed_amount(self.employee, payroll_period, component = self.earning_component) if claimed_amount > self.max_amount_eligible: frappe.throw(_("Maximum amount eligible for the component {0} exceeds {1}") .format(self.earning_component, self.max_amount_eligible))
def validate_benefit_claim_amount(self, max_benefits, payroll_period): claimed_amount = self.claimed_amount claimed_amount += get_previous_claimed_amount(self.employee, payroll_period) if max_benefits < claimed_amount: frappe.throw( _("Maximum benefit of employee {0} exceeds {1} by the sum {2} of previous claimed\ amount").format(self.employee, max_benefits, claimed_amount - max_benefits))
def validate_max_benefit_for_component(self, payroll_period): if self.max_amount_eligible: claimed_amount = self.claimed_amount claimed_amount += get_previous_claimed_amount(self.employee, payroll_period, component = self.earning_component) if claimed_amount > self.max_amount_eligible: frappe.throw(_("Maximum amount eligible for the component {0} exceeds {1}") .format(self.earning_component, self.max_amount_eligible))
def validate_prev_benefit_claim(self): if self.employee_benefits: for benefit in self.employee_benefits: if benefit.pay_against_benefit_claim == 1: payroll_period = frappe.get_doc("Payroll Period", self.payroll_period) benefit_claimed = get_previous_claimed_amount(self.employee, payroll_period, component = benefit.earning_component) benefit_given = get_sal_slip_total_benefit_given(self.employee, payroll_period, component = benefit.earning_component) benefit_claim_remining = benefit_claimed - benefit_given if benefit_claimed > 0 and benefit_claim_remining > benefit.amount: frappe.throw(_("An amount of {0} already claimed for the component {1},\ set the amount equal or greater than {2}").format(benefit_claimed, benefit.earning_component, benefit_claim_remining))
def validate_prev_benefit_claim(self): if self.employee_benefits: for benefit in self.employee_benefits: if benefit.pay_against_benefit_claim == 1: payroll_period = frappe.get_doc("Payroll Period", self.payroll_period) benefit_claimed = get_previous_claimed_amount(self.employee, payroll_period, component = benefit.earning_component) benefit_given = get_sal_slip_total_benefit_given(self.employee, payroll_period, component = benefit.earning_component) benefit_claim_remining = benefit_claimed - benefit_given if benefit_claimed > 0 and benefit_claim_remining > benefit.amount: frappe.throw(_("An amount of {0} already claimed for the component {1},\ set the amount equal or greater than {2}").format(benefit_claimed, benefit.earning_component, benefit_claim_remining))
def validate_non_pro_rata_benefit_claim(self, max_benefits, payroll_period): claimed_amount = self.claimed_amount pro_rata_amount = self.get_pro_rata_amount_in_application(payroll_period.name) if not pro_rata_amount: pro_rata_amount = 0 # Get pro_rata_amount if there is no application, # get salary structure for the date and calculate pro-rata amount sal_struct_name = get_assigned_salary_structure(self.employee, self.claim_date) if sal_struct_name: sal_struct = frappe.get_doc("Salary Structure", sal_struct_name) pro_rata_amount = get_benefit_pro_rata_ratio_amount(self.employee, self.claim_date, sal_struct) claimed_amount += get_previous_claimed_amount(self.employee, payroll_period, non_pro_rata = True) if max_benefits < pro_rata_amount + claimed_amount: frappe.throw(_("Maximum benefit of employee {0} exceeds {1} by the sum {2} of benefit application pro-rata component\ amount and previous claimed amount").format(self.employee, max_benefits, pro_rata_amount+claimed_amount-max_benefits))
def validate_benefit_claim_amount(self, max_benefits, payroll_period): claimed_amount = self.claimed_amount claimed_amount += get_previous_claimed_amount(self.employee, payroll_period) if max_benefits < claimed_amount: frappe.throw(_("Maximum benefit of employee {0} exceeds {1} by the sum {2} of previous claimed\ amount").format(self.employee, max_benefits, claimed_amount-max_benefits))