コード例 #1
0
        public ActionResult Nuevo()
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            empleado_info_list.set_list(bus_empleado.get_list_combo(Convert.ToInt32(SessionFixed.IdEmpresa)), Convert.ToDecimal(SessionFixed.IdTransaccionSession));

            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion
            ro_marcaciones_x_empleado_Info model = new ro_marcaciones_x_empleado_Info
            {
                IdEmpresa            = Convert.ToInt32(SessionFixed.IdEmpresa),
                Fecha_Transac        = DateTime.Now,
                IdNomina             = 1,
                IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession)
            };
            model.detalle = new List <ro_marcaciones_x_empleado_Info>();
            detalle.set_list(model.detalle, model.IdTransaccionSession);
            cargar_combos();
            return(View(model));
        }
コード例 #2
0
        public bool si_existe(ro_marcaciones_x_empleado_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    var lst = from q in Context.ro_marcaciones_x_empleado
                              where q.IdEmpresa == info.IdEmpresa &&
                              q.IdEmpleado == info.IdEmpleado &&
                              q.IdTipoMarcaciones == info.IdTipoMarcaciones &&
                              q.IdCalendadrio == info.IdCalendadrio
                              select q;

                    if (lst.Count() > 0)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #3
0
        public bool anularDB(ro_marcaciones_x_empleado_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_marcaciones_x_empleado Entity = Context.ro_marcaciones_x_empleado.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdRegistro == info.IdRegistro);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.Estado = info.Estado = "I";

                    Entity.IdUsuarioUltAnu = info.IdUsuarioUltAnu;
                    Entity.Fecha_UltAnu    = info.Fecha_UltAnu = DateTime.Now;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #4
0
        public bool guardarDB(ro_marcaciones_x_empleado_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_marcaciones_x_empleado Entity = new ro_marcaciones_x_empleado
                    {
                        IdEmpresa         = info.IdEmpresa,
                        IdRegistro        = info.IdRegistro = get_id(info.IdEmpresa),
                        IdEmpleado        = info.IdEmpleado,
                        IdCalendadrio     = info.IdCalendadrio,
                        IdTipoMarcaciones = info.IdTipoMarcaciones,
                        IdNomina          = info.IdNomina,
                        es_Hora           = info.es_Hora,
                        es_fechaRegistro  = info.es_fechaRegistro.Date,

                        Observacion   = info.Observacion,
                        IdUsuario     = info.IdUsuario,
                        Estado        = info.Estado = "A",
                        Fecha_Transac = info.Fecha_Transac = DateTime.Now
                    };
                    Context.ro_marcaciones_x_empleado.Add(Entity);
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #5
0
        public bool modificarDB(ro_marcaciones_x_empleado_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_marcaciones_x_empleado Entity = Context.ro_marcaciones_x_empleado.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdRegistro == info.IdRegistro);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.IdEmpleado        = info.IdEmpleado;
                    Entity.IdCalendadrio     = info.IdCalendadrio;
                    Entity.IdTipoMarcaciones = info.IdTipoMarcaciones;
                    Entity.IdNomina          = info.IdNomina;
                    Entity.es_Hora           = info.es_Hora;
                    Entity.es_fechaRegistro  = info.es_fechaRegistro.Date;
                    Entity.Observacion       = info.Observacion;
                    Entity.Fecha_UltMod      = info.Fecha_UltMod = DateTime.Now;
                    Entity.IdUsuarioUltModi  = info.IdUsuarioUltModi;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #6
0
 public ActionResult Modificar(ro_marcaciones_x_empleado_Info info)
 {
     try
     {
         if (ModelState.IsValid)
         {
             if (!bus_marcaciones.modificarDB(info))
             {
                 cargar_combo();
                 return(View(info));
             }
             else
             {
                 return(RedirectToAction("Index"));
             }
         }
         else
         {
             return(View(info));
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #7
0
        public ActionResult Nuevo(ro_marcaciones_x_empleado_Info info)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    info.IdUsuario = Session["IdUsuario"].ToString();

                    info.IdEmpresa = GetIdEmpresa();
                    if (!bus_marcaciones.guardarDB(info))
                    {
                        cargar_combo();
                        return(View(info));
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    return(View(info));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #8
0
 public bool eliminarDB(ro_marcaciones_x_empleado_Info info)
 {
     try
     {
         return(odata.eliminarDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #9
0
 public bool modificarDB(ro_marcaciones_x_empleado_Info info)
 {
     try
     {
         info.IdCalendadrio = Convert.ToInt32(info.es_fechaRegistro.ToString("ddMMyyyy"));
         return(odata.modificarDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #10
0
        public void AddRow(ro_nomina_x_horas_extras_det_Info info_det, decimal IdTransaccionSession)
        {
            var IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);
            List <ro_nomina_x_horas_extras_det_Info> list = get_list(IdTransaccionSession);

            if (info_det.time_entrada1 != null && info_det.time_salida1 != null)
            {
                //var empleado = bus_empleado.get_info(IdEmpresa, info_det.IdEmpleado);
                var empleado = empleado_info_list.get_list(IdTransaccionSession).Where(v => v.IdEmpleado == info_det.IdEmpleado).FirstOrDefault();
                info_det.pe_nombreCompleto = empleado.Empleado;

                List <ro_marcaciones_x_empleado_Info> lista_marcacion = new List <ro_marcaciones_x_empleado_Info>();
                var info_entrada = new ro_marcaciones_x_empleado_Info
                {
                    IdEmpleado         = info_det.IdEmpleado,
                    IdEmpresa          = IdEmpresa,
                    es_fechaRegistro   = info_det.FechaRegistro,
                    IdCalendadrio      = Convert.ToInt32(info_det.FechaRegistro.ToString("ddMMyyyy")),
                    IdNomina           = empleado.IdTipoNomina,
                    IdUsuario          = SessionFixed.IdUsuario,
                    es_Hora            = new TimeSpan(info_det.time_entrada1_date.Hour, info_det.time_entrada1_date.Minute, 0),
                    IdTipoMarcaciones  = cl_enumeradores.eTipoMarcacionRRHH.IN1.ToString(),
                    pe_NombreCompleato = empleado.Empleado,
                    pe_cedula          = empleado.pe_cedulaRuc,
                    EstadoBool         = true,
                    //IdRegistro = cont++
                };
                lista_marcacion.Add(info_entrada);

                var info_salida = new ro_marcaciones_x_empleado_Info
                {
                    IdEmpleado         = info_det.IdEmpleado,
                    IdEmpresa          = IdEmpresa,
                    es_fechaRegistro   = info_det.FechaRegistro,
                    IdCalendadrio      = Convert.ToInt32(info_det.FechaRegistro.ToString("ddMMyyyy")),
                    IdNomina           = empleado.IdTipoNomina,
                    IdUsuario          = SessionFixed.IdUsuario,
                    es_Hora            = new TimeSpan(info_det.time_salida1_date.Hour, info_det.time_salida1_date.Minute, 0),
                    IdTipoMarcaciones  = cl_enumeradores.eTipoMarcacionRRHH.OUT1.ToString(),
                    pe_NombreCompleato = empleado.Empleado,
                    pe_cedula          = empleado.pe_cedulaRuc,
                    EstadoBool         = true,
                    //IdRegistro = cont++
                };
                lista_marcacion.Add(info_salida);

                if (bus_marcaciones.guardarDB(lista_marcacion, IdEmpresa))
                {
                    list.Add(info_det);
                }
            }
        }
コード例 #11
0
 private void gridViewMarcacion_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
 {
     try
     {
         Info = new ro_marcaciones_x_empleado_Info();
         Info = this.gridViewMarcacion.GetFocusedRow() as ro_marcaciones_x_empleado_Info;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
         Log_Error_bus.Log_Error(ex.ToString());
     }
 }
コード例 #12
0
        public bool getInfo()
        {
            try
            {
                ListMarc = new List <ro_marcaciones_x_empleado_Info>();
                foreach (var item in ListaMarcacionesExterna)
                {
                    int semana = 0;
                    if (item.Si_empleadoExisteBaseVZEN == true && item.check == true)
                    {
                        // creo el registro de ingreso

                        InfoCalendario = Bus_Calendario.Get_Info_Calendario(Convert.ToDateTime(item.es_fechaRegistro));

                        info                              = new ro_marcaciones_x_empleado_Info();
                        info.IdEmpresa                    = param.IdEmpresa;
                        info.IdRegistro                   = null;
                        info.IdEmpleado                   = item.IdEmpleado;
                        info.secuencia                    = 1;
                        info.es_Hora                      = item.HMarcacion;
                        info.es_fechaRegistro             = Convert.ToDateTime(item.es_fechaRegistro.ToString().Substring(0, 10));
                        info.es_anio                      = Convert.ToDateTime(item.es_fechaRegistro).Year;
                        info.es_mes                       = Convert.ToDateTime(item.es_fechaRegistro).Month;
                        info.es_dia                       = Convert.ToDateTime(item.es_fechaRegistro).Day;
                        info.es_semana                    = Convert.ToInt32(InfoCalendario.Semana_x_anio);
                        info.es_idDia                     = Convert.ToInt32(InfoCalendario.dia_x_mes);
                        info.es_sdia                      = InfoCalendario.NombreDia;
                        info.es_EsActualizacion           = "N";
                        info.IdTipoMarcaciones            = item.IdTipoMarcaciones;
                        info.IdTipoMarcaciones_Biometrico = item.IdTipoMarcaciones_Biometrico;
                        semana                            = Convert.ToDateTime(item.es_fechaRegistro).Month * 4;
                        info.es_semana                    = semana;
                        info.FechaUltimoCorte             = DtpFechaF.Value;
                        info.IdEquipo                     = Convert.ToInt32(cmbTipoEquipo.EditValue);
                        info.Observacion                  = "Importada desde el Sistema";
                        info.IdUsuario                    = param.IdUsuario;
                        info.Fecha_Transac                = DateTime.Now;
                        info.Estado                       = "A";
                        ListMarc.Add(info);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
                return(false);
            }
        }
コード例 #13
0
 public Boolean ModificarDB(ro_marcaciones_x_empleado_Info Info, string msj)
 {
     try
     {
         return(data.ModificarDB(Info, msj));
     }
     catch (Exception ex)
     {
         Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
         throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ModificarDB", ex.Message), ex)
               {
                   EntityType = typeof(ro_marcaciones_x_empleado_Bus)
               };
     }
 }
コード例 #14
0
 public ActionResult Nuevo()
 {
     try
     {
         ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info();
         info.es_fechaRegistro = DateTime.Now.Date;
         info.es_Hora          = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
         cargar_combo();
         return(View(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #15
0
        public void DeleteRow(int Secuencia, decimal IdTransaccionSession)
        {
            List <ro_nomina_x_horas_extras_det_Info> list = get_list(IdTransaccionSession);
            var info      = list.Where(m => m.Secuencia == Secuencia).FirstOrDefault();
            var marcacion = new ro_marcaciones_x_empleado_Info
            {
                IdCalendadrio = info.IdCalendario,
                IdEmpleado    = info.IdEmpleado,
            };

            if (bus_marcaciones.eliminarDB(marcacion))
            {
                list.Remove(list.Where(m => m.Secuencia == Secuencia).FirstOrDefault());
            }
        }
コード例 #16
0
 public Boolean GrabarDB(ro_marcaciones_x_empleado_Info Item, ref string IdRegistro, ref string mensaje)
 {
     try
     {
         return(data.GrabarDB(Item, ref IdRegistro, ref mensaje));
     }
     catch (Exception ex)
     {
         Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
         throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "GrabarDB", ex.Message), ex)
               {
                   EntityType = typeof(ro_marcaciones_x_empleado_Bus)
               };
     }
 }
コード例 #17
0
        public bool eliminarDB(ro_marcaciones_x_empleado_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    Context.Database.ExecuteSqlCommand("delete ro_marcaciones_x_empleado where IdEmpresa='" + info.IdEmpresa + "' and IdCalendadrio='" + info.IdCalendadrio + "'");
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #18
0
 public ActionResult Nuevo(ro_marcaciones_x_empleado_Info model)
 {
     model.detalle = detalle.get_list(model.IdTransaccionSession);
     if (model.detalle == null || model.detalle.Count() == 0)
     {
         ViewBag.mensaje = "No existe detalle para la novedad";
         cargar_combos();
         return(View(model));
     }
     model.IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);
     model.IdUsuario = SessionFixed.IdUsuario;
     if (!bus_marcaciones.guardarDB(model.detalle, model.IdEmpresa))
     {
         cargar_combos();
         return(View(model));
     }
     return(RedirectToAction("Index", "MarcacionEmpleado"));
 }
コード例 #19
0
        public ActionResult Nuevo()
        {
            try
            {
                ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info
                {
                    IdEmpresa        = Convert.ToInt32(SessionFixed.IdEmpresa),
                    es_fechaRegistro = DateTime.Now.Date,
                    es_Hora          = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second)
                };

                cargar_combo();
                return(View(info));
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #20
0
 public ActionResult Anular(ro_marcaciones_x_empleado_Info info)
 {
     try
     {
         if (!bus_marcaciones.anularDB(info))
         {
             cargar_combo();
             return(View(info));
         }
         else
         {
             return(RedirectToAction("Index"));
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #21
0
        public ro_marcaciones_x_empleado_Info get_info(int IdEmpresa, decimal IdEmpleado, decimal IdRegistro)
        {
            try
            {
                ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info();

                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_marcaciones_x_empleado Entity = Context.ro_marcaciones_x_empleado.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdEmpleado == IdEmpleado && q.IdRegistro == IdRegistro);
                    if (Entity == null)
                    {
                        return(null);
                    }

                    info = new ro_marcaciones_x_empleado_Info
                    {
                        IdEmpresa          = Entity.IdEmpresa,
                        IdEmpleado         = Entity.IdEmpleado,
                        IdCalendadrio      = Entity.IdCalendadrio,
                        IdTipoMarcaciones  = Entity.IdTipoMarcaciones,
                        IdNomina           = Entity.IdNomina,
                        IdPeriodo          = Entity.IdPeriodo,
                        es_Hora            = Entity.es_Hora,
                        es_fechaRegistro   = Entity.es_fechaRegistro,
                        es_anio            = Entity.es_anio,
                        es_mes             = Entity.es_mes,
                        es_sdia            = Entity.es_sdia,
                        es_dia             = Entity.es_dia,
                        es_EsActualizacion = Entity.es_EsActualizacion,
                        Observacion        = Entity.Observacion,
                        IdUsuario          = Entity.IdUsuario,
                        Estado             = Entity.Estado
                    };
                }

                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #22
0
        private Boolean  getInfo()
        {
            bool resultado = false;

            try
            {
                DateTime dt = new DateTime(0001, 1, 1);

                ListMarc = new List <ro_marcaciones_x_empleado_Info>();
                foreach (var item in BindListMarc)
                {
                    ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info();

                    // validacion para el ingreso de empleados con codigo biometrico
                    if (item.IdEmpleado != 0 && (item.IdTipoMarcaciones != "" || item.es_fechaRegistro != dt))
                    {
                        info.IdEmpleado = item.IdEmpleado;
                        info.IdEmpresa  = param.IdEmpresa;
                        DateTime fec = Convert.ToDateTime(item.es_fechaRegistro);
                        info.es_fechaRegistro             = fec;
                        info.es_anio                      = fec.Year;
                        info.es_dia                       = Convert.ToInt32(fec.DayOfWeek);
                        info.es_semana                    = semanadelaño(fec);
                        info.es_sdia                      = diacalendario(fec);
                        info.es_idDia                     = fec.Day;
                        info.es_mes                       = fec.Month;
                        info.es_EsActualizacion           = "N";
                        info.es_Hora                      = item.es_Hora;
                        info.IdTipoMarcaciones            = item.IdTipoMarcaciones;
                        info.IdTipoMarcaciones_Biometrico = item.IdTipoMarcaciones_Biometrico;

                        // Codigo IdRegistro
                        string   horas = Convert.ToString(info.es_Hora);
                        DateTime ho    = DateTime.Now;
                        TimeSpan horaa;

                        ho    = Convert.ToDateTime(horas);
                        horaa = ho.TimeOfDay;

                        TimeSpan ts = horaa;

                        int    Horas = ts.Hours;
                        string hora  = Convert.ToString(Horas);

                        int    Minutos = ts.Minutes;
                        string minuto  = Convert.ToString(Minutos);

                        int    Segundos = ts.Seconds;
                        string segundo  = Convert.ToString(Segundos);

                        int    d   = Convert.ToInt32(info.es_idDia);
                        string dia = Convert.ToString(d);

                        int    m   = Convert.ToInt32(info.es_mes);
                        string mes = Convert.ToString(m);

                        int    a    = Convert.ToInt32(info.es_anio);
                        string anio = Convert.ToString(a);

                        if (dia.Length == 1)
                        {
                            dia = "0" + dia;
                        }

                        if (mes.Length == 1)
                        {
                            mes = "0" + mes;
                        }

                        if (hora.Length == 1)
                        {
                            hora = "0" + hora;
                        }

                        if (minuto.Length == 1)
                        {
                            minuto = "0" + minuto;
                        }

                        if (segundo.Length == 1)
                        {
                            segundo = "0" + segundo;
                        }

                        info.IdRegistro = Convert.ToString(info.IdEmpleado) + anio + mes + dia + info.IdTipoMarcaciones + hora + minuto + segundo;
                        // Codigo IdRegistro
                        ListMarc.Add(info);
                    }
                }
                if (BindListMarc.Count < 1)
                {
                    MessageBox.Show("Por favor seleccione empleados para registrar las marcaciones");

                    return(false);
                }
                resultado = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
            }

            return(resultado);
        }
コード例 #23
0
        public void Get_Marcaciones()
        {
            try
            {
                lista_dias_falta    = new List <ro_DiasFaltados_x_Empleado_Info>();
                listado_marcaciones = new List <ro_marcaciones_x_empleado_Info>();
                foreach (var item in lista_emplados)
                {
                    if (item.CodCatalogo != null)
                    {
                        if (item.check == true)
                        {
                            ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info();
                            info.IdEmpresa                    = param.IdEmpresa;
                            info.IdEmpleado                   = item.IdEmpleado;
                            info.IdNomina_Tipo                = Convert.ToInt32(cmbnomina.EditValue);
                            info.IdRegistro                   = InfoCalendario.IdCalendario.ToString();
                            info.IdTipoMarcaciones            = "IN1";
                            info.secuencia                    = 1;
                            info.es_Hora                      = item.Info_marcaciones_x_empleado.es_Hora;
                            info.es_fechaRegistro             = Convert.ToDateTime(Convert.ToDateTime(dtp_es_fecha_registro.Value).ToShortDateString());
                            info.es_anio                      = Convert.ToDateTime(dtp_es_fecha_registro.Value).Year;
                            info.es_mes                       = Convert.ToDateTime(dtp_es_fecha_registro.Value).Month;
                            info.es_semana                    = InfoCalendario.Semana_x_anio;
                            info.es_dia                       = (int)Convert.ToDateTime(dtp_es_fecha_registro.Value).DayOfWeek;
                            info.es_idDia                     = (int)Convert.ToDateTime(dtp_es_fecha_registro.Value).DayOfWeek;
                            info.es_sdia                      = InfoCalendario.NombreDia;
                            info.es_EsActualizacion           = "N";
                            info.IdTipoMarcaciones_Biometrico = "IN1";
                            if (item.Observacion == null)
                            {
                                info.Observacion = "Importadas por proceso del sistema";
                            }

                            info.IdUsuario     = param.IdUsuario;
                            info.Estado        = "A";
                            info.Fecha_Transac = DateTime.Now;
                            info.IdPeriodo     = (dtp_es_fecha_registro.Value.Year * 100) + dtp_es_fecha_registro.Value.Month;

                            info.info_novedad_x_ingreso.IdEmpresa            = item.IdEmpresa;
                            info.info_novedad_x_ingreso.IdNomina_Tipo        = Convert.ToInt32(cmbnomina.EditValue);
                            info.info_novedad_x_ingreso.IdEmpleado           = item.IdEmpleado;
                            info.info_novedad_x_ingreso.IdTurno              = 1;
                            info.info_novedad_x_ingreso.es_jornada_desfasada = Convert.ToBoolean(item.Info_turno.es_jornada_desfasada);
                            info.info_novedad_x_ingreso.IdRegistro           = info.IdRegistro + "-" + "IdE" + "-" + item.IdEmpleado.ToString();
                            info.info_novedad_x_ingreso.es_fecha_registro    = Convert.ToDateTime(Convert.ToDateTime(dtp_es_fecha_registro.Value).ToShortDateString());
                            info.info_novedad_x_ingreso.Id_catalogo_Cat      = item.CodCatalogo;
                            info.info_novedad_x_ingreso.es_jornada_desfasada = Convert.ToBoolean(item.Info_turno.es_jornada_desfasada);
                            info.info_novedad_x_ingreso.IdTurno              = Convert.ToInt32(item.Info_turno.IdTurno);
                            info.info_novedad_x_ingreso.IdDisco              = item.Iddisco;
                            info.info_novedad_x_ingreso.IdRuta = item.IdRuta;
                            info.info_novedad_x_ingreso.IdSala = item.IdSala;
                            info.IdPeriodo = (dtp_es_fecha_registro.Value.Year * 100) + dtp_es_fecha_registro.Value.Month;
                            if (InfoCalendario.EsFeriado == "S")
                            {
                                info.info_novedad_x_ingreso.es_feriado = true;
                            }
                            else
                            {
                                info.info_novedad_x_ingreso.es_feriado = false;
                            }
                            info.info_novedad_x_ingreso.Observacion = item.Observacion;
                            listado_marcaciones.Add(info);


                            if (item.CodCatalogo == "FAL")
                            {
                                ro_DiasFaltados_x_Empleado_Info info_faltas = new ro_DiasFaltados_x_Empleado_Info();
                                double sueldoActual = 0;
                                sueldoActual = bus_emplaeado.GetSueldoActual(item.IdEmpresa, item.IdEmpleado);

                                info_faltas.IdEmpresa         = item.IdEmpresa;
                                info_faltas.IdNominaTipo      = 1;
                                info_faltas.IdNominaTipoLiq   = 2;
                                info_faltas.IdEmpleado        = Convert.ToInt32(item.IdEmpleado);
                                info_faltas.CodCatalogo       = "218";
                                info_faltas.FechaFaltaDesde   = dtp_es_fecha_registro.Value;
                                info_faltas.FechaFaltaHasta   = dtp_es_fecha_registro.Value;
                                info_faltas.DiasFaltados      = "1 Dia";
                                info_faltas.DiasDescuento     = 2;
                                info_faltas.FechaDescuentaRol = dtp_es_fecha_registro.Value;
                                info_faltas.ValorDescuentaRol = Convert.ToDecimal((sueldoActual / 30) * 2);
                                info_faltas.Observacion       = "Falta no justificada el " + dtp_es_fecha_registro.Value.ToString().Substring(0, 10);
                                info_faltas.estado            = "A";
                                info_faltas.IdUsuario         = param.IdUsuario;
                                info_faltas.Fecha_Transac     = DateTime.Now;
                                lista_dias_falta.Add(info_faltas);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
コード例 #24
0
        public Boolean pu_CalcularHorasExtras(int idEmpresa, decimal idEmpleado, int idNominaTipo, int idNominaTipoLiqui, int idPeriodo, DateTime fechaInicial, DateTime fechaFinal, Boolean acreditaRol)
        {
            try
            {
                //if (idEmpleado == 59)
                //{
                //}

                //JORNADA NOCTURNA
                TimeSpan inicioHora25 = TimeSpan.FromHours(19); //19:00 PM
                TimeSpan finalHora25  = TimeSpan.FromHours(6);  //06:00 AM

                //HORAS EXTRAS 50
                TimeSpan inicioHora50 = TimeSpan.FromHours(6);  //06:00 AM
                TimeSpan finalHora50  = TimeSpan.FromHours(24); //24:00 PM

                //HORAS EXTRAS 100
                TimeSpan inicioHora100 = TimeSpan.FromHours(0); //00:00 PM
                TimeSpan finalHora100  = TimeSpan.FromHours(6); //06:00 AM

                int     contadorIN     = 0;
                int     contadorOUT    = 0;
                Boolean banderaHorario = false;

                List <ro_Nomina_X_Horas_Extras_Info>  listado = new List <ro_Nomina_X_Horas_Extras_Info>();
                List <ro_marcaciones_x_empleado_Info> oListRo_marcaciones_x_empleado_Info = new List <ro_marcaciones_x_empleado_Info>();

                //OBTENER LA PLANIFICACION DE HORARIOS DEL EMPLEADO
                List <ro_horario_planificacion_Info> oListRo_horario_planificacion_Info = new List <ro_horario_planificacion_Info>();
                oListRo_horario_planificacion_Info = oRo_horario_planificacion_Bus.Get_List_horario_planificacion(idEmpresa, idEmpleado, fechaInicial, fechaFinal);

                //OBTENER LISTADO DE HORARIOS EN GENERAL
                List <ro_Horario_Info> oListRo_Horario_Info = new List <ro_Horario_Info>();
                oListRo_Horario_Info = oRo_Horario_Bus.Get_List_Horario(idEmpresa);

                //RECORRE LA PLANIFICACION DE HORARIOS DEL EMPLEADO - DIA X DIA
                foreach (ro_horario_planificacion_Info horarioEmpleado in oListRo_horario_planificacion_Info)
                {
                    ro_Nomina_X_Horas_Extras_Info info = new ro_Nomina_X_Horas_Extras_Info();

                    double horaExtra25   = 0;
                    double horaExtra50   = 0;
                    double horaExtra100  = 0;
                    double horaAtraso    = 0;
                    double horaTemprano  = 0;
                    double horaTrabajada = 0;

                    TimeSpan horaEntrada1 = new TimeSpan();
                    TimeSpan horaSalida1  = new TimeSpan();
                    TimeSpan horaEntrada2 = new TimeSpan();
                    TimeSpan horaSalida2  = new TimeSpan();

                    TimeSpan unDia = TimeSpan.FromHours(24);   //24:00 PM

                    //OBTIENE LOS DATOS DEL HORARIO DEL EMPLEADO
                    ro_Horario_Info horarioActual = oListRo_Horario_Info.Where(v => v.IdHorario == horarioEmpleado.IdHorario).FirstOrDefault();

                    //COMBINO FECHA + HORA
                    string subcadena = horarioEmpleado.IdCalendario.ToString();

                    int YYYY = Convert.ToInt32(subcadena.Substring(0, 4));
                    int mm   = Convert.ToInt32(subcadena.Substring(4, 2));
                    int dd   = Convert.ToInt32(subcadena.Substring(6, 2));

                    DateTime f1 = new DateTime(YYYY, mm, dd);
                    DateTime f2 = new DateTime(YYYY, mm, dd);

                    DateTime fechaMarcacionInicial = new DateTime(YYYY, mm, dd);
                    DateTime fechaMarcacionFinal   = new DateTime(YYYY, mm, dd);


                    //AGREGA LOS TIEMPOS
                    f1 = f1.Add((TimeSpan)horarioActual.InicioEntrada);
                    f2 = f2.Add((TimeSpan)horarioActual.FinalSalida);


                    //VERIFICAR HORARIO DEL MISMO DIA VS. HORARIO DEL DIA SIGUIENTE
                    if (horarioActual.HoraIni <= horarioActual.HoraFin)  //CORRESPONDE AL MISMO DIA
                    {
                        banderaHorario = false;
                    }
                    else      //CORRESPONDE A PARTE DEL MISMO DIA, Y PARTE DEL DIA SIGUIENTE
                    {
                        f2             = f2.AddDays(1);
                        banderaHorario = true;
                    }



                    //AQUI DEBE VERIFICAR SI TIENE VARIOS TURNOS EN EL MISMO DIA - MODALIDAD DE TURNOS DOBLES


                    if (oRo_horario_planificacion_Bus.GetVerificarDobleTurno(horarioEmpleado.IdEmpresa, horarioEmpleado.IdEmpleado, horarioEmpleado.IdCalendario, ref mensaje))
                    {
                        fechaMarcacionInicial = fechaMarcacionInicial.Add((TimeSpan)horarioActual.InicioEntrada);
                        fechaMarcacionFinal   = fechaMarcacionFinal.Add((TimeSpan)horarioActual.InicioEntrada).AddHours(11);
                    }
                    else
                    {
                        fechaMarcacionInicial = fechaMarcacionInicial.Add((TimeSpan)horarioActual.InicioEntrada);
                        fechaMarcacionFinal   = fechaMarcacionFinal.Add((TimeSpan)horarioActual.InicioEntrada).AddHours(12);
                    }



                    //OBTENER LAS MARCACIONES DEL EMPLEADO EN LA FECHA CORRESPONDIENTE
                    oListRo_marcaciones_x_empleado_Info = oRo_marcaciones_x_empleado_Bus.Get_List_marcaciones_x_empleado(idEmpresa, idEmpleado, fechaMarcacionInicial, fechaMarcacionFinal);


                    ro_marcaciones_x_empleado_Info info_entrada = new ro_marcaciones_x_empleado_Info();
                    ro_marcaciones_x_empleado_Info info_salida  = new ro_marcaciones_x_empleado_Info();
                    // si marco mas de una vez
                    try
                    {
                        info_entrada = oListRo_marcaciones_x_empleado_Info.Where(v => v.IdTipoMarcaciones == "IN").FirstOrDefault();
                    }
                    catch (Exception)
                    {
                    }
                    try
                    {
                        info_salida = oListRo_marcaciones_x_empleado_Info.Where(v => v.IdTipoMarcaciones == "OUT").FirstOrDefault();
                    }
                    catch (Exception)
                    {
                    }

                    oListRo_marcaciones_x_empleado_Info = new List <ro_marcaciones_x_empleado_Info>();
                    if (info_entrada != null)
                    {
                        oListRo_marcaciones_x_empleado_Info.Add(info_entrada);
                    }
                    if (info_salida != null)
                    {
                        oListRo_marcaciones_x_empleado_Info.Add(info_salida);
                    }

                    contadorIN  = 0;
                    contadorOUT = 0;


                    //RECORRER EL LISTADO DE MARCACIONES OBTENIDO
                    foreach (var item in oListRo_marcaciones_x_empleado_Info)
                    {
                        // cambio por tolerancia de horas y minutos Carlos cedeño


                        // este cambio es exclusivo para edehsa aqui revisar con el sensei como se puede hacer


                        // este cambio es exclusivo para edehsa aqui revisar con el sensei como se puede hacer
                        if (item.IdTipoMarcaciones == "IN")
                        {
                            if (item.es_Hora > horarioActual.InicioEntrada)
                            {
                                item.es_Hora = (TimeSpan)horarioActual.InicioEntrada;
                            }
                        }



                        // horarioActual


                        if (item.IdTipoMarcaciones == "OUT")
                        {
                            if (horarioActual.Tolerancia_Hora != null && horarioActual.Tolerancia_Minuto != null)
                            {
                                int hora   = Convert.ToInt32(item.es_Hora.ToString().Substring(0, 2));
                                int minuto = Convert.ToInt32(item.es_Hora.ToString().Substring(3, 2));
                                if (minuto < horarioActual.Tolerancia_Minuto)
                                {
                                    minuto = 0;
                                }

                                if (minuto < horarioActual.Tolerancia_Hora && minuto > horarioActual.Tolerancia_Minuto)
                                {
                                    minuto = 30;
                                }

                                if (minuto > horarioActual.Tolerancia_Hora)
                                {
                                    hora   = hora + 1;
                                    minuto = 0;
                                }

                                item.es_Hora = new TimeSpan(hora, minuto, 0);
                            }
                        }



                        if (item.IdTipoMarcaciones == "IN")
                        {
                            contadorIN++;
                        }
                        else
                        {
                            if (item.IdTipoMarcaciones == "OUT")
                            {
                                contadorOUT++;
                            }
                        }



                        //ENTRADAS
                        if (contadorIN == 1 && contadorOUT == 0)
                        {
                            horaEntrada1 = (TimeSpan)item.es_Hora;
                            horaEntrada2 = (TimeSpan)item.es_Hora;
                        }
                        else
                        {
                            if (contadorIN == 2)
                            {
                                horaEntrada2 = (TimeSpan)item.es_Hora;
                                contadorIN++;
                            }
                        }



                        //SALIDAS
                        if (contadorOUT == 1 && contadorIN <= 2)
                        {
                            horaSalida1 = (TimeSpan)item.es_Hora;
                            horaSalida2 = (TimeSpan)item.es_Hora;
                        }
                        else
                        {
                            if (contadorOUT == 2)
                            {
                                horaSalida2 = (TimeSpan)item.es_Hora;
                                contadorOUT++;
                            }
                        }
                    }



                    //PROCESAR HORAS EXTRAS
                    info.IdEmpresa         = idEmpresa;
                    info.IdEmpleado        = idEmpleado;
                    info.IdCalendario      = horarioEmpleado.IdCalendario;
                    info.IdNominaTipo      = idNominaTipo;
                    info.IdNominaTipoLiqui = idNominaTipoLiqui;
                    info.IdPeriodo         = idPeriodo;
                    info.IdHorario         = horarioActual.IdHorario;

                    ///AQUI REVISAR PARA LOS TURNOS DOBLES
                    info.IdTurno = horarioEmpleado.IdRegistro;

                    info.FechaRegistro = Convert.ToDateTime(f1.ToShortDateString());

                    info.time_entrada1 = horaEntrada1;
                    info.time_entrada2 = horaEntrada2;
                    info.time_salida1  = horaSalida1;
                    info.time_salida2  = horaSalida2;

                    //CALCULA HORAS DE ATRASO
                    if (horaEntrada1 > (TimeSpan)horarioActual.FinalEntrada)
                    {
                        horaAtraso  = (horaEntrada1 - (TimeSpan)horarioActual.HoraIni).TotalHours;          //TOTAL DE HORAS DE ATRASO
                        horaSalida2 = horaSalida2.Subtract(horaEntrada1 - (TimeSpan)horarioActual.HoraIni); // AQUI SE RESTA EL ATRASO A LA HORA DE SALIDA
                    }


                    int dia_semana = ((int)f1.DayOfWeek == 0) ? 7 : (int)f1.DayOfWeek;

                    if (dia_semana >= 1 && dia_semana <= 5)    //VERIFICA QUE LOS DIAS DE TRABAJO SON DE LUNES A VIERNES
                    {
                        //VERIFICA QUE TURNO TIENE EL EMPLEADO (DIURNO - NOCTURNO)
                        if (banderaHorario == false)//TURNO DIURNO
                        {
                            //CALCULA SALIDAS TEMPRANO
                            if (horaSalida2 < (TimeSpan)horarioActual.HoraFin && horaSalida2 > (TimeSpan)horarioActual.InicioEntrada)
                            {
                                horaTemprano = ((TimeSpan)horarioActual.HoraFin - horaSalida2).TotalHours;
                            }


                            //CALCULA LAS HORAS TRABAJADAS
                            if (horaSalida2 >= horaEntrada1)
                            {
                                if (horaSalida1 > horaEntrada1 && horaSalida1 < horaEntrada2)
                                {
                                    horaTrabajada = (horaSalida1 - horaEntrada1).TotalHours + (horaSalida2 - horaEntrada2).TotalHours;
                                }
                                else
                                {
                                    horaTrabajada = (horaSalida2 - horaEntrada1).TotalHours;
                                }
                            }
                            else
                            {
                                if (horaSalida1 > horaEntrada1 && horaSalida1 < horaEntrada2)
                                {
                                    horaTrabajada = (horaSalida1 - horaEntrada1).TotalHours + (unDia - horaEntrada2).TotalHours + horaSalida2.TotalHours;
                                }
                                else
                                {
                                    horaTrabajada = (unDia - horaEntrada1).TotalHours + horaSalida2.TotalHours;
                                }
                            }

                            if (horaTrabajada > 0)
                            {
                                //VERIFICA QUE LA SALIDA CORRESPONDA A HORAS EXTRAS DEL MISMO DIA
                                if (horaSalida2 > (TimeSpan)horarioActual.FinalSalida && horaSalida2 > horaEntrada1)
                                {
                                    //VERIFICA SI TIENE HORAS EXTRAS 100
                                    if (horaSalida2 > inicioHora100 && horaSalida2 <= finalHora100)
                                    {
                                        horaExtra100 = (horaSalida2 - finalHora100).TotalHours; //TOTAL DE HORAS EXTRAS 100
                                    }
                                    else
                                    {
                                        //VERIFICA SI TIENE HORAS EXTRAS 50%
                                        if (horaSalida2 > inicioHora50 && horaSalida2 < finalHora50)
                                        {
                                            horaExtra50 = (horaSalida2 - (TimeSpan)horarioActual.FinalSalida).TotalHours; //TOTAL DE HORAS EXTRAS 50%
                                        }
                                    }
                                }
                                else
                                {
                                    if (horaSalida2 < (TimeSpan)horarioActual.InicioEntrada)
                                    {
                                        horaExtra50  = (finalHora50 - (TimeSpan)horarioActual.FinalSalida).TotalHours; //TOTAL DE HORAS EXTRAS 50%
                                        horaExtra100 = (horaSalida2 - inicioHora100).TotalHours;                       //TOTAL DE HORAS EXTRAS 100
                                    }
                                }
                            }
                        }
                        else
                        { //***********************************TURNO NOCTURNO*****************************************
                            //CALCULA SALIDAS TEMPRANO
                            if (horaSalida2 < (TimeSpan)horarioActual.HoraFin && (unDia + horaSalida2) > (TimeSpan)horarioActual.InicioEntrada)
                            {
                                horaTemprano = ((TimeSpan)horarioActual.HoraFin - horaSalida2).TotalHours;

                                if (horaEntrada1.TotalHours == 0 && horaEntrada2.TotalHours == 0)
                                {
                                    horaTemprano = 0;
                                }
                            }


                            //VERIFICA SI ES JORNADA NOCTURNA
                            if (horaEntrada1 >= inicioHora25 && horaEntrada1 <= (unDia + finalHora25) && banderaHorario)
                            {
                                //horaExtra25 = (horaSalida2 - finalHora25).Hours; //TOTAL DE HORAS DE JORNADA NOCTURNA
                                horaExtra25 = ((unDia + horaSalida2) - horaEntrada1).TotalHours; //TOTAL DE HORAS DE JORNADA NOCTURNA

                                if (horaExtra25 > 8)
                                {
                                    horaExtra25 = 8;
                                }
                            }


                            //CALCULO DE HORAS EXTRAS
                            if (horaSalida2 > horaEntrada1 && horaSalida2 < finalHora50)
                            {
                                horaTrabajada = (horaSalida2.TotalHours - horaEntrada1.TotalHours);
                            }
                            else
                            {
                                if (horaSalida2 > inicioHora100)
                                {
                                    horaTrabajada = (unDia + horaSalida2).TotalHours - horaEntrada1.TotalHours;


                                    if (horaSalida2 > (TimeSpan)horarioActual.HoraFin && horaSalida2 <= finalHora100)
                                    {
                                        horaExtra100 = (horaSalida2 - (TimeSpan)horarioActual.HoraFin).TotalHours;
                                    }
                                    else
                                    {
                                        if (horaSalida2 > (TimeSpan)horarioActual.HoraFin && horaSalida2 > inicioHora50 && horaSalida2 <= finalHora50)
                                        {
                                            horaExtra100 = (inicioHora50 - (TimeSpan)horarioActual.HoraFin).TotalHours;
                                            horaExtra50  = (horaSalida2 - inicioHora50).TotalHours;
                                        }
                                    }
                                }
                            }
                        } //CIERRE TURNO NOCTURNO
                    }
                    else
                    {
                        if (dia_semana == 6 | dia_semana == 7) //REPRESENTA SABADO Y DOMINGO
                        {
                            if (horaEntrada1 != horaSalida2)
                            {
                                //CALCULO DE HORAS EXTRAS
                                if (dia_semana == 6)//SOLO SABADO
                                {
                                    if (horaSalida2 > (TimeSpan)horarioActual.HoraIni && horaSalida2 < finalHora50)
                                    {
                                        horaExtra100 = (horaSalida2 - (TimeSpan)horarioActual.HoraIni).TotalHours;

                                        //CALCULA LA SALIDA TEMPRANA
                                        if (horaSalida2.TotalHours < (unDia + (TimeSpan)horarioActual.FinalSalida).TotalHours)
                                        {
                                            horaTemprano = ((unDia + (TimeSpan)horarioActual.FinalSalida) - horaSalida2).TotalHours;
                                        }

                                        //CALCULA HORAS TRABAJADAS
                                        horaTrabajada = (horaSalida2 - horaEntrada1).TotalHours;
                                    }
                                    else
                                    {
                                        if (horaSalida2.Hours > 0)
                                        {
                                            horaExtra100 = ((unDia + horaSalida2) - (TimeSpan)horarioActual.HoraIni).TotalHours;
                                        }

                                        Info_dias = List_dias.Where(v => v.Id_dia == 6).FirstOrDefault();
                                        if (Convert.ToInt32(horaExtra100) > Info_dias.sdia_completo_a_partir_de && horaExtra100 <= 8)
                                        {
                                            horaExtra100 = 8;
                                        }

                                        //CALCULA LA SALIDA TEMPRANA
                                        if (horaSalida2 < (TimeSpan)horarioActual.HoraFin)
                                        {
                                            horaTemprano = ((TimeSpan)horarioActual.HoraFin - horaSalida2).TotalHours;
                                        }


                                        //CALCULA HORAS TRABAJADAS
                                        horaTrabajada = ((unDia + horaSalida2) - horaEntrada1).TotalHours;
                                    }
                                }
                                else
                                {
                                    if (dia_semana == 7)                                                                //SOLO DOMINGO
                                    {
                                        if (horaSalida2 > (TimeSpan)horarioActual.HoraIni && horaSalida2 < finalHora50) //SALIDA ANTES DE LAS 24h00
                                        {
                                            horaExtra100 = (horaSalida2 - (TimeSpan)horarioActual.HoraIni).TotalHours;


                                            Info_dias = List_dias.Where(v => v.Id_dia == 7).FirstOrDefault();
                                            if (Convert.ToInt32(horaExtra100) > Info_dias.sdia_completo_a_partir_de && horaExtra100 <= 8)
                                            {
                                                horaExtra100 = 8;
                                            }

                                            //CALCULA LA SALIDA TEMPRANA
                                            if (horaSalida2 < (TimeSpan)horarioActual.FinalSalida)
                                            {
                                                horaTemprano = ((TimeSpan)horarioActual.FinalSalida - (horaSalida2)).TotalHours;
                                            }

                                            //CALCULA HORAS TRABAJADAS
                                            horaTrabajada = (horaSalida2 - horaEntrada1).TotalHours;
                                        }
                                        else
                                        { //SALIDA DESPUES DE LAS 24h00
                                        }
                                    }
                                }
                            }
                        }
                    }//CIERRE DIA DE LA SEMANA


                    //VERIFICA SI EL EMPLEADO ESTA AUTORIZADO PARA COBRAR HORAS EXTRAS

                    if (acreditaRol)
                    {
                        info.hora_extra25  = horaExtra25;
                        info.hora_extra50  = horaExtra50;
                        info.hora_extra100 = horaExtra100;
                    }
                    else
                    {
                        info.hora_extra25  = 0;
                        info.hora_extra50  = 0;
                        info.hora_extra100 = 0;
                    }


                    info.hora_atraso    = horaAtraso;
                    info.hora_atraso    = 0;
                    info.hora_temprano  = horaTemprano;
                    info.hora_trabajada = horaTrabajada;


                    GuardarBD(info, ref mensaje);
                }

                return(true);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "pu_CalcularHorasExtras", ex.Message), ex)
                      {
                          EntityType = typeof(ro_Nomina_X_Horas_Extras_Bus)
                      };
            }
        }
コード例 #25
0
        public static void FileUploadComplete_marcaciones(object sender, DevExpress.Web.FileUploadCompleteEventArgs e)
        {
            int cont = 0;
            ro_empleado_info_list empleado_info_list = new ro_empleado_info_list();
            ro_marcaciones_x_empleado_detLis_Info EmpleadoNovedadCargaMasiva_detLis_Info = new ro_marcaciones_x_empleado_detLis_Info();
            List <ro_marcaciones_x_empleado_Info> lista_novedades = new List <ro_marcaciones_x_empleado_Info>();
            decimal IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual);

            Stream stream = new MemoryStream(e.UploadedFile.FileBytes);

            if (stream.Length > 0)
            {
                IExcelDataReader reader = null;
                reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                DateTime Fecha_registro;
                DateTime marcacion;
                while (reader.Read())
                {
                    if (!reader.IsDBNull(0))
                    {
                        if (cont != 0)
                        {
                            string cedua    = reader.GetString(0);
                            var    empleado = empleado_info_list.get_list(IdTransaccionSession).Where(v => v.pe_cedulaRuc == cedua).FirstOrDefault();
                            if (empleado != null)
                            {
                                if (!reader.IsDBNull(2))// si tiene fehca de marcacion
                                {
                                    Fecha_registro = Convert.ToDateTime(reader.GetDateTime(2));
                                    if (!reader.IsDBNull(3))// si tiene entrada del primer turno
                                    {
                                        marcacion = Convert.ToDateTime(reader.GetValue(3));
                                        if (marcacion.Hour != 0)
                                        {
                                            ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info
                                            {
                                                IdEmpleado       = empleado.IdEmpleado,
                                                IdEmpresa        = empleado.IdEmpresa,
                                                es_fechaRegistro = Fecha_registro,

                                                IdCalendadrio      = Convert.ToInt32(Fecha_registro.ToString("ddMMyyyy")),
                                                IdNomina           = empleado.IdTipoNomina,
                                                IdUsuario          = SessionFixed.IdUsuario,
                                                es_Hora            = new TimeSpan(marcacion.Hour, marcacion.Minute, 0),
                                                IdTipoMarcaciones  = cl_enumeradores.eTipoMarcacionRRHH.IN1.ToString(),
                                                pe_NombreCompleato = empleado.Empleado,
                                                pe_cedula          = cedua,
                                                EstadoBool         = true,
                                                IdRegistro         = cont++
                                            };
                                            lista_novedades.Add(info);
                                        }
                                    }


                                    if (!reader.IsDBNull(4))// si tiene salida del primer turno
                                    {
                                        marcacion = Convert.ToDateTime(reader.GetValue(4));
                                        if (marcacion.Hour != 0)
                                        {
                                            ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info
                                            {
                                                IdEmpleado         = empleado.IdEmpleado,
                                                IdEmpresa          = empleado.IdEmpresa,
                                                es_fechaRegistro   = Fecha_registro,
                                                IdCalendadrio      = Convert.ToInt32(Fecha_registro.ToString("ddMMyyyy")),
                                                IdNomina           = empleado.IdTipoNomina,
                                                IdUsuario          = SessionFixed.IdUsuario,
                                                es_Hora            = new TimeSpan(marcacion.Hour, marcacion.Minute, 0),
                                                IdTipoMarcaciones  = cl_enumeradores.eTipoMarcacionRRHH.OUT1.ToString(),
                                                pe_NombreCompleato = empleado.Empleado,
                                                pe_cedula          = cedua,
                                                EstadoBool         = true,
                                                IdRegistro         = cont++
                                            };
                                            lista_novedades.Add(info);
                                        }
                                    }

                                    if (!reader.IsDBNull(5))// si tiene entrada del segundo turno
                                    {
                                        marcacion = Convert.ToDateTime(reader.GetValue(5));
                                        if (marcacion.Hour != 0)
                                        {
                                            ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info
                                            {
                                                IdEmpleado         = empleado.IdEmpleado,
                                                IdEmpresa          = empleado.IdEmpresa,
                                                es_fechaRegistro   = Fecha_registro,
                                                IdCalendadrio      = Convert.ToInt32(Fecha_registro.ToString("ddMMyyyy")),
                                                IdNomina           = empleado.IdTipoNomina,
                                                IdUsuario          = SessionFixed.IdUsuario,
                                                es_Hora            = new TimeSpan(marcacion.Hour, marcacion.Minute, 0),
                                                IdTipoMarcaciones  = cl_enumeradores.eTipoMarcacionRRHH.IN2.ToString(),
                                                pe_NombreCompleato = empleado.Empleado,
                                                pe_cedula          = cedua,
                                                EstadoBool         = true,
                                                IdRegistro         = cont++
                                            };
                                            lista_novedades.Add(info);
                                        }
                                    }


                                    if (reader.IsDBNull(6))// si tiene salida del segundo turno
                                    {
                                        marcacion = Convert.ToDateTime(reader.GetValue(6));
                                        if (marcacion.Hour != 0)
                                        {
                                            ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info
                                            {
                                                IdEmpleado       = empleado.IdEmpleado,
                                                IdEmpresa        = empleado.IdEmpresa,
                                                es_fechaRegistro = Fecha_registro,

                                                IdCalendadrio      = Convert.ToInt32(Fecha_registro.ToString("ddMMyyyy")),
                                                IdNomina           = empleado.IdTipoNomina,
                                                IdUsuario          = SessionFixed.IdUsuario,
                                                es_Hora            = new TimeSpan(marcacion.Hour, marcacion.Minute, 0),
                                                IdTipoMarcaciones  = cl_enumeradores.eTipoMarcacionRRHH.OUT2.ToString(),
                                                pe_NombreCompleato = empleado.Empleado,
                                                pe_cedula          = cedua,
                                                EstadoBool         = true,
                                                IdRegistro         = cont++
                                            };
                                            lista_novedades.Add(info);
                                        }
                                    }
                                }
                            }
                        }
                        cont++;
                    }
                }
                EmpleadoNovedadCargaMasiva_detLis_Info.set_list(lista_novedades, Convert.ToDecimal(SessionFixed.IdTransaccionSession));
            }
        }
コード例 #26
0
        public void Get_Marcaciones()
        {
            try
            {
                dtp_es_fecha_registro.Focus();
                lista_dias_falta    = new List <ro_DiasFaltados_x_Empleado_Info>();
                listado_marcaciones = new List <ro_marcaciones_x_empleado_Info>();
                foreach (var item in lista_emplados.Where(v => v.check == true))
                {
                    if (item.CodCatalogo != null)
                    {
                        ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info();
                        info.IdEmpresa                    = param.IdEmpresa;
                        info.IdEmpleado                   = item.IdEmpleado;
                        info.IdNomina_Tipo                = Convert.ToInt32(cmbnomina.EditValue);
                        info.IdNomina_Tipo                = Convert.ToInt32(cmbnomina.EditValue);
                        info.IdRegistro                   = InfoCalendario.IdCalendario.ToString();
                        info.IdTipoMarcaciones            = "IN1";
                        info.secuencia                    = 1;
                        info.es_Hora                      = item.Info_marcaciones_x_empleado.es_Hora;
                        info.es_fechaRegistro             = Convert.ToDateTime(Convert.ToDateTime(dtp_es_fecha_registro.Value).ToShortDateString());
                        info.es_anio                      = Convert.ToDateTime(dtp_es_fecha_registro.Value).Year;
                        info.es_mes                       = Convert.ToDateTime(dtp_es_fecha_registro.Value).Month;
                        info.es_semana                    = InfoCalendario.Semana_x_anio;
                        info.es_dia                       = (int)Convert.ToDateTime(dtp_es_fecha_registro.Value).DayOfWeek;
                        info.es_idDia                     = (int)Convert.ToDateTime(dtp_es_fecha_registro.Value).DayOfWeek;
                        info.es_sdia                      = InfoCalendario.NombreDia;
                        info.es_EsActualizacion           = "N";
                        info.IdTipoMarcaciones_Biometrico = "IN1";
                        if (item.Observacion == null)
                        {
                            info.Observacion = "Importadas por proceso del sistema";
                        }

                        info.IdUsuario     = param.IdUsuario;
                        info.Estado        = "A";
                        info.Fecha_Transac = DateTime.Now;
                        info.IdPeriodo     = (dtp_es_fecha_registro.Value.Year * 100) + dtp_es_fecha_registro.Value.Month;

                        info.info_novedad_x_ingreso.IdEmpresa            = item.IdEmpresa;
                        info.info_novedad_x_ingreso.IdNomina_Tipo        = Convert.ToInt32(cmbnomina.EditValue);
                        info.info_novedad_x_ingreso.IdEmpleado           = item.IdEmpleado;
                        info.info_novedad_x_ingreso.IdTurno              = Convert.ToInt32(item.Info_turno.IdTurno);
                        info.info_novedad_x_ingreso.es_jornada_desfasada = Convert.ToBoolean(item.Info_turno.es_jornada_desfasada);
                        info.info_novedad_x_ingreso.IdRegistro           = info.IdRegistro + "-" + "IdE" + "-" + item.IdEmpleado.ToString();
                        info.info_novedad_x_ingreso.es_fecha_registro    = Convert.ToDateTime(Convert.ToDateTime(dtp_es_fecha_registro.Value).ToShortDateString());
                        info.info_novedad_x_ingreso.Id_catalogo_Cat      = item.CodCatalogo;
                        info.info_novedad_x_ingreso.es_jornada_desfasada = Convert.ToBoolean(item.Info_turno.es_jornada_desfasada);
                        info.info_novedad_x_ingreso.IdTurno              = Convert.ToInt32(item.Info_turno.IdTurno);
                        info.info_novedad_x_ingreso.IdDisco              = item.Iddisco;
                        info.info_novedad_x_ingreso.IdRuta = item.IdRuta;
                        info.info_novedad_x_ingreso.IdSala = item.IdSala;
                        info.IdPeriodo = (dtp_es_fecha_registro.Value.Year * 100) + dtp_es_fecha_registro.Value.Month;
                        if (InfoCalendario.EsFeriado == "S")
                        {
                            info.info_novedad_x_ingreso.es_feriado = true;
                        }
                        else
                        {
                            info.info_novedad_x_ingreso.es_feriado = false;
                        }
                        info.info_novedad_x_ingreso.Observacion = item.Observacion;
                        listado_marcaciones.Add(info);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }