public List <Models.PaycheckEntry> execute(Employee employee)
        {
            List <Models.PaycheckEntry> entries = new List <Models.PaycheckEntry>();

            Models.PaycheckEntry INSSEntry = _calculateINSSDiscountService.execute(employee.grossWage);
            entries.Add(INSSEntry);

            Models.PaycheckEntry IRPFEntry = _calculateIRPFDiscountService.execute(employee.grossWage);
            entries.Add(IRPFEntry);

            Models.PaycheckEntry FGTSEntry = _calculateFGTSDiscountService.execute(employee.grossWage);
            entries.Add(FGTSEntry);

            if (employee.hasHealthPlan)
            {
                Models.PaycheckEntry healthPlanEntry = _calculateHealthPlanDiscountService.execute();
                entries.Add(healthPlanEntry);
            }

            if (employee.hasDentalPlan)
            {
                Models.PaycheckEntry dentalPlanEntry = _calculateDentalPlanDiscountService.execute();
                entries.Add(dentalPlanEntry);
            }

            if (employee.hasTransportationVouchersDiscount)
            {
                Models.PaycheckEntry dentalPlanEntry = _calculateTransportationVoucherDiscountService.execute(employee.grossWage);
                entries.Add(dentalPlanEntry);
            }

            return(entries);
        }
示例#2
0
        public Models.PaycheckEntry execute()
        {
            Models.PaycheckEntry entry = new Models.PaycheckEntry();

            entry.Description = "Dental plan";
            entry.Amount      = DiscountAmountDentalPlan;
            entry.EntryType   = Models.PaycheckEntryTypeEnum.Discount;

            return(entry);
        }
示例#3
0
        public Models.PaycheckEntry execute(decimal grossSalary)
        {
            Models.PaycheckEntry entry = new Models.PaycheckEntry();

            decimal amount = grossSalary * DiscountPercent / 100;

            entry.Description = "FGTS";
            entry.Amount      = Decimal.Round(amount, 2);
            entry.EntryType   = Models.PaycheckEntryTypeEnum.Discount;

            return(entry);
        }
        public List <Models.PaycheckEntry> execute(Employee employee)
        {
            List <Models.PaycheckEntry> entries = new List <Models.PaycheckEntry>();

            Models.PaycheckEntry entry = new Models.PaycheckEntry();
            entry.Description = "Salary";
            entry.Amount      = employee.grossWage;
            entry.EntryType   = Models.PaycheckEntryTypeEnum.Remuneration;

            entries.Add(entry);

            return(entries);
        }
        public Models.PaycheckEntry execute(decimal grossSalary)
        {
            Models.PaycheckEntry entry = new Models.PaycheckEntry();

            entry.Description = "Transportation voucher";
            entry.Amount      = 0;
            entry.EntryType   = Models.PaycheckEntryTypeEnum.Discount;

            if (grossSalary > MinimunAmountForDiscount)
            {
                entry.Amount = grossSalary * DiscountPercent / 100;
            }

            return(entry);
        }
示例#6
0
        public Models.PaycheckEntry execute(decimal grossSalary)
        {
            Models.PaycheckEntry entry = new Models.PaycheckEntry();

            entry.Description = "IRPF";
            entry.Amount      = 0m;
            entry.EntryType   = Models.PaycheckEntryTypeEnum.Discount;

            Models.IRPFDiscount rangeValues = GetIRPFRangeValuesBySalaryRange(grossSalary);

            if (rangeValues != null)
            {
                decimal IRPFAmount = grossSalary * rangeValues.Aliquot / 100;
                entry.Amount = IRPFAmount <= rangeValues.LimitAmount ? Decimal.Round(IRPFAmount, 2) : rangeValues.LimitAmount;
            }

            return(entry);
        }
        public Models.PaycheckEntry execute(decimal grossSalary)
        {
            Models.PaycheckEntry entry = new Models.PaycheckEntry();

            entry.Description = "INSS";
            entry.Amount      = 0m;
            entry.EntryType   = Models.PaycheckEntryTypeEnum.Discount;

            decimal INSSAliquot = GetINSSAliquotBySalaryRange(grossSalary);

            if (INSSAliquot > 0)
            {
                decimal amount = grossSalary * INSSAliquot / 100;
                entry.Amount = Decimal.Round(amount, 2);
            }

            return(entry);
        }