UNPKG

@dlivr.io/salary-calculator-egypt

Version:

Javascript SDK for calculating Net/Gross salary in Egypt.

37 lines (27 loc) 1.18 kB
import { calculateSalaryTaxParams } from "./types"; import { laws } from "@/data-source"; import { Bracket } from "@/data-source/types"; import { calculateTax, isSupported } from "@/helpers/utils"; import { LawYear } from "@/types/salary"; const calculateYearlySalaryTax = (lawYear: LawYear, yearlySalary: number) => { const taxBracket = laws[lawYear].brackets.find( (item: Bracket): Bracket | boolean => { return isSupported(item, yearlySalary) ? item : false; } ) as Bracket; return calculateTax(taxBracket, yearlySalary); }; const calculateSalaryTax = ({ grossSalary, socialInsuranceWorkerShare, lawYear, }: calculateSalaryTaxParams) => { const monthlyTaxExemption = laws[lawYear].exemptionThreshold / 12; const salaryAfterSocialInsurance = grossSalary - socialInsuranceWorkerShare; const salaryAfterSocialInsuranceAndExemption = salaryAfterSocialInsurance - monthlyTaxExemption; const yearlySalary = salaryAfterSocialInsuranceAndExemption * 12; const yearlySalaryTax = calculateYearlySalaryTax(lawYear, yearlySalary); return yearlySalaryTax / 12; }; export { calculateSalaryTax };