Ejemplo n.º 1
0
        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("");
        }
Ejemplo n.º 2
0
        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");
            }
        }
Ejemplo n.º 3
0
        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])));
                }
            }
        }
Ejemplo n.º 4
0
        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("");
        }