Exemplo n.º 1
0
        private void CalcularTiempoPersona(BETimeMarcacion itemTimeMarcaciones, BEHorario itemHorario, int veces_MARCA)
        {
            double HORAS_PERMAN_NUME = 0;
            string HORAS_PERMAN_HORA = string.Empty;
            double HORAS_LABORA_NUME = 0;
            string HORAS_LABORA_HORA = string.Empty;

            string HORA_SALIR_REFRIG = string.Empty;
            string HORA_ENTRA_REFRIG = string.Empty;

            if (HelpTime.CantidadTiempoEn_DECIMAL(itemTimeMarcaciones.Entra01) < HelpTime.CantidadTiempoEn_DECIMAL(itemHorario.HEntrada))
            {
                if (itemTimeMarcaciones.Salid01 == string.Empty)
                {
                    if (itemHorario.RefrigerioSalida != "00:00")
                    {
                        itemTimeMarcaciones.Salid01 = itemHorario.RefrigerioSalida.ToString();
                    }
                }
            }
            if (itemTimeMarcaciones.Entra01 != string.Empty)
            {
                if (itemHorario.HEntrada != "00:00")
                {
                    string NUEVA_ENTRADA = string.Empty;
                    if (itemHorario.Tolerancia > 0)
                    {
                        double H_ENTRADA = HelpTime.CantidadTiempoEn_DECIMAL(itemHorario.HEntrada);
                        double M_ENTRADA = Convert.ToDouble(Convert.ToDouble(itemHorario.Tolerancia) / 60);
                        H_ENTRADA     = H_ENTRADA + M_ENTRADA;
                        NUEVA_ENTRADA = HelpTime.CantidadTiempoEn_HH_MM(H_ENTRADA);
                    }
                    else
                    {
                        NUEVA_ENTRADA = itemHorario.HEntrada;
                    }
                    double MINUTOS_TARDE = HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + NUEVA_ENTRADA), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Entra01), HelpTime.TotalTiempo.Minutos);
                    if (MINUTOS_TARDE > 0)
                    {
                        itemTimeMarcaciones.CONTADOR_MinutosTarde = Convert.ToInt32(MINUTOS_TARDE);
                        itemTimeMarcaciones.CONTADOR_VecesTarde   = 1;
                    }
                }
            }
            if (itemTimeMarcaciones.Entra01 != string.Empty && itemTimeMarcaciones.Salid01 != string.Empty)
            {
                HORA_SALIR_REFRIG = itemTimeMarcaciones.Salid01;
                if (SeCalculaTiempoEn60)
                {
                    HORAS_PERMAN_NUME = HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Entra01), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Salid01), HelpTime.TotalTiempo.Horas);
                    HORAS_PERMAN_HORA = HelpTime.CantidadTiempoEn_HH_MM(HORAS_PERMAN_NUME);
                    if (itemHorario.HEntrada.ToString() != "00:00")
                    {
                        if (HelpTime.CantidadTiempoEn_DECIMAL(itemTimeMarcaciones.Salid01) < HelpTime.CantidadTiempoEn_DECIMAL(itemHorario.RefrigerioEntrada))
                        {
                            HORAS_LABORA_NUME = HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Entra01.ToString()), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Salid01), HelpTime.TotalTiempo.Horas);
                            HORAS_LABORA_HORA = HelpTime.CantidadTiempoEn_HH_MM(HORAS_LABORA_NUME);
                        }
                        else
                        {
                            double HORA_TRABAJO = HelpTime.CantidadTiempoEn_DECIMAL(itemTimeMarcaciones.Entra01) - HelpTime.CantidadTiempoEn_DECIMAL(itemHorario.HEntrada);
                            if (HelpTime.CantidadTiempoEn_DECIMAL(itemTimeMarcaciones.Salid01) < HelpTime.CantidadTiempoEn_DECIMAL(itemHorario.HSalida))
                            {
                                HORAS_LABORA_NUME = HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemHorario.HEntrada.ToString()), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Salid01), HelpTime.TotalTiempo.Horas) - HORA_TRABAJO;
                            }
                            else
                            {
                                HORAS_LABORA_NUME = HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemHorario.HEntrada.ToString()), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemHorario.HSalida), HelpTime.TotalTiempo.Horas) - HORA_TRABAJO;
                            }
                            if (HORAS_LABORA_NUME > 0)
                            {
                                HORAS_LABORA_HORA = HelpTime.CantidadTiempoEn_HH_MM(HORAS_LABORA_NUME);
                            }
                            else
                            {
                                HORAS_LABORA_HORA = "00:00";
                            }
                        }
                    }
                    else
                    {
                        HORAS_LABORA_NUME = HORAS_PERMAN_NUME;
                        HORAS_LABORA_HORA = HORAS_PERMAN_HORA;
                    }
                }
                else
                {
                    HORAS_PERMAN_NUME = HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Entra01), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Salid01), HelpTime.TotalTiempo.Horas);
                    HORAS_PERMAN_HORA = Math.Round((decimal)HORAS_PERMAN_NUME, 2).ToString();
                    HORAS_LABORA_NUME = HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemHorario.HEntrada.ToString()), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Salid01), HelpTime.TotalTiempo.Horas);
                    HORAS_LABORA_HORA = Math.Round((decimal)HORAS_LABORA_NUME, 2).ToString();
                }
            }
            if (itemTimeMarcaciones.Entra02 != string.Empty && itemTimeMarcaciones.Salid02 != string.Empty)
            {
                HORA_ENTRA_REFRIG = itemTimeMarcaciones.Entra02;
                if (SeCalculaTiempoEn60)
                {
                    HORAS_PERMAN_NUME = HORAS_PERMAN_NUME + (HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Entra02), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Salid02), HelpTime.TotalTiempo.Horas));
                    HORAS_PERMAN_HORA = HelpTime.CantidadTiempoEn_HH_MM(HORAS_PERMAN_NUME);
                    if (itemHorario.HEntrada.ToString() != "00:00")
                    {
                        HORAS_LABORA_NUME = HORAS_LABORA_NUME + (HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Entra02.ToString()), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemHorario.HSalida), HelpTime.TotalTiempo.Horas));
                        HORAS_LABORA_HORA = HelpTime.CantidadTiempoEn_HH_MM(HORAS_LABORA_NUME);
                    }
                    else
                    {
                        HORAS_LABORA_NUME = HORAS_PERMAN_NUME;
                        HORAS_LABORA_HORA = HORAS_PERMAN_HORA;
                    }
                }
                else
                {
                    HORAS_PERMAN_NUME = HORAS_PERMAN_NUME + (HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Entra02), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Salid02), HelpTime.TotalTiempo.Horas));
                    HORAS_PERMAN_HORA = Math.Round((decimal)HORAS_PERMAN_NUME, 2).ToString();
                    HORAS_LABORA_NUME = HORAS_LABORA_NUME + (HelpTime.CantidadTiempoEn_100(Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemHorario.HEntrada.ToString()), Convert.ToDateTime(itemTimeMarcaciones.FechaHora.ToShortDateString() + " " + itemTimeMarcaciones.Salid02), HelpTime.TotalTiempo.Horas));
                    if (HORAS_LABORA_NUME > 0)
                    {
                        HORAS_LABORA_HORA = Math.Round((decimal)HORAS_LABORA_NUME, 2).ToString();
                    }
                    else
                    {
                        HORAS_LABORA_HORA = "00.00";
                    }
                }
            }
            else
            {
                HORAS_PERMAN_HORA = "00:00";
                HORAS_LABORA_HORA = "00:00";
            }
            if (itemTimeMarcaciones.Entra01 != string.Empty)
            {
                itemTimeMarcaciones.MarcacionesDescripcion = " E " + itemTimeMarcaciones.Entra01;
            }
            if (itemTimeMarcaciones.Salid01 != string.Empty)
            {
                itemTimeMarcaciones.MarcacionesDescripcion = itemTimeMarcaciones.MarcacionesDescripcion + "  S " + itemTimeMarcaciones.Salid01;
            }
            if (itemTimeMarcaciones.Entra02 != string.Empty)
            {
                itemTimeMarcaciones.MarcacionesDescripcion = itemTimeMarcaciones.MarcacionesDescripcion + " E " + itemTimeMarcaciones.Entra02;
            }
            if (itemTimeMarcaciones.Salid02 != string.Empty)
            {
                itemTimeMarcaciones.MarcacionesDescripcion = itemTimeMarcaciones.MarcacionesDescripcion + "  S " + itemTimeMarcaciones.Salid02;
            }


            itemTimeMarcaciones.HorasPermanenTIME60 = HORAS_PERMAN_HORA;
            itemTimeMarcaciones.HorasLaboradaTIME60 = HORAS_LABORA_HORA;
            double HORAS_DEBE = HelpTime.CantidadTiempoEn_DECIMAL(itemTimeMarcaciones.HorasTeoricasTIME60) - HelpTime.CantidadTiempoEn_DECIMAL(HORAS_LABORA_HORA);

            if (HORAS_DEBE > 0)
            {
                itemTimeMarcaciones.HorasDebeTiemDOUBLE = HORAS_DEBE;
                itemTimeMarcaciones.HorasDebeTiemTIME60 = HelpTime.CantidadTiempoEn_HH_MM(HORAS_DEBE);
            }
            itemTimeMarcaciones.HorasPermanenDOUBLE = HelpTime.CantidadTiempoEn_DECIMAL(HORAS_PERMAN_HORA);
            itemTimeMarcaciones.HorasLaboradaDOUBLE = HelpTime.CantidadTiempoEn_DECIMAL(HORAS_LABORA_HORA);

            itemTimeMarcaciones.RefrigerTeoriTIME60 = HelpTime.CantidadTiempoEn_HH_MM((double)itemHorario.MinAlmuerzo / 60);
            itemTimeMarcaciones.RefrigerTeoriDOUBLE = itemHorario.MinAlmuerzo / 60;

            if (HORA_ENTRA_REFRIG != string.Empty && HORA_SALIR_REFRIG != string.Empty)
            {
                itemTimeMarcaciones.RefrigerRealiDOUBLE = HelpTime.CantidadTiempoEn_DECIMAL(HORA_ENTRA_REFRIG) - HelpTime.CantidadTiempoEn_DECIMAL(HORA_SALIR_REFRIG);
                itemTimeMarcaciones.RefrigerRealiTIME60 = HelpTime.CantidadTiempoEn_HH_MM(itemTimeMarcaciones.RefrigerRealiDOUBLE);
                if (itemTimeMarcaciones.RefrigerRealiDOUBLE > (itemHorario.MinAlmuerzo / 60))
                {
                    itemTimeMarcaciones.RefrigerExcesDOUBLE = (itemTimeMarcaciones.RefrigerRealiDOUBLE - (itemHorario.MinAlmuerzo / 60));
                    itemTimeMarcaciones.RefrigerExcesTIME60 = HelpTime.CantidadTiempoEn_HH_MM((itemTimeMarcaciones.RefrigerRealiDOUBLE - (itemHorario.MinAlmuerzo / 60)));
                }
            }
        }