Exemplo n.º 1
0
        protected virtual bool HasChanges(MasterEmployeeDeductionBO previousDeduction, MasterEmployeeDeductionBO newComputed)
        {
            if (previousDeduction == null)
            {
                return(true);
            }

            if (previousDeduction.EmployeeAmount != newComputed.EmployeeAmount ||
                previousDeduction.EmployerAmount != newComputed.EmployerAmount)
            {
                return(true);
            }

            return(false);
        }
        public override void Run(ContributionDeductionCmd process)
        {
            short planYear = process.m_NewMasterData.PlanYear;
            short payRunID = process.m_NewMasterData.PayRunID;

            var ded = p_Processor.Run(new GetDeductionQr(DeductionCodeConstants.PhilHealth));

            var existingPhilHealthDed = process.m_NewMasterData.MasterEmployeeDeductions
                                        .SingleOrDefault(a => a.DeductionID == ded.DeductionID);

            var philHealthTable = p_Processor.Run(new GetPhilHealthTableQr(planYear, payRunID));
            var range           = philHealthTable.Ranges
                                  .SingleOrDefault(a => a.Min < process.m_NewMasterData.MonthlyRate && process.m_NewMasterData.MonthlyRate < a.Max);



            var variables = new Dictionary <string, decimal>
            {
                ["Fixed"]           = range.Fixed.GetValueOrDefault(),
                ["MonthlyBasicPay"] = process.m_NewMasterData.MonthlyRate.GetValueOrDefault(),
                ["Rate"]            = range.Rate.GetValueOrDefault()
            };

            var newComputedDeduction = new MasterEmployeeDeductionBO
            {
                DeductionID    = ded.DeductionID,
                RecordStatus   = RecordStatus.Active,
                EmployeeAmount = FormulaHelper.Calculate(range.EmployeeFormula, variables),
                EmployerAmount = FormulaHelper.Calculate(range.EmployerFormula, variables),
                ShortDesc      = ded.ShortDesc,
                LongDesc       = ded.LongDesc,
                AltDesc        = ded.AltDesc
            };

            if (HasChanges(existingPhilHealthDed, newComputedDeduction))
            {
                process.m_NewMasterData.AddNewEmployeeDeduction(newComputedDeduction);
            }
        }
Exemplo n.º 3
0
        public override void Run(ContributionDeductionCmd request)
        {
            var ded = p_Processor.Run(new GetDeductionQr(DeductionCodeConstants.PagIBIG));

            var existingDeduction = request.m_NewMasterData.MasterEmployeeDeductions
                                    .SingleOrDefault(a => a.DeductionID == ded.DeductionID);

            var newComputedDeduction = new MasterEmployeeDeductionBO
            {
                DeductionID    = ded.DeductionID,
                RecordStatus   = RecordStatus.Active,
                EmployeeAmount = 100,
                ShortDesc      = ded.ShortDesc,
                LongDesc       = ded.LongDesc,
                AltDesc        = ded.AltDesc
            };

            if (HasChanges(existingDeduction, newComputedDeduction))
            {
                request.m_NewMasterData.AddNewEmployeeDeduction(newComputedDeduction);
            }
        }
        public override void Run(ContributionDeductionCmd request)
        {
            short planYear    = request.m_NewMasterData.PlanYear;
            short payPeriodID = request.m_NewMasterData.PayRunID;

            var ded = p_Processor.Run(new GetDeductionQr(DeductionCodeConstants.SSS));

            var existingSSSDed = request.m_NewMasterData.MasterEmployeeDeductions
                                 .SingleOrDefault(a => a.DeductionID == ded.DeductionID);


            var cmd      = new GetSSSTableQr(request.m_NewMasterData.PlanYear, request.m_NewMasterData.PayRunID);
            var sssTable = p_Processor.Run(cmd);
            var range    = sssTable.Ranges
                           .SingleOrDefault(a => a.Min < request.m_NewMasterData.MonthlyRate && request.m_NewMasterData.MonthlyRate < a.Max);

            var variables = new Dictionary <string, decimal>();

            variables["Fixed"]           = range.Fixed.GetValueOrDefault();
            variables["MonthlyBasicPay"] = request.m_NewMasterData.MonthlyRate.GetValueOrDefault();
            variables["Rate"]            = range.Rate.GetValueOrDefault();

            var newComputedDeduction = new MasterEmployeeDeductionBO
            {
                DeductionID    = ded.DeductionID,
                RecordStatus   = RecordStatus.Active,
                EmployeeAmount = FormulaHelper.Calculate(range.EmployeeFormula, variables),
                EmployerAmount = FormulaHelper.Calculate(range.EmployerFormula, variables),
                ShortDesc      = ded.ShortDesc,
                LongDesc       = ded.LongDesc,
                AltDesc        = ded.AltDesc
            };

            if (HasChanges(existingSSSDed, newComputedDeduction))
            {
                request.m_NewMasterData.AddNewEmployeeDeduction(newComputedDeduction);
            }
        }