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); } }
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(); }