示例#1
0
        /// <summary>
        /// Almacena el registro de una ENTIDAD de registro de Tipo Horario
        /// En la BASE de DATO la Tabla : [Asistencia.Horario]
        /// <summary>
        /// <param name = >itemHorario</param>
        public bool Update(BEHorario itemHorario)
        {
            int codigoRetorno = -1;

            try
            {
                using (_CROMTimeDataContext SQLDC = new _CROMTimeDataContext(conexion))
                {
                    codigoRetorno = SQLDC.omgc_mnt_UpdateHorario(
                        itemHorario.CodigoHorario,
                        itemHorario.Descripcion,
                        itemHorario.HorasLabor,
                        itemHorario.HEntrada,
                        itemHorario.HSalida,
                        itemHorario.Tolerancia,
                        itemHorario.CodigoArguTipoHorario,
                        itemHorario.CodigoHorarioRefer,
                        itemHorario.DiaSabado,
                        itemHorario.MinAlmuerzo,
                        itemHorario.RefrigerioSalida,
                        itemHorario.RefrigerioEntrada,
                        itemHorario.Estado,
                        itemHorario.SegUsuarioEdita);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(codigoRetorno == 0 ? true : false);
        }
示例#2
0
        /// <summary>
        /// Retorna una ENTIDAD de registro de la Entidad Asistencia.Horario
        /// En la BASE de DATO la Tabla : [Asistencia.Horario]
        /// <summary>
        /// <returns>Entidad</returns>
        public BEHorario Find(int prm_CodigoHorario)
        {
            BEHorario miEntidad = new BEHorario();

            try
            {
                miEntidad = oHorarioData.Find(prm_CodigoHorario);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(miEntidad);
        }
示例#3
0
 /// <summary>
 /// Almacena el registro de una ENTIDAD de registro de Tipo Horario
 /// En la BASE de DATO la Tabla : [Asistencia.Horario]
 /// <summary>
 /// <param name = >itemHorario</param>
 public ReturnValor Insert(BEHorario itemHorario)
 {
     try
     {
         using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required))
         {
             oReturnValor.Exitosa = oHorarioData.Insert(itemHorario);
             if (oReturnValor.Exitosa)
             {
                 oReturnValor.Message = HelpEventos.MessageEvento(HelpEventos.Process.NEW);
                 tx.Complete();
             }
         }
     }
     catch (Exception ex)
     {
         oReturnValor = HelpException.mTraerMensaje(ex);
     }
     return(oReturnValor);
 }
示例#4
0
        /// <summary>
        /// Retorna una ENTIDAD de registro de la Entidad Asistencia.Horario
        /// En la BASE de DATO la Tabla : [Asistencia.Horario]
        /// <summary>
        /// <returns>Entidad</returns>
        public BEHorario Find(int prm_CodigoHorario)
        {
            BEHorario miEntidad = new BEHorario();

            try
            {
                using (_CROMTimeDataContext SQLDC = new _CROMTimeDataContext(conexion))
                {
                    var resul = SQLDC.omgc_mnt_GetByIdCodeHorario(prm_CodigoHorario);
                    foreach (var item in resul)
                    {
                        miEntidad = new BEHorario()
                        {
                            CodigoHorario         = item.CodigoHorario,
                            Descripcion           = item.Descripcion,
                            HorasLabor            = item.HorasLabor,
                            HEntrada              = item.HEntrada,
                            HSalida               = item.HSalida,
                            Tolerancia            = item.Tolerancia,
                            CodigoArguTipoHorario = item.CodigoArguTipoHorario,
                            CodigoHorarioRefer    = item.CodigoHorarioRefer,
                            DiaSabado             = item.DiaSabado,
                            MinAlmuerzo           = item.MinAlmuerzo,
                            RefrigerioSalida      = item.RefrigerioSalida,
                            RefrigerioEntrada     = item.RefrigerioEntrada,
                            Estado            = item.Estado,
                            SegUsuarioCrea    = item.SegUsuarioCrea,
                            SegUsuarioEdita   = item.SegUsuarioEdita,
                            SegFechaHoraCrea  = item.SegFechaHoraCrea,
                            SegFechaHoraEdita = item.SegFechaHoraEdita,
                            SegMaquinaOrigen  = item.SegMaquinaOrigen,
                        };
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(miEntidad);
        }
示例#5
0
        private bool DetectaFERIADO(BEHorario itemHorario, DateTime FechaBuscar, ref string prm_DescripcionAusencia)
        {
            bool   ESFERIADO = false;
            string prm_descripcionAusencia = string.Empty;


            // Se Obtiene Todas las Marcaciones del EMPLEADO por la Fecha actual del BUCLE
            var queryFERIADO = from ListaMarcasFECHA_Actual in listaFeriados
                               where ListaMarcasFECHA_Actual.Feriado.Substring(4, 4) == HelpTime.ConvertYYYYMMDD(FechaBuscar).Substring(4, 4)
                               select ListaMarcasFECHA_Actual;

            List <BEFeriado> ListaFeriado = new List <BEFeriado>();

            ListaFeriado = queryFERIADO.ToList <BEFeriado>();

            if (itemHorario.CodigoHorario == Convert.ToInt32(ConfigurationManager.AppSettings["DEFAULT_HorarioFeriado"]))
            {
                prm_descripcionAusencia = itemHorario.Descripcion;
                prm_DescripcionAusencia = prm_descripcionAusencia;
                ESFERIADO = true;
                return(ESFERIADO);
            }
            else if (ListaFeriado.Count > 0)
            {
                prm_descripcionAusencia = ListaFeriado[0].Descripcion;
                prm_DescripcionAusencia = prm_descripcionAusencia;
                ESFERIADO = true;
            }
            else
            {
                prm_descripcionAusencia = "¡ NO TIENE MARCACIONES !";
                prm_DescripcionAusencia = prm_descripcionAusencia;
                ESFERIADO = false;
            }
            return(ESFERIADO);
        }
示例#6
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)));
                }
            }
        }