示例#1
0
        private void AddHoras(int id, string fecha, string horas)
        {
            #region Tandas por cada empleado
            if (!metodos.EsDiaFeriado(fecha))
            {
                DataRow r = horasTrabajadas.NewRow();
                r["ID"]     = id;
                r["Fecha"]  = fecha;
                r["horasT"] = horas;
                horasTrabajadas.Rows.Add(r);
                horasTrabajadas.AcceptChanges();
            }
            #endregion
            DateTime dt = DateTime.Parse(fecha);
            float    th = (float)TimeSpan.Parse(horas).TotalHours;
            #region Day of the week
            if (dt.DayOfWeek != DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday)
            {
                #region Display day hours

                HorasTrabajadas dhwoad = new HorasTrabajadas(id, th, dt);
                DayHoursWithOverTimeAndDobles.Add(dhwoad);

                #endregion
                #region Dias Feriados
                if (metodos.EsDiaFeriado(fecha))
                {
                    var EmployeeDobleHours = Dobles.Where(x => x.ID == id).FirstOrDefault();
                    if (EmployeeDobleHours == null)
                    {
                        HorasTrabajadas ht = new HorasTrabajadas(id, th, dt);
                        Dobles.Add(ht);
                    }
                    else
                    {
                        EmployeeDobleHours.HorasT += th;
                    }
                }
                #endregion

                #region Total de horas por empleado
                if (!metodos.EsDiaFeriado(fecha))
                {
                    var EmployeeHours = WorkedTime.Where(x => x.ID == id).FirstOrDefault();
                    if (EmployeeHours == null)
                    {
                        HorasTrabajadas ht = new HorasTrabajadas(id, th, dt);
                        WorkedTime.Add(ht);
                    }
                    else
                    {
                        EmployeeHours.HorasT += th;
                    }
                }
                #endregion
                #region Total de horas diarias por empleados
                if (!metodos.EsDiaFeriado(fecha))
                {
                    var DayExist     = DayHours.Where(x => x.ID == id && x.Fecha.ToShortDateString().Equals(dt.ToShortDateString())).FirstOrDefault();
                    var LaHoraVacana = horaVacana.Where(x => x.ID == id).FirstOrDefault();
                    if (DayExist != null)
                    {
                        float h = DayExist.HorasT + th;
                        #region TheOverTime
                        //if (dt.DayOfWeek != DayOfWeek.Friday)
                        //{
                        //    if (h > 9)
                        //    {
                        //        float delta = h - 9;
                        //        var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                        //        if (EmployeeExtras == null)
                        //        {
                        //            HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                        //            Extras.Add(ht);
                        //        }
                        //        else
                        //        {
                        //            EmployeeExtras.HorasT += delta;
                        //        }
                        //        h = 9;
                        //    }
                        //}
                        //else
                        //{
                        //    if (h > 8)
                        //    {
                        //        float delta = h - 8;
                        //        var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                        //        if (EmployeeExtras == null)
                        //        {
                        //            HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                        //            Extras.Add(ht);
                        //        }
                        //        else
                        //        {
                        //            EmployeeExtras.HorasT += delta;
                        //        }
                        //        h = 8;
                        //    }
                        //}
                        #endregion
                        h = AddOT(id, h, dt);
                        DayExist.HorasT = h;
                        if (LaHoraVacana != null)
                        {
                            LaHoraVacana.HorasT += h;
                        }
                        else
                        {
                            HorasTrabajadas hv = new HorasTrabajadas(id, h, dt);
                            horaVacana.Add(hv);
                        }
                    }
                    else
                    {
                        #region TheOverTime
                        //if (dt.DayOfWeek != DayOfWeek.Friday)
                        //{
                        //    if (th > 9)
                        //    {
                        //        float delta = th - 9;
                        //        var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                        //        if (EmployeeExtras == null)
                        //        {
                        //            HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                        //            Extras.Add(ht);
                        //        }
                        //        else
                        //        {
                        //            EmployeeExtras.HorasT += delta;
                        //        }
                        //        th = 9;
                        //    }
                        //}
                        //else
                        //{
                        //    if (th > 8)
                        //    {
                        //        float delta = th - 8;
                        //        var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                        //        if (EmployeeExtras == null)
                        //        {
                        //            HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                        //            Extras.Add(ht);
                        //        }
                        //        else
                        //        {
                        //            EmployeeExtras.HorasT += delta;
                        //        }
                        //        th = 8;
                        //    }
                        //}
                        #endregion
                        th = AddOT(id, th, dt);
                        if (LaHoraVacana != null)
                        {
                            LaHoraVacana.HorasT += th;
                        }
                        else
                        {
                            HorasTrabajadas hv = new HorasTrabajadas(id, th, dt);
                            horaVacana.Add(hv);
                        }
                        HorasTrabajadas dh = new HorasTrabajadas(id, th, dt);
                        DayHours.Add(dh);
                    }
                }
                #endregion
            }
            #endregion
            #region SabadoDomingo
            else if (dt.DayOfWeek == DayOfWeek.Saturday)
            {
                AddOT(id, th, dt);
                //var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                //if (EmployeeExtras == null)
                //{
                //    HorasTrabajadas ht = new HorasTrabajadas(id, th, dt);
                //    Extras.Add(ht);
                //}
                //else
                //{
                //    EmployeeExtras.HorasT += th;
                //}
            }
            else
            {
                var EmployeeDobleHours = Dobles.Where(x => x.ID == id).FirstOrDefault();
                if (EmployeeDobleHours == null)
                {
                    HorasTrabajadas ht = new HorasTrabajadas(id, th, dt);
                    Dobles.Add(ht);
                }
                else
                {
                    EmployeeDobleHours.HorasT += th;
                }
            }
            #endregion
        }