public void DeleteRow(KlonsADataSet.SALARY_SHEETS_RRow dr_lapas_r) { var table_algas_ps = MyData.DataSetKlons.SALARY_PLUSMINUS; CheckTotalListForPeriod(); int idp = dr_lapas_r.IDP; int idam = dr_lapas_r.IDAM; var drs_ps = table_algas_ps.WhereX( d => d.IDSX == dr_lapas_r.IDSX && !d.IsIDANull() && d.IDA == idam ).ToArray(); foreach (var dr in drs_ps) { dr.Delete(); } dr_lapas_r.Delete(); var salary_sheet_row = new SalarySheetRowSetInfo(); var err = salary_sheet_row.SetUpFromRowB(this, idp); if (err.Count > 0) { return; } if (salary_sheet_row.DrLinkedRows.Length == 0 && salary_sheet_row.DrTotalRow == null) { return; } salary_sheet_row.FillRow(); }
public ErrorList FillSheet() { if (DR_algas_lapa == null) { throw new Exception("Bad init."); } var error_list = new ErrorList(); var drs = DR_algas_lapa.GetSALARY_SHEETS_RRowsByFK_SALARY_SHEETS_R_IDS(); foreach (var dr in drs) { var salary_sheet_row = new SalarySheetRowSetInfo(); var err = salary_sheet_row.SetUpFromRowB(this, dr.IDP); error_list.AddRange(err); if (err.Count > 0) { continue; } err = salary_sheet_row.FillRow(); error_list.AddRange(err); } return(error_list); }
public ErrorList CalcAvPay(SalarySheetRowSetInfo srs, SalaryInfo si) { var err_list = CalcList(srs.SalarySheet, srs.IDP, srs.TotalPersonPay); si._AVPAYCALC_HOUR = KlonsData.RoundA(RateHour, 4); si._AVPAYCALC_DAY = KlonsData.RoundA(RateDay, 4); return(err_list); }
public ErrorList CheckLinkedRows(int idp, bool force = false) { if (SalarySheetRowSet != null && !force) { return(new ErrorList()); } SalarySheetRowSet = new SalarySheetRowSetInfo(); return(SalarySheetRowSet.SetUpFromRowA(this)); }
// used only for making report public void CalcWorkPay(SalarySheetRowSetInfo sr, SalaryInfo si = null) { var dt1 = sr.SalarySheet.DT1; var dt2 = sr.SalarySheet.DT2; if (si == null) { TotalRow = new SalaryInfo(); } else { TotalRow = si; } TotalRow._CALENDAR_DAYS = sr.SalarySheet.CalendarMonth.DaysInMonth; TotalRow._CALENDAR_DAYS_USE = sr.CountCalendarDays(); var dlrowlist = sr.GetDLRowSetList(); dlrowlist.CountPlanMonth(TotalRow, sr.SalarySheet.MDT1, sr.SalarySheet.MDT2); dlrowlist.CountTotalPlan(TotalRow, sr.SalarySheet.MDT1, sr.SalarySheet.MDT2); dlrowlist.CountTotalFact(TotalRow, sr.SalarySheet.MDT1, sr.SalarySheet.MDT2); LinkedWorkPayCalcs = new WorkPayCalcInfo[sr.LinkedRows.Length]; for (int i = 0; i < sr.LinkedRows.Length; i++) { var lr = sr.LinkedRows[i]; var si2 = new SalaryInfo(); var wpc = new WorkPayCalcInfo(PreparingReport); wpc.CalcWorkPay(lr, si2); TotalRow.AddSalary(si2); if (wpc.AvPayCalcRequired) { AvPayCalcRequired = true; } wpc.PositionTitle = lr.GetPositionTitle(); LinkedWorkPayCalcs[i] = wpc; } TotalRow._SALARY = TotalRow.SumSalary(); TotalRow.SumForAvPay(); if (AvPayCalcRequired) { CalcWorkPayAvPay(sr, TotalRow); } if (PreparingReport) { PrepareListT(); } }
public ErrorList CalcList(KlonsADataSet.SALARY_SHEETS_RRow dr) { var dr_sar = dr.SALARY_SHEETSRowByFK_SALARY_SHEETS_R_IDS; var srs = new SalarySheetRowSetInfo(); var err = srs.SetUpFromRowX(dr); if (err.HasErrors) { return(err); } return(CalcList(srs.SalarySheet, srs.IDP, srs.TotalPersonPay)); }
public SalaryCalcTInfo(SalarySheetRowSetInfo srs, SalaryInfo si, bool filllist) { if (srs?.TotalRow == null || srs.LinkedRows == null || srs.LinkedRows.Length == 0) { throw new Exception("Bad init."); } PreparingReport = filllist; SRS = srs; TotalSI = si; if (PreparingReport) { } }
public bool GetRow(int addmonth, out SalarySheetRowSetInfo row) { row = null; var table_sar = MyData.DataSetKlons.SALARY_SHEETS; var table_sar_r = MyData.DataSetKlons.SALARY_SHEETS_R; int yr = SalarySheet.YR; int mt = SalarySheet.MT; Utils.AddMonths(ref yr, ref mt, addmonth); int idp = IDP; var drs = table_sar_r.WhereX( d => { var dr_sar = d.SALARY_SHEETSRowByFK_SALARY_SHEETS_R_IDS; return (d.IDP == idp && d.IsIDAMNull() && dr_sar.YR == yr && dr_sar.MT == mt); }).ToArray(); if (drs.Length == 0) { return(true); } var dr = drs[0]; var shr = new SalarySheetRowSetInfo(); var err = shr.SetUpFromRowX(dr); if (err != null && err.Count > 0) { return(false); } row = shr; return(true); }
private void CalcWorkPayAvPay(SalarySheetRowSetInfo sr, SalaryInfo si) { TotalRow = si; var sis = LinkedWorkPayCalcs.Select(x => x.TotalRow).ToArray(); SummAvPayTime2(TotalRow, sis); LinkedWorkPayCalcs[0].DoAvPay(sr.TotalRow, TotalRow, null); for (int i = 0; i < sr.LinkedRows.Length; i++) { var lr = sr.LinkedRows[i]; var wpc = LinkedWorkPayCalcs[i]; wpc.CalcPayWithAvPay(lr, TotalRow); //TotalRow.AddSalaryAvPayPart(wpc.TotalRow); } TotalRow._SALARY = TotalRow.SumSalary(); TotalRow.AddAvPay(); MakeAvPayExactSum(); }
public ErrorList CalcSickDaysA(SalarySheetRowSetInfo srs) { var dt1 = srs.SalarySheet.DT1; var dt2 = srs.SalarySheet.DT2; var mdt1 = srs.SalarySheet.MDT1; var mdt2 = srs.SalarySheet.MDT2; var mdt3 = srs.SalarySheet.MDT1.AddMonths(-1); var ps = srs.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 = srs.GetDLRowSetList(-1); if (prevdlrowset != null) { var dtp2 = dtp1.LastDayOfMonth(); prevdlrowset.CountSickDays(sdi, dtp1, dtp2, 0); d1 = (dtp2 - dtp1).Days + 1; if (d1 <= 10) { var dlrowset = srs.GetDLRowSetList(); dlrowset.CountSickDays(sdi, mdt1, pi.DateLast, d1); } } } else { var dlrowset = srs.GetDLRowSetList(); dlrowset.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(srs.TotalRow); if (err.HasErrors) { return(err); } decimal _AvPayRate = AvPayRateDay; if (IsAggregatedTimeRate(srs.LinkedRows[0])) { _AvPayRate = AvPayRateCalendarDay; } TotalRow.AvPayRate = _AvPayRate; TotalRow.SickDayPay75 = KlonsData.RoundA(_AvPayRate * TotalRow.DaysCount75 * 0.75M, 2); TotalRow.SickDayPay80 = KlonsData.RoundA(_AvPayRate * TotalRow.DaysCount80 * 0.8M, 2); TotalRow.SickDayPay = TotalRow.SickDayPay75 + TotalRow.SickDayPay80; return(new ErrorList()); }