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);
            }
        }
        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);
            }
        }
Esempio n. 3
0
    public void UpdateParam(string formula)
    {
        List <string>   formulaList = FormulaHelper.FormatFormula(formula);
        ParameterEntity paramEntity = ParameterEntity.FindByParameterName(formulaList[0]);

        if (formulaList.Count == 3)
        {
            if (paramEntity.Parameter.Type == Parameter.ParamType.BOOL)
            {
                paramEntity.UserParameter.UpdateValue(FormulaHelper.GetBoolValue(formulaList[2]).ToString());
            }
            if (paramEntity.Parameter.Type == Parameter.ParamType.INT)
            {
                paramEntity.UserParameter.UpdateValue(FormulaHelper.GetIntValue(formulaList[2]).ToString());
            }
        }
        else if (formulaList.Count == 5)
        {
            if (paramEntity.Parameter.Type == Parameter.ParamType.INT)
            {
                int[] values = new int[2];
                values[0] = FormulaHelper.GetIntValue(formulaList[2]);
                values[1] = FormulaHelper.GetIntValue(formulaList[4]);
                paramEntity.UserParameter.UpdateValue(FormulaHelper.Calculate(values, formulaList[3]).ToString());
            }
            else
            {
                ShowWarning(formula);
            }
        }
        else
        {
            ShowWarning(formula);
        }
        GameDataManager.Instance.SaveData();
    }