public String dailyMarkingValidate(DailyMarking dm) { if (!MarkingUtil.isEmptyMarking(dm.entryOne) && !MarkingUtil.isEmptyMarking(dm.exitOne)) { if (TimeSpan.Parse(dm.exitOne).CompareTo(TimeSpan.Parse(dm.entryOne)) == -1) { return("Saída 1 menor que Entrada 1"); } } if (!MarkingUtil.isEmptyMarking(dm.exitOne) && !MarkingUtil.isEmptyMarking(dm.entryTwo)) { if (TimeSpan.Parse(dm.entryTwo).CompareTo(TimeSpan.Parse(dm.exitOne)) == -1) { return("Entrada 2 menor que Saída 1"); } } if (!MarkingUtil.isEmptyMarking(dm.exitTwo) && !MarkingUtil.isEmptyMarking(dm.entryTwo)) { if (TimeSpan.Parse(dm.exitTwo).CompareTo(TimeSpan.Parse(dm.entryTwo)) == -1) { return("Saída 2 menor que Entrada 2"); } } if (!MarkingUtil.isEmptyMarking(dm.entryThree) && !MarkingUtil.isEmptyMarking(dm.exitTwo)) { if (TimeSpan.Parse(dm.entryThree).CompareTo(TimeSpan.Parse(dm.exitTwo)) == -1) { return("Entrada 3 menor que Saída 2"); } } if (!MarkingUtil.isEmptyMarking(dm.exitThree) && !MarkingUtil.isEmptyMarking(dm.entryThree)) { if (TimeSpan.Parse(dm.exitThree).CompareTo(TimeSpan.Parse(dm.entryThree)) == -1) { return("Saída 3 menor que Entrada 3"); } } return(""); }
public void calculateHours(DailyMarking dm) { setFieldsByMarkings(dm); List <DateTime> recessDates = recessControl.getAllRecessDates(); ScheduleDay scheduleDay = scheduleControl.getScheduleDay(dm.employee.schedule, MarkingUtil.getDayKey(dm.date.DayOfWeek)); Boolean usualDay = true; string entryTolerance = "0"; string exitTolerance = "0"; TimeSpan standartHoursTS = TimeSpan.Parse("00:00"); TimeSpan faultHoursTS = TimeSpan.Parse("00:00"); TimeSpan extraHoursTS = TimeSpan.Parse("00:00"); TimeSpan workloadTS = TimeSpan.Parse("00:00"); if (scheduleDay.workload != null && !"".Equals(scheduleDay.workload)) { if (absenceControl.getEmployeeInAbsence(dm.employee, dm.date)) { if (!MarkingUtil.testRestrictionModification("AFASTADO", dm)) { dm.entryOne = "AFASTADO"; dm.exitOne = "AFASTADO"; dm.entryTwo = "AFASTADO"; dm.exitTwo = "AFASTADO"; dm.entryThree = "AFASTADO"; dm.exitThree = "AFASTADO"; return; } else { usualDay = false; } } if (recessDates.Contains(dm.date)) { if (!MarkingUtil.testRestrictionModification("FERIADO", dm)) { dm.entryOne = "FERIADO"; dm.exitOne = "FERIADO"; dm.entryTwo = "FERIADO"; dm.exitTwo = "FERIADO"; dm.entryThree = "FERIADO"; dm.exitThree = "FERIADO"; return; } else { usualDay = false; } } if ("FOLGA".Equals(scheduleDay.workload)) { if (!MarkingUtil.testRestrictionModification("FOLGA", dm)) { dm.entryOne = "FOLGA"; dm.exitOne = "FOLGA"; dm.entryTwo = "FOLGA"; dm.exitTwo = "FOLGA"; dm.entryThree = "FOLGA"; dm.exitThree = "FOLGA"; return; } else { usualDay = false; } } if (usualDay) { workloadTS = TimeSpan.Parse(scheduleDay.workload); entryTolerance = scheduleDay.entryTolerance; exitTolerance = scheduleDay.exitTolerance; } if (dm.entryOne != null && dm.exitOne != null) { standartHoursTS += TimeSpan.Parse(dm.exitOne) - TimeSpan.Parse(dm.entryOne); } if (dm.entryTwo != null && dm.exitTwo != null) { standartHoursTS += TimeSpan.Parse(dm.exitTwo) - TimeSpan.Parse(dm.entryTwo); } if (dm.entryThree != null && dm.exitThree != null) { standartHoursTS += TimeSpan.Parse(dm.exitThree) - TimeSpan.Parse(dm.entryThree); } if (standartHoursTS != TimeSpan.Parse("00:00")) { if (scheduleDay.compensation) { if (standartHoursTS.CompareTo(workloadTS) > 0) { TimeSpan extra = standartHoursTS - workloadTS; if (extra.TotalMinutes > Convert.ToInt16(entryTolerance)) { extraHoursTS = extra; } else { standartHoursTS = workloadTS; } } else { TimeSpan fault = workloadTS - standartHoursTS; if (fault.TotalMinutes > Convert.ToInt16(exitTolerance)) { faultHoursTS = workloadTS - standartHoursTS; } else { standartHoursTS = workloadTS; } } } else { if (standartHoursTS.CompareTo(workloadTS) > 0) { extraHoursTS = standartHoursTS - workloadTS; } else { faultHoursTS = workloadTS - standartHoursTS; } } } else { if (scheduleDay.automaticDayOff) { dm.entryOne = "FOLGA"; dm.exitOne = "FOLGA"; dm.entryTwo = "FOLGA"; dm.exitTwo = "FOLGA"; dm.entryThree = "FOLGA"; dm.exitThree = "FOLGA"; standartHoursTS = TimeSpan.Parse("00:00"); faultHoursTS = TimeSpan.Parse("00:00"); extraHoursTS = TimeSpan.Parse("00:00"); workloadTS = TimeSpan.Parse("00:00"); return; } } dm.standartHours = standartHoursTS.ToString(@"hh\:mm"); dm.faultHours = faultHoursTS.ToString(@"hh\:mm"); dm.extraHours = extraHoursTS.ToString(@"hh\:mm"); dm.workload = workloadTS.ToString(@"hh\:mm"); } }
public void markingsUpdate(DailyMarking dm) { if (!MarkingUtil.isEmptyMarking(dm.entryOne)) { string[] time = dm.entryOne.Split(':'); if (dm.markings.Count >= 1) { dm.markings[0].hour = Convert.ToInt16(time[0]); dm.markings[0].minute = Convert.ToInt16(time[1]); } else { dm.markings.Add(new Marking(-1, -1, dm.employee.pisPasep, Convert.ToInt16(dm.date.Day), Convert.ToInt16(dm.date.Month), Convert.ToInt16(dm.date.Year), Convert.ToInt16(time[0]), Convert.ToInt16(time[1]))); } } if (!MarkingUtil.isEmptyMarking(dm.exitOne)) { string[] time = dm.exitOne.Split(':'); if (dm.markings.Count >= 2) { dm.markings[1].hour = Convert.ToInt16(time[0]); dm.markings[1].minute = Convert.ToInt16(time[1]); } else { dm.markings.Add(new Marking(-1, -1, dm.employee.pisPasep, Convert.ToInt16(dm.date.Day), Convert.ToInt16(dm.date.Month), Convert.ToInt16(dm.date.Year), Convert.ToInt16(time[0]), Convert.ToInt16(time[1]))); } } if (!MarkingUtil.isEmptyMarking(dm.entryTwo)) { string[] time = dm.entryTwo.Split(':'); if (dm.markings.Count >= 3) { dm.markings[2].hour = Convert.ToInt16(time[0]); dm.markings[2].minute = Convert.ToInt16(time[1]); } else { dm.markings.Add(new Marking(-1, -1, dm.employee.pisPasep, Convert.ToInt16(dm.date.Day), Convert.ToInt16(dm.date.Month), Convert.ToInt16(dm.date.Year), Convert.ToInt16(time[0]), Convert.ToInt16(time[1]))); } } if (!MarkingUtil.isEmptyMarking(dm.exitTwo)) { string[] time = dm.exitTwo.Split(':'); if (dm.markings.Count >= 4) { dm.markings[3].hour = Convert.ToInt16(time[0]); dm.markings[3].minute = Convert.ToInt16(time[1]); } else { dm.markings.Add(new Marking(-1, -1, dm.employee.pisPasep, Convert.ToInt16(dm.date.Day), Convert.ToInt16(dm.date.Month), Convert.ToInt16(dm.date.Year), Convert.ToInt16(time[0]), Convert.ToInt16(time[1]))); } } if (!MarkingUtil.isEmptyMarking(dm.entryThree)) { string[] time = dm.entryThree.Split(':'); if (dm.markings.Count >= 5) { dm.markings[4].hour = Convert.ToInt16(time[0]); dm.markings[4].minute = Convert.ToInt16(time[1]); } else { dm.markings.Add(new Marking(-1, -1, dm.employee.pisPasep, Convert.ToInt16(dm.date.Day), Convert.ToInt16(dm.date.Month), Convert.ToInt16(dm.date.Year), Convert.ToInt16(time[0]), Convert.ToInt16(time[1]))); } } if (!MarkingUtil.isEmptyMarking(dm.exitThree)) { string[] time = dm.exitThree.Split(':'); if (dm.markings.Count >= 6) { dm.markings[5].hour = Convert.ToInt16(time[0]); dm.markings[5].minute = Convert.ToInt16(time[1]); } else { dm.markings.Add(new Marking(-1, -1, dm.employee.pisPasep, Convert.ToInt16(dm.date.Day), Convert.ToInt16(dm.date.Month), Convert.ToInt16(dm.date.Year), Convert.ToInt16(time[0]), Convert.ToInt16(time[1]))); } } }
private String validateSchedule() { Schedule schedule = getScheduleFromControls(); foreach (ScheduleDay sd in schedule.scheduleDays) { TimeSpan outDT = new TimeSpan(); String entryOne = sd.EntryOne == null ? "" : sd.EntryOne.Replace(":", ""); if (!MarkingUtil.isEmptyMarking(entryOne) && (!entryOne.All(char.IsNumber) || !(entryOne.Length == 4) || !TimeSpan.TryParse(sd.EntryOne, out outDT))) { return("Entrada 1 Inválida na " + sd.descriptionDay); } String exitOne = sd.exitOne == null ? "" : sd.exitOne.Replace(":", ""); if (!MarkingUtil.isEmptyMarking(exitOne) && (!exitOne.All(char.IsNumber) || !(exitOne.Length == 4) || !TimeSpan.TryParse(sd.exitOne, out outDT))) { return("Saída 1 Inválida na " + sd.descriptionDay); } String entryTwo = sd.entryTwo == null ? "" : sd.entryTwo.Replace(":", ""); if (!MarkingUtil.isEmptyMarking(entryTwo) && (!entryTwo.All(char.IsNumber) || !(entryTwo.Length == 4) || !TimeSpan.TryParse(sd.entryTwo, out outDT))) { return("Entrada 2 Inválida na " + sd.descriptionDay); } String exitTwo = sd.exitTwo == null ? "" : sd.exitTwo.Replace(":", ""); if (!MarkingUtil.isEmptyMarking(exitTwo) && (!exitTwo.All(char.IsNumber) || !(exitTwo.Length == 4) || !TimeSpan.TryParse(sd.exitTwo, out outDT))) { return("Saída 2 Inválida na " + sd.descriptionDay); } String entryThree = sd.entryThree == null ? "" : sd.entryThree.Replace(":", ""); if (!MarkingUtil.isEmptyMarking(entryThree) && (!entryThree.All(char.IsNumber) || !(entryThree.Length == 4) || !TimeSpan.TryParse(sd.entryThree, out outDT))) { return("Entrada 3 Inválida na " + sd.descriptionDay); } String exitThree = sd.exitThree == null ? "" : sd.exitThree.Replace(":", ""); if (!MarkingUtil.isEmptyMarking(exitThree) && (!exitThree.All(char.IsNumber) || !(exitThree.Length == 4) || !TimeSpan.TryParse(sd.exitThree, out outDT))) { return("Saída 3 Inválida na " + sd.descriptionDay); } if (!sd.dayOff) { if (!MarkingUtil.isEmptyMarking(sd.EntryOne) && !MarkingUtil.isEmptyMarking(sd.exitOne)) { if (TimeSpan.Parse(sd.exitOne).CompareTo(TimeSpan.Parse(sd.EntryOne)) == -1) { return("Saída 1 menor que Entrada 1 na " + sd.descriptionDay); } } if (!MarkingUtil.isEmptyMarking(sd.entryTwo) && !MarkingUtil.isEmptyMarking(sd.exitOne)) { if (TimeSpan.Parse(sd.entryTwo).CompareTo(TimeSpan.Parse(sd.exitOne)) == -1) { return("Entrada 2 menor que Saída 1 na " + sd.descriptionDay); } } if (!MarkingUtil.isEmptyMarking(sd.exitTwo) && !MarkingUtil.isEmptyMarking(sd.entryTwo)) { if (TimeSpan.Parse(sd.exitTwo).CompareTo(TimeSpan.Parse(sd.entryTwo)) == -1) { return("Saída 2 menor que Entrada 2 na " + sd.descriptionDay); } } if (!MarkingUtil.isEmptyMarking(sd.entryThree) && !MarkingUtil.isEmptyMarking(sd.exitTwo)) { if (TimeSpan.Parse(sd.entryThree).CompareTo(TimeSpan.Parse(sd.exitTwo)) == -1) { return("Entrada 3 menor que Saída 2 na " + sd.descriptionDay); } } if (!MarkingUtil.isEmptyMarking(sd.exitThree) && !MarkingUtil.isEmptyMarking(sd.entryThree)) { if (TimeSpan.Parse(sd.exitThree).CompareTo(TimeSpan.Parse(sd.entryThree)) == -1) { return("Saída 3 menor que Entrada 3 na " + sd.descriptionDay); } } } } return(""); }