public void CheckBeforeReport() { if (AvPayCalc == null) { AvPayCalc = new AvPayCalcInfo(true); } if (SickDayCalc == null) { SickDayCalc = new SickDayCalcInfo(true); } if (VacationCalc == null) { VacationCalc = new VacationCalcInfo(true, SI._CALC_VER); } if (WorkPayCalc == null) { WorkPayCalc = new WorkPayCalcInfo(true); } if (CalcR == null) { CalcR = new CalcRInfo(true, SI._CALC_VER); } if (BonusCalc == null) { BonusCalc = new BonusCalcInfo(CalcR, (KlonsADataSet.SALARY_PLUSMINUSRow[])null, true); } }
public ErrorList CalcSickDays() { TotalSI._SICKDAYS = 0; TotalSI._SICKDAYS_PAY = 0.0M; var sc = new SickDayCalcInfo(PreparingReport); sc.SetAvPayFrom(this); var err = sc.CalcSickDaysT(this); if (err.HasErrors) { return(err); } sc.SetAvPayTo(this); if (sc.TotalRow.DaysCount == 0) { return(err); } TotalSI._SICKDAYS = sc.TotalRow.DaysCount; TotalSI._SICKDAYS_PAY = sc.TotalRow.SickDayPay; if (PreparingReport) { SickDayCalc = sc; } return(new ErrorList()); }
public void SumTotalPay(SickDayCalcInfo[] sdcs, SickDayCalcInfo totalsdc) { TotalRow = new SickDayCalcRow(); for (int i = 0; i < sdcs.Length; i++) { var sr = sdcs[i].TotalRow; TotalRow.AddA(sr); } TotalRow.DaysCount = totalsdc.TotalRow.DaysCount; TotalRow.DaysCount0 = totalsdc.TotalRow.DaysCount0; TotalRow.DaysCount75 = totalsdc.TotalRow.DaysCount75; TotalRow.DaysCount80 = totalsdc.TotalRow.DaysCount80; }
public void SetAvPayFrom(SickDayCalcInfo sc) { if (sc.AvPayCalc != null) { AvPayCalc = sc.AvPayCalc; } if (IsAvPayCalcDone) { return; } IsAvPayCalcDone = sc.IsAvPayCalcDone; AvPayRateHour = sc.AvPayRateHour; AvPayRateDay = sc.AvPayRateDay; }
public ErrorList CalcSickDays() { var sc = new SickDayCalcInfo(PreparingReport); var err = sc.CalcSickDays(this); if (err.HasErrors) { return(err); } if (PreparingReport) { SickDayCalc = sc; } return(err); }
public ErrorList CalcSickDaysT(SalaryCalcTInfo scti) { var sr = scti.SRS.TotalRow; sr.CheckLinkedRows(sr.Row.IDP); var err = new ErrorList(); scti.TotalSI._SICKDAYS = 0; scti.TotalSI._SICKDAYS_PAY = 0.0M; if (sr.IsSingleRow()) { err = CalcSickDaysB(sr, null); if (err.HasErrors) { return(err); } scti.TotalSI._SICKDAYS = TotalRow.DaysCount; scti.TotalSI._SICKDAYS_PAY = TotalRow.SickDayPay; if (PreparingReport) { scti.LinkedSCI[0].SickDayCalc = this; } return(err); } TotalSDCI = new SickDayCalcInfo(PreparingReport); TotalSDCI.SetAvPayFrom(this); err = TotalSDCI.CalcSickDaysA(sr.SalarySheetRowSet); if (err.HasErrors) { return(err); } SetAvPayFrom(TotalSDCI); if (TotalSDCI.TotalRow.DaysCount == 0) { new ErrorList(); } SickDayCalcInfo[] sdcs = null; string[] positions = null; var srs = sr.SalarySheetRowSet; sdcs = new SickDayCalcInfo[srs.LinkedRows.Length]; positions = new string[srs.LinkedRows.Length]; for (int i = 0; i < srs.LinkedRows.Length; i++) { var lr = srs.LinkedRows[i]; var sci = scti.LinkedSCI[i]; var sdc = new SickDayCalcInfo(PreparingReport); positions[i] = lr.GetPositionTitle(); sdcs[i] = sdc; sdc.SetAvPayFrom(this); sci.SI._SICKDAYS = 0; sci.SI._SICKDAYS_PAY = 0.0M; err = sdc.CalcSickDaysB(lr, TotalSDCI); if (err.HasErrors) { return(err); } sci.SI._SICKDAYS = sdc.TotalRow.DaysCount; sci.SI._SICKDAYS_PAY = sdc.TotalRow.SickDayPay; if (PreparingReport) { sci.SickDayCalc = sdc; } } SumTotalPay(sdcs, TotalSDCI); scti.TotalSI._SICKDAYS = TotalRow.DaysCount; scti.TotalSI._SICKDAYS_PAY = TotalRow.SickDayPay; if (PreparingReport) { PrepareListT(sdcs, positions); } return(new ErrorList()); }
public ErrorList CalcSickDaysB(SalarySheetRowInfo sr, SickDayCalcInfo totalsdci) { var dt1 = sr.SalarySheet.DT1; var dt2 = sr.SalarySheet.DT2; var mdt1 = sr.SalarySheet.MDT1; var mdt2 = sr.SalarySheet.MDT2; var mdt3 = sr.SalarySheet.MDT1.AddMonths(-1); var ps = sr.Events.SickDays.LinkedPeriods.Where( d => d.EEventId == EEventId.Slimības_lapa_A && d.DateLast >= dt1 && d.DateLast <= dt2 ).ToArray(); if (ps.Length == 0) { return(new ErrorList()); } int d1; SickDayCalcRow sdi = TotalRow; foreach (var pi in ps) { var dtp1 = pi.DateFirst; if (dtp1 < mdt3) { continue; } d1 = 0; if (PreparingReport) { sdi = new SickDayCalcRow(); sdi.DateStart = pi.DateFirst; sdi.DateEnd = pi.DateLast; Rows.Add(sdi); } if (dtp1 < mdt1) { var prevdlrowset = sr.GetDLRowSet(-1, sr.Row.IDAM); if (prevdlrowset != null) { var dtp2 = dtp1.LastDayOfMonth(); prevdlrowset.CountSickDays(sdi, dtp1, dtp2, 0); d1 = (dtp2 - dtp1).Days + 1; if (d1 <= 10) { sr.DLRows.CountSickDays(sdi, mdt1, pi.DateLast, d1); } } } else { sr.DLRows.CountSickDays(sdi, pi.DateFirst, pi.DateLast, d1); } if (PreparingReport) { TotalRow.AddB(sdi); } } if (PreparingReport) { Rows.Add(TotalRow); PrepareListA(); } if (TotalRow.DaysCount == 0) { return(new ErrorList()); } var err = GatAvPay(sr); if (err.HasErrors) { return(err); } decimal _AvPayRate = AvPayRateDay; if (IsAggregatedTimeRate(sr)) { _AvPayRate = AvPayRateCalendarDay; } TotalRow.AvPayRate = _AvPayRate; if (totalsdci == null) { TotalRow.SickDayPay75 = KlonsData.RoundA(_AvPayRate * TotalRow.DaysCount75 * 0.75M, 2); TotalRow.SickDayPay80 = KlonsData.RoundA(_AvPayRate * TotalRow.DaysCount80 * 0.8M, 2); } else { TotalRow.SickDayPay75 = (decimal)TotalRow.HoursCount75 / (decimal)totalsdci.TotalRow.HoursCount75; TotalRow.SickDayPay80 = (decimal)TotalRow.HoursCount80 / (decimal)totalsdci.TotalRow.HoursCount80; TotalRow.SickDayPay75 = KlonsData.RoundA(TotalRow.SickDayPay75 * totalsdci.TotalRow.SickDayPay75, 2); TotalRow.SickDayPay80 = KlonsData.RoundA(TotalRow.SickDayPay80 * totalsdci.TotalRow.SickDayPay80, 2); } TotalRow.SickDayPay = TotalRow.SickDayPay75 + TotalRow.SickDayPay80; return(new ErrorList()); }
public ErrorList CalcSickDays(SalarySheetRowInfo sr) { var err = sr.CheckLinkedRows(sr.Row.IDP); if (err.HasErrors) { return(err); } if (sr.IsSingleRow()) { err = CalcSickDaysB(sr, null); return(err); } TotalSDCI = new SickDayCalcInfo(PreparingReport); err = TotalSDCI.CalcSickDaysA(sr.SalarySheetRowSet); if (err.HasErrors) { return(err); } if (TotalSDCI.TotalRow.DaysCount == 0) { new ErrorList(); } SetAvPayFrom(TotalSDCI); SickDayCalcInfo[] sdcs = null; string[] positions = null; if (sr.Row.XType == ESalarySheetRowType.Total) { var srs = sr.SalarySheetRowSet; sdcs = new SickDayCalcInfo[srs.LinkedRows.Length]; positions = new string[srs.LinkedRows.Length]; for (int i = 0; i < srs.LinkedRows.Length; i++) { var lr = srs.LinkedRows[i]; var sdc = new SickDayCalcInfo(PreparingReport); positions[i] = lr.GetPositionTitle(); sdcs[i] = sdc; sdc.SetAvPayFrom(this); err = sdc.CalcSickDaysB(lr, TotalSDCI); if (err.HasErrors) { return(err); } } SumTotalPay(sdcs, TotalSDCI); if (PreparingReport) { PrepareListT(sdcs, positions); } } else { if (PreparingReport) { PrepareListA(sr.GetPositionTitle()); } err = CalcSickDaysB(sr, TotalSDCI); if (err.HasErrors) { return(err); } } return(new ErrorList()); }