Пример #1
0
        public int GenerarControlHueso(CONTROL_HUESO doControl)
        {
            using (ASIS_PRODEntities entities = new ASIS_PRODEntities())
            {
                clsDAsistencia = new clsDAsistencia();
                List <spConsultaMovimientoPersonalDiario> detalle = null;

                var ControlHueso = entities.CONTROL_HUESO.FirstOrDefault(x =>
                                                                         x.Linea == doControl.Linea &&
                                                                         x.HoraFin == doControl.HoraFin &&
                                                                         x.HoraInicio == doControl.HoraInicio &&
                                                                         x.Fecha == doControl.Fecha &&
                                                                         x.Linea == doControl.Linea &&
                                                                         ((doControl.Turno == clsAtributos.TurnoUno && (x.Turno == clsAtributos.TurnoUno || x.Turno == null)) ||
                                                                          (doControl.Turno == clsAtributos.TurnoDos && x.Turno == doControl.Turno))
                                                                         // && x.Turno==doControl.Turno
                                                                         && x.TipoControlHueso == doControl.TipoControlHueso &&
                                                                         x.EstadoRegistro == clsAtributos.EstadoRegistroActivo);
                if (ControlHueso == null)
                {
                    if (doControl.TipoControlHueso == clsAtributos.Hueso || doControl.TipoControlHueso == clsAtributos.Roto)
                    {
                        TimeSpan HoraIni = new TimeSpan(doControl.HoraInicio.Hour, doControl.HoraInicio.Minute, 0);
                        detalle = clsDAsistencia.ConsultaMovimientoPersonalDiario(doControl.HoraInicio, HoraIni, doControl.Linea, doControl.Turno).Where(x => x.CodCargo == clsAtributos.CargoLimpiadora).ToList();
                        foreach (var x in detalle)
                        {
                            doControl.CONTROL_HUESO_DETALLE.Add(new CONTROL_HUESO_DETALLE
                            {
                                CantidadHueso      = 0,
                                Cedula             = x.Cedula,
                                EstadoRegistro     = clsAtributos.EstadoRegistroActivo,
                                FechaIngresoLog    = DateTime.Now,
                                UsuarioIngresoLog  = doControl.UsuarioIngresoLog,
                                TerminalIngresoLog = doControl.TerminalIngresoLog
                            });
                        }
                    }
                    entities.CONTROL_HUESO.Add(doControl);
                    entities.SaveChanges();
                    return(doControl.IdControlHueso);
                }
                else
                {
                    return(0);
                }
            }
        }
Пример #2
0
        public string GuardarControlToallaCab(int?Id, string Turno, DateTime?Fecha, DateTime?Hora, string Linea, string Observacion, string psterminal, string psusuario, string estadoRegistro)
        {
            using (ASIS_PRODEntities db = new ASIS_PRODEntities())
            {
                if (estadoRegistro == clsAtributos.EstadoRegistroActivo && Id == null)
                {
                    var buscarregistroToalla = db.CONTROL_TOALLA.Where(x => x.Fecha == Fecha && x.Turno == Turno && x.Linea == Linea && x.Hora == Hora && x.EstadoRegistro == clsAtributos.EstadoRegistroActivo).FirstOrDefault();
                    if (buscarregistroToalla == null)
                    {
                        List <DETALLE_CONTROL_TOALLA>             ListEmpleado = new List <DETALLE_CONTROL_TOALLA>();
                        List <spConsultaMovimientoPersonalDiario> Empleados    = new List <spConsultaMovimientoPersonalDiario>();
                        clsDAsistencia = new clsDAsistencia();
                        //if (Linea == "52") //linea 52=pouch
                        //{
                        //    Empleados = clsDAsistencia.ConsultaMovimientoPersonalDiario(Fecha.Value, Hora.Value, Linea).Where(
                        //    x => new string[7] { "133", "143", "258", "138", "126", "119", "147" }.Contains(x.CodCargo)).ToList();
                        //}
                        //else
                        //{
                        Empleados = clsDAsistencia.ConsultaMovimientoPersonalDiario(Hora.Value, Hora.Value.TimeOfDay.Add(new TimeSpan(0, 15, 0)), Linea, Turno).Where(x => x.Turno == Turno).ToList();
                        //}

                        //var Empleados = clsDAsistencia.ConsultaMovimientoPersonalDiario(Convert.ToDateTime("2020-01-10"), TimeSpan.Parse("07:00"), "05").ToList();

                        foreach (var item in Empleados)
                        {
                            ListEmpleado.Add(new DETALLE_CONTROL_TOALLA {
                                Cedula = item.Cedula, UsuarioCreacionLog = psusuario, TerminalCreacionLog = psterminal, FechaCreacionLog = DateTime.Now, EstadoRegistro = clsAtributos.EstadoRegistroActivo
                            });
                        }
                        db.CONTROL_TOALLA.Add(new CONTROL_TOALLA
                        {
                            FechaCreacionLog       = DateTime.Now,
                            Fecha                  = Fecha,
                            EstadoRegistro         = estadoRegistro,
                            Hora                   = Hora,
                            Linea                  = Linea,
                            Observacion            = Observacion,
                            TerminalCreacionLog    = psterminal,
                            Turno                  = Turno,
                            UsuarioCreacionLog     = psusuario,
                            DETALLE_CONTROL_TOALLA = ListEmpleado
                        });
                        db.SaveChanges();
                        return("Registro guardado con éxito");
                    }
                    else
                    {
                        return("999"); //ya existe el registro
                    }
                }
                if (estadoRegistro == clsAtributos.EstadoRegistroInactivo && Id != null)//significa que se va a desactivar el registro
                {
                    var buscarControlToallaCab = db.CONTROL_TOALLA.Find(Id);
                    buscarControlToallaCab.EstadoRegistro          = clsAtributos.EstadoRegistroInactivo;
                    buscarControlToallaCab.FechaModificacionLog    = DateTime.Now;
                    buscarControlToallaCab.UsuarioModificacionLog  = psusuario;
                    buscarControlToallaCab.TerminalModificacionLog = psterminal;
                    db.SaveChanges();
                    return("Registro Inactivado con éxito");
                }
                else //si se va a actualizar una cabecera de toalla
                {
                    var buscarCabToalla = db.CONTROL_TOALLA.Where(z => z.Fecha == Fecha && z.Hora == Hora && z.Turno == Turno && z.EstadoRegistro == clsAtributos.EstadoRegistroActivo).FirstOrDefault();
                    if (buscarCabToalla == null)
                    {
                        var RegistroCabToallaAModificar = db.CONTROL_TOALLA.Find(Id);
                        RegistroCabToallaAModificar.Turno       = Turno;
                        RegistroCabToallaAModificar.Fecha       = Fecha;
                        RegistroCabToallaAModificar.Hora        = Hora;
                        RegistroCabToallaAModificar.Observacion = Observacion;
                        db.SaveChanges();
                        return("registro actualizado con éxito");
                    }
                    else if (buscarCabToalla.Observacion != Observacion)//si quiere actualizar solo la observacion
                    {
                        var RegistroCabToallaAModificar = db.CONTROL_TOALLA.Find(Id);
                        RegistroCabToallaAModificar.Observacion = Observacion;
                        db.SaveChanges();
                        return("registro actualizado con éxito");
                    }
                    else
                    {
                        return("555");//ya existe un registro en esa fecha, hora y turno
                    }
                }
            }
        }
Пример #3
0
        public void Notificaciones(List <int?> Roles, string Cedula)
        {
            clsDParametro        = new clsDParametro();
            clsDGeneral          = new clsDGeneral();
            clsDSolicitudPermiso = new clsDSolicitudPermiso();
            List <RespuestaGeneral> MensajesNotificaciones = new List <RespuestaGeneral>();

            //INICIO -- NOTIFICACIONES ENVIADOS DESDE LA BASE DE DATOS 2020-06-25
            var Notificaciones = clsDGeneral.ConsultaNotificaciones(Cedula);

            foreach (var x in Notificaciones)
            {
                MensajesNotificaciones.Add(new RespuestaGeneral {
                    Mensaje = x.Mensaje, Observacion = "/" + x.Url
                });
            }
            Session["MensajesNotificacionesMenu"] = Notificaciones;
            //ViewBag.MensajesNotificacionesMenu = Notificaciones;
            //2020-06-25 -- FIN


            var MensajeUrgente = clsDParametro.ConsultaParametros(new PARAMETRO {
                Codigo         = clsAtributos.ParaMensajeUrgente,
                EstadoRegistro = clsAtributos.EstadoRegistroActivo
            }).FirstOrDefault();

            if (MensajeUrgente != null)
            {
                ViewBag.MensajeUrgente = MensajeUrgente.Observacion;
            }

            var MensajeAviso = clsDParametro.ConsultaParametros(new PARAMETRO
            {
                Codigo         = clsAtributos.ParaMensajeAviso,
                EstadoRegistro = clsAtributos.EstadoRegistroActivo
            }).FirstOrDefault();

            if (MensajeAviso != null)
            {
                ViewBag.MensajeAviso = MensajeAviso.Observacion;
            }



            if (Roles.Any(x => x.Value == clsAtributos.RolAprobacionSolicitud))
            {
                var solicitudes = clsDSolicitudPermiso.ConsultaSolicitudesPermisoNotificaciones(clsAtributos.EstadoSolicitudPendiente, lsUsuario[1]);
                if (solicitudes > 0)
                {
                    string enlace  = "/SolicitudPermiso/BandejaAprobacion";
                    string Mensaje = "Tienes " + solicitudes + " solicitudes en su bandeja por aprobar";
                    MensajesNotificaciones.Add(new RespuestaGeneral
                    {
                        Mensaje     = Mensaje,
                        Observacion = enlace
                    });
                }
            }

            if (Roles.Any(x => x.Value == clsAtributos.RolRRHH))
            {
                var solicitudes = clsDSolicitudPermiso.ConsultaSolicitudesPermisoNotificaciones(clsAtributos.EstadoSolicitudAprobado, lsUsuario[1]);
                if (solicitudes > 0)
                {
                    string enlace  = "/SolicitudPermiso/BandejaRRHH";
                    string Mensaje = "Tiene " + solicitudes + " solicitudes en su bandeja por revisar";
                    MensajesNotificaciones.Add(new RespuestaGeneral
                    {
                        Mensaje     = Mensaje,
                        Observacion = enlace
                    });
                }
            }

            if (Roles.Any(x => x.Value == clsAtributos.RolMedico))
            {
                var solicitudes = clsDSolicitudPermiso.ConsultaSolicitudesPermiso(new SOLICITUD_PERMISO
                {
                    EstadoSolicitud = clsAtributos.EstadoSolicitudAprobado,
                    Origen          = clsAtributos.SolicitudOrigenMedico,
                    ValidaMedico    = true
                });

                if (solicitudes.Any())
                {
                    string enlace  = "/SolicitudPermiso/BandejaMedico";
                    string Mensaje = "Tiene " + solicitudes.Count + " solicitudes en su bandeja por revisar";
                    MensajesNotificaciones.Add(new RespuestaGeneral
                    {
                        Mensaje     = Mensaje,
                        Observacion = enlace
                    });
                }
            }

            if (Roles.Any(x => x.Value == clsAtributos.RolGarita))
            {
                var solicitudes = clsDSolicitudPermiso.ConsultaSolicitudesPermisoReporte(null, null, clsAtributos.EstadoSolicitudAprobado, true, null, null).ToList();
                if (solicitudes.Any())
                {
                    string enlace  = "/SolicitudPermiso/ReporteSolicitud";
                    string Mensaje = "Tiene " + solicitudes.Count + " solicitudes en su bandeja";
                    MensajesNotificaciones.Add(new RespuestaGeneral
                    {
                        Mensaje     = Mensaje,
                        Observacion = enlace
                    });
                }
            }

            if (Roles.Any(x => x.Value == clsAtributos.RolControladorGeneral))
            {
                clsDProyeccionProgramacion = new clsDProyeccionProgramacion();
                clsDAsistencia             = new clsDAsistencia();
                clsDEmpleado = new clsDEmpleado();
                var programaciones = clsDProyeccionProgramacion.ConsultaProyeccionProgramacion();
                if (programaciones != null && programaciones.EditaProduccion)
                {
                    string dia     = ci.DateTimeFormat.GetDayName(programaciones.FechaProduccion.DayOfWeek);
                    string enlace  = "/ProyeccionProgramacion/EditarProyeccionProgramacionProduccion";
                    string Mensaje = "Tiene la proyección de la programación pendiente de finalizar del dia " + dia + ", " + programaciones.FechaProduccion.ToString("dd-MM-yyyy");

                    MensajesNotificaciones.Add(new RespuestaGeneral {
                        Mensaje     = Mensaje,
                        Observacion = enlace
                    });
                }

                lsUsuario = User.Identity.Name.Split('_');
                var empleado = clsDEmpleado.ConsultaEmpleado(lsUsuario[1]).FirstOrDefault();
                if (empleado != null)
                {
                    var finalizarAsistencia = clsDAsistencia.ConsultaFaltantesFinalizarAsistencia(empleado.CODIGOLINEA, DateTime.Now.AddDays(-1));
                    if (finalizarAsistencia.Any())
                    {
                        foreach (var x in finalizarAsistencia)
                        {
                            string dia     = ci.DateTimeFormat.GetDayName(x.FechaInicio.Value.DayOfWeek);
                            string enlace  = "/Asistencia/FinalizarAsistencia";
                            string Mensaje = "No ha finalizado la Asistencia del: " + dia + ", " + x.FechaInicio.Value.ToString("dd-MM-yyyy");

                            MensajesNotificaciones.Add(new RespuestaGeneral
                            {
                                Mensaje     = Mensaje,
                                Observacion = enlace
                            });
                        }
                    }
                }
            }

            if (Roles.Any(x => x.Value == clsAtributos.RolControladorLinea || x.Value == clsAtributos.RolEnlatado ||
                          x.Value == clsAtributos.RolEtiquetadoLata || x.Value == clsAtributos.RolEtiquetadoPouch || x.Value == clsAtributos.RolLimpiezaPouch ||
                          x.Value == clsAtributos.RolLimpiezaPouch || x.Value == clsAtributos.RolAutoclave ||
                          x.Value == clsAtributos.RolFrio || x.Value == clsAtributos.RolEvicerado))
            {
                clsDAsistencia = new clsDAsistencia();
                clsDEmpleado   = new clsDEmpleado();
                lsUsuario      = User.Identity.Name.Split('_');
                var empleado = clsDEmpleado.ConsultaEmpleado(lsUsuario[1]).FirstOrDefault();
                if (empleado != null)
                {
                    var finalizarAsistencia    = clsDAsistencia.ConsultaFaltantesFinalizarAsistencia(empleado.CODIGOLINEA, DateTime.Now.AddDays(-1));
                    var finalizarCantidadFecha = finalizarAsistencia.Select(x => x.FechaInicio).Distinct();
                    if (finalizarAsistencia.Any())
                    {
                        foreach (var x in finalizarCantidadFecha)
                        {
                            int    cantidad = finalizarAsistencia.Count(y => y.FechaInicio == x.Value);
                            string dia      = ci.DateTimeFormat.GetDayName(x.Value.DayOfWeek);
                            string enlace   = "/Asistencia/AsistenciaFinalizar";
                            string Mensaje  = "No ha finalizado la Asistencia del día: " + dia + ", " + x.Value.ToString("dd-MM-yyyy") + " Existen " + cantidad + " empleados sin finalizar";

                            MensajesNotificaciones.Add(new RespuestaGeneral
                            {
                                Mensaje     = Mensaje,
                                Observacion = enlace
                            });
                        }
                    }
                }
            }

            if (Roles.Any(x => x.Value == clsAtributos.AsistenteProduccion))
            {
                clsDAsistencia = new clsDAsistencia();
                clsDEmpleado   = new clsDEmpleado();
                clsDGeneral    = new clsDGeneral();
                var finalizarAsistencia    = clsDAsistencia.ConsultaFaltantesFinalizarAsistenciaTodos(DateTime.Now.AddDays(-1));
                var finalizarCantidadFecha = finalizarAsistencia.Select(x => new { Fecha = x.FechaInicio, Linea = x.CodLinea }).Distinct();
                if (finalizarAsistencia.Any())
                {
                    foreach (var x in finalizarCantidadFecha)
                    {
                        var    linea    = clsDGeneral.ConsultaLineas(x.Linea).FirstOrDefault();
                        int    cantidad = finalizarAsistencia.Count(y => y.FechaInicio == x.Fecha && y.CodLinea == x.Linea);
                        string dia      = ci.DateTimeFormat.GetDayName(x.Fecha.Value.DayOfWeek);
                        string Mensaje  = "No ha finalizado la Asistencia " + linea.Descripcion + " del día: " + dia + ", " + x.Fecha.Value.ToString("dd-MM-yyyy") + " Existen " + cantidad + " empleados sin finalizar";

                        MensajesNotificaciones.Add(new RespuestaGeneral
                        {
                            Mensaje = Mensaje,
                        });
                    }
                }
            }

            if (MensajesNotificaciones.Any())
            {
                ViewBag.MensajesNotificaciones = MensajesNotificaciones;
            }
        }