public static bool CanPlanHaveFact(EDayPlanId dp, EDayFactId df) { switch (dp) { case EDayPlanId.SD: case EDayPlanId.DDSD: if (IsDayFactIdIN(df, EDayFactId.N, EDayFactId.V, EDayFactId.S)) { return(false); } break; case EDayPlanId.BD: if (IsDayFactIdIN(df, EDayFactId.N, EDayFactId.V, EDayFactId.S, EDayFactId.DS, EDayFactId.KS)) { return(false); } break; case EDayPlanId.SDDD: if (IsDayFactIdIN(df, EDayFactId.N, EDayFactId.B)) { return(false); } break; } return(true); }
public static string GetFactIdStr(EDayFactId daycode) { switch (daycode) { case EDayFactId.None: return(""); case EDayFactId.X: return("-"); case EDayFactId.D: return("D"); case EDayFactId.DP: return("DP"); case EDayFactId.DS: return("DS"); case EDayFactId.K: return("K"); case EDayFactId.KS: return("KS"); case EDayFactId.B: return("B"); case EDayFactId.S: return("S"); case EDayFactId.V: return("V"); case EDayFactId.N: return("N"); case EDayFactId.SA: return("SA"); case EDayFactId.SB: return("SB"); case EDayFactId.SN: return("SN"); case EDayFactId.A: return("A"); case EDayFactId.AM: return("AM"); case EDayFactId.AC: return("AC"); case EDayFactId.AN: return("AN"); case EDayFactId.AD: return("AD"); case EDayFactId.AP: return("AP"); case EDayFactId.AB: return("AB"); case EDayFactId.Error: return("ER"); } return(null); }
public EDayFactId GetFactDayCodeForAllAmati(int day) { EDayFactId ret = EDayFactId.None; for (int i = 1; i < this.Count; i++) { ret = this[i].Fact.DxFact[day - 1]; if (ret != EDayFactId.X && ret != EDayFactId.None) { break; } } return(ret); }
public static bool IsDayFactIdIN(EDayFactId val, params EDayFactId[] list) { if (list == null || list.Length == 0) { return(false); } foreach (var v in list) { if (v == val) { return(true); } } return(false); }
public static bool ParseFactDayStr(string fs, out EDayFactId daycode, out float hours) { daycode = EDayFactId.None; hours = 0.0f; int v, k = -1; for (int i = 0; i < fs.Length; i++) { var c = fs.Substring(i, 1); if (int.TryParse(c, out v)) { k = i; break; } } if (k == -1) { hours = 0.0f; daycode = SomeDataDefs.GetFactStrId(fs.Trim().ToUpper()); if (daycode == EDayFactId.Error) { return(false); } return(true); } if (k > 0) { var daystr = fs.Substring(0, k).Trim().ToUpper(); daycode = SomeDataDefs.GetFactStrId(daystr); if (daycode == EDayFactId.Error) { return(false); } } else { daycode = EDayFactId.None; } var hoursstr = fs.Substring(k).Trim(); return(float.TryParse(hoursstr, out hours)); }
public static bool CanEditHours(EDayFactId vv) { return(IsDayFactIdIN(vv, EDayFactId.D, EDayFactId.DP, EDayFactId.DS, EDayFactId.K, EDayFactId.KS)); }
public static bool CanEditFact(EDayFactId vv) { return(CanChangeDayId(vv)); }
public static bool CanChangeDayId(EDayFactId vv) { return(IsDayFactIdIN(vv, EDayFactId.D, EDayFactId.DP, EDayFactId.DS, EDayFactId.B, EDayFactId.K, EDayFactId.KS, EDayFactId.N, EDayFactId.V, EDayFactId.S)); }
public static bool IsSickDay(EDayFactId vv) { return(IsDayFactIdIN(vv, EDayFactId.SA, EDayFactId.SB, EDayFactId.SN)); }
public static bool IsDayPaidVacation(EDayFactId vv) { return(IsDayFactIdIN(vv, EDayFactId.A)); }
public static bool IsDayVacation(EDayFactId vv) { return(IsDayFactIdIN(vv, EDayFactId.A, EDayFactId.AB, EDayFactId.AC, EDayFactId.AD, EDayFactId.AM, EDayFactId.AN, EDayFactId.AP)); }
public static bool IsDayForWork(EDayFactId vv) { return(IsDayFactIdIN(vv, EDayFactId.D, EDayFactId.DS, EDayFactId.DP, EDayFactId.K, EDayFactId.KS)); }
public ErrorList CountTotalPlan(IWorkTimeData wt, DateTime dt1, DateTime dt2) { var error_list = new ErrorList(); string errstr = string.Format("{0}.{1}", dt1.Year, dt1.Month); int i, j; float vp, vpn; int i1 = dt1.Day; int i2 = dt2.Day; EDayPlanId daycodeplan = EDayPlanId.None; EDayFactId daycodefact = EDayFactId.None; for (i = i1; i <= i2; i++) { bool plandayadded = false; bool planworkdayadded = false; for (j = 0; j < this.Count; j++) { var dlset = this[j]; daycodeplan = dlset.Plan.DxPlan[i - 1]; daycodefact = dlset.Fact.DxFact[i - 1]; if (daycodeplan == EDayPlanId.None) { continue; } if (daycodefact == EDayFactId.None || daycodefact == EDayFactId.X) { continue; } vp = dlset.Plan.Vx[i - 1]; vpn = dlset.PlanNight == null ? 0.0f : dlset.PlanNight.Vx[i - 1]; if (vp + vpn == 0.0f) { continue; } if (!plandayadded) { wt._PLAN_DAYS++; } wt._PLAN_HOURS += vp; wt._PLAN_HOURS_NIGHT += vpn; if (SomeDataDefs.IsPlanWorkday(daycodeplan) && (SomeDataDefs.IsDayForWork(daycodefact) || daycodefact == EDayFactId.B)) { if (!planworkdayadded) { wt._PLAN_WORK_DAYS++; } wt._PLAN_WORK_HOURS += vp; wt._PLAN_WORK_HOURS_NIGHT += vpn; planworkdayadded = true; } if (daycodeplan == EDayPlanId.DDSD) { if (!plandayadded) { wt._PLAN_HOLIDAYS_DAYS++; } wt._PLAN_HOLIDAYS_HOURS += vp; wt._PLAN_HOLIDAYS_HOURS_NIGHT += vpn; } plandayadded = true; } } return(error_list); }
public void CountSickDays(SickDayCalcRow sdi, DateTime dt1, DateTime dt2, int skipdays) { int i1 = dt1.Day; int i2 = dt2.Day; float vp; EDayPlanId daycodeplan = EDayPlanId.None; EDayFactId daycodefact = EDayFactId.None; bool isPlanWorkDay; for (int i = i1; i <= i2; i++) { bool dayadded = false; for (int j = 0; j < this.Count; j++) { var dlset = this[j]; daycodeplan = dlset.Plan.DxPlan[i - 1]; daycodefact = dlset.Fact.DxFact[i - 1]; if (daycodeplan == EDayPlanId.None) { continue; } if (daycodefact == EDayFactId.X || daycodefact == EDayFactId.None) { continue; } isPlanWorkDay = daycodeplan == EDayPlanId.DD || daycodeplan == EDayPlanId.DDSD || daycodeplan == EDayPlanId.SDDD; vp = dlset.Plan.Vx[i - 1]; if (!isPlanWorkDay) { continue; } if (vp == 0.0f) { continue; } if (!dayadded) { skipdays++; sdi.DaysCount++; } sdi.HoursCount += vp; if (skipdays == 1) { if (!dayadded) { sdi.DaysCount0++; } } else if (skipdays == 2 || skipdays == 3) { if (!dayadded) { sdi.DaysCount75++; } sdi.HoursCount75 += vp; } else if (skipdays >= 4 && skipdays <= 10) { if (!dayadded) { sdi.DaysCount80++; } sdi.HoursCount80 += vp; } dayadded = true; } } }
public ErrorList CountTotalFact(IWorkTimeData wt, DateTime dt1, DateTime dt2) { var error_list = new ErrorList(); string errstr = string.Format("{0}.{1}", dt1.Year, dt1.Month); int i, j; float v, vn, vo, vp; int i1 = dt1.Day; int i2 = dt2.Day; EDayPlanId daycodeplan = EDayPlanId.None; EDayFactId daycodefact = EDayFactId.None; for (i = i1; i <= i2; i++) { bool factdayadded = false; for (j = 0; j < this.Count; j++) { var dlset = this[j]; daycodeplan = dlset.Plan.DxPlan[i - 1]; daycodefact = dlset.Fact.DxFact[i - 1]; if (daycodeplan == EDayPlanId.None) { continue; } if (daycodefact == EDayFactId.X || daycodefact == EDayFactId.None) { continue; } bool isFactHolidayWithBonus = daycodefact == EDayFactId.DS || daycodefact == EDayFactId.KS; bool isAvPayFreeDay = daycodefact == EDayFactId.S || daycodefact == EDayFactId.V || daycodefact == EDayFactId.AM; //bool isAvPayWorkDay = daycodefact == EDayFactId.K; bool isAvPayWorkDay = false; bool IsFactWorkDay = SomeDataDefs.IsDayForWork(daycodefact); v = dlset.Fact.Vx[i - 1]; vn = dlset.FactNight == null ? 0.0f : dlset.FactNight.Vx[i - 1]; vo = dlset.FactOvertime == null ? 0.0f : dlset.FactOvertime.Vx[i - 1]; vp = dlset.Plan.Vx[i - 1]; if (v + vp == 0) { continue; } if (isAvPayFreeDay) { if (vp == 0.0f) { continue; } if (!factdayadded) { wt._FACT_AVPAY_FREE_DAYS++; } wt._FACT_AVPAY_FREE_HOURS += vp; wt._FACT_HOURS += vp; if (!factdayadded) { wt._FACT_DAYS++; } factdayadded = true; continue; } if (!IsFactWorkDay) { continue; } if (v == 0) { continue; } wt._FACT_HOURS += v; wt._FACT_HOURS_NIGHT += vn; wt._FACT_HOURS_OVERTIME += vo; if (isAvPayWorkDay) { if (!factdayadded) { wt._FACT_AVPAY_WORK_DAYS++; } wt._FACT_AVPAY_HOURS += v; wt._FACT_AVPAY_HOURS_OVERTIME += vo; if (isFactHolidayWithBonus) { if (!factdayadded) { wt._FACT_AVPAY_WORKINHOLIDAYS++; } wt._FACT_AVPAY_HOLIDAYS_HOURS += v; wt._FACT_AVPAY_HOLIDAYS_HOURS_OVERT += vo; } if (!factdayadded) { wt._FACT_DAYS++; } factdayadded = true; continue; } if (!factdayadded) { wt._FACT_WORK_DAYS++; } wt._FACT_WORK_HOURS += v; wt._FACT_WORK_HOURS_NIGHT += vn; wt._FACT_WORK_HOURS_OVERTIME += vo; if (isFactHolidayWithBonus) { if (!factdayadded) { wt._FACT_HOLIDAYS_DAYS++; } wt._FACT_HOLIDAYS_HOURS += v; wt._FACT_HOLIDAYS_HOURS_NIGHT += vn; wt._FACT_HOLIDAYS_HOURS_OVERTIME += vo; } if (!factdayadded) { wt._FACT_DAYS++; } factdayadded = true; } } return(error_list); }
public ErrorList CheckDays(SalaryInfo wt, DateTime dt1, DateTime dt2, int idp) { var error_list = new ErrorList(); string errstr = string.Format("{0}.{1}", dt1.Year, dt1.Month); int i, j; int i1 = dt1.Day; int i2 = dt2.Day; EDayPlanId daycodeplan = EDayPlanId.None; EDayFactId daycodefact = EDayFactId.None; EDayPlanId daycodeplan2 = EDayPlanId.None; EDayFactId daycodefact2 = EDayFactId.None; bool iscodeset; for (i = i1; i <= i2; i++) { iscodeset = false; for (j = 0; j < this.Count; j++) { daycodeplan = this[j].Plan.DxPlan[i - 1]; if (!iscodeset) { daycodeplan2 = daycodeplan; iscodeset = true; continue; } if (daycodeplan != daycodeplan2) { var errs = string.Format("{0} nesakrīt darba laika plāna dati dažādiem amatiem dienai: {1}", errstr, i); error_list.AddPersonError(idp, errs); } } iscodeset = false; for (j = 0; j < this.Count; j++) { daycodefact = this[j].Fact.DxFact[i - 1]; daycodeplan = this[j].Plan.DxPlan[i - 1]; if (daycodefact == EDayFactId.X || daycodefact == EDayFactId.None) { continue; } if (!iscodeset) { daycodefact2 = daycodefact; daycodeplan2 = daycodeplan; iscodeset = true; if (!SomeDataDefs.CanPlanHaveFact(daycodeplan, daycodefact)) { var errs = string.Format("{0} nekorekts faktiski nostrādās dienas kods: {1}", errstr, i); error_list.AddPersonError(idp, errs); } continue; } bool b1 = SomeDataDefs.IsSickDay(daycodefact) || SomeDataDefs.IsDayVacation(daycodefact) || daycodefact == EDayFactId.V; bool b2 = SomeDataDefs.IsSickDay(daycodefact2) || SomeDataDefs.IsDayVacation(daycodefact2) || daycodefact2 == EDayFactId.V; if (b1 != b2) { var errs = string.Format("{0} nesakrīt darba laika dati dažādiem amatiem dienai: {1}", errstr, i); error_list.AddPersonError(idp, errs); } } } return(error_list); }