示例#1
0
        public BEParteDiarioTurno FindTurnoActual(string prm_CodigoPersonaEmpre, string prm_CodigoPuntoVenta)
        {
            string                    sdia      = string.Empty;
            string                    CodiDia   = HelpTime.DiaDeLaSemana(DateTime.Now.AddHours(GlobalSettings.GetDEFAULT_HorasFechaActualCloud()), out sdia).ToString().Trim().PadLeft(3, '0');
            BEParteDiarioTurno        itemTurno = new BEParteDiarioTurno();
            ParteDiarioTurnoLogic     oParteDiarioTurnosLogic = new ParteDiarioTurnoLogic();
            List <BEParteDiarioTurno> listaParteDiarioTurnos  = new List <BEParteDiarioTurno>();

            listaParteDiarioTurnos = oParteDiarioTurnosLogic.List(new BaseFiltro
            {
                codEmpresaRUC     = prm_CodigoPersonaEmpre
                , codPuntoVenta   = prm_CodigoPuntoVenta
                , codRegTipoTurno = string.Empty
                , desNombre       = string.Empty
                , codRegDiaSemana = HelpTMaestras.CodigoTabla(HelpTMaestras.TM.DiasDeLaSemana) + CodiDia
                , indEstado       = true
            });
            foreach (BEParteDiarioTurno iPDT in listaParteDiarioTurnos)
            {
                double horaActual = HelpTime.CantidadTiempoEn_DECIMAL(DateTime.Now.AddHours(GlobalSettings.GetDEFAULT_HorasFechaActualCloud()).ToShortTimeString());
                double horaInicio = HelpTime.CantidadTiempoEn_DECIMAL(iPDT.HoraDeInicio);
                double horaFinal  = HelpTime.CantidadTiempoEn_DECIMAL(iPDT.HoraDeFinal);
                if (horaActual >= horaInicio && horaActual < horaFinal)
                {
                    itemTurno = iPDT;
                    break;
                }
                else
                {
                    iPDT.HoraDeInicio = DateTime.Now.ToShortTimeString().Substring(0, 5);
                    itemTurno         = iPDT;
                }
            }
            return(itemTurno);
        }
示例#2
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)));
                }
            }
        }