/// <summary>
        /// Lista los estados por los que paso la Orden de entrega.
        /// </summary>
        /// <param name="id_orden">Id de la orden de entrega</param>
        /// <returns>Retorna la lista de estados para la orden de entrega</returns>
        public static List <OrdenEstadoClass> ListarPorOrden(long id_orden)
        {
            List <OrdenEstadoClass> r    = new List <OrdenEstadoClass>();
            saluddbEntities         mctx = new saluddbEntities();
            OrdenEstadoClass        x;


            var cur = from o in mctx.ordenestadoes
                      where o.id_orden == id_orden
                      select o;


            foreach (var f in cur)
            {
                x = new OrdenEstadoClass();

                x._id_orden_entrega = f.id_orden;
                x._id_orden_estado  = f.id_ordenestado;
                x._estado           = (EstadoOrden)f.estado;
                x._fecha            = (DateTime)f.fecha;
                x._usuario          = UsuarioClass.BuscarUsuarioPorId((int)f.id_usuario);

                r.Add(x);
            }


            return(r);
        }
        /// <summary>
        /// Función que obtiene el ultimo estado para la orden pasada como parámetro
        /// </summary>
        /// <param name="id_ordenEntrega">Id de la orden de entrega a buscar el estado</param>
        /// <returns>Retorna una instancia de OrdenEstadoClass o null en otro caso</returns>
        public static OrdenEstadoClass UltimoEstado(long id_ordenEntrega)
        {
            OrdenEstadoClass r = new OrdenEstadoClass();

            saluddbEntities ctx = new saluddbEntities();

            var cur = from o in ctx.ordenestadoes
                      where o.id_orden == id_ordenEntrega
                      orderby o.id_ordenestado descending
                      select o;

            if (cur.Count() > 0)
            {
                var f = cur.First();


                r._id_orden_estado  = f.id_ordenestado;
                r._estado           = (EstadoOrden)f.estado;
                r._fecha            = (DateTime)f.fecha;
                r._id_orden_entrega = f.id_orden;
                r._usuario          = UsuarioClass.BuscarUsuarioPorId(f.id_usuario);
            }
            else
            {
                r = null;
            }

            return(r);
        }
        /// <summary>
        /// Lista los usuarios por nombre de usuario
        /// </summary>
        /// <param name="nombre">nombre de usuario</param>
        /// <param name="completo">indica si se va a cargar el usuario completo, implica cargar los permisos</param>
        /// <returns>Retorna una lista de usuarios</returns>
        public static List <UsuarioClass> ListarUsuariosPorNombre(string nombre, bool completo = false)
        {
            List <UsuarioClass> r    = new List <UsuarioClass>();
            saluddbEntities     mctx = new saluddbEntities();
            UsuarioClass        x;


            var cur = from usu in mctx.usuarios
                      where usu.nombre_usuario.Contains(nombre)
                      select usu;


            foreach (var f in cur)
            {
                x = new UsuarioClass();

                x._id_usuario      = f.id_usuario;
                x._nombre_completo = f.nombre_completo;
                x._nombre_usuario  = f.nombre_usuario;
                x._constrasenia    = f.contrasenia;

                if (completo)
                {
                    x._permisos = PermisoClass.ListarPermisosPorUsuario(f.id_usuario);
                }

                r.Add(x);
            }
            return(r);
        }
        /// <summary>
        /// Busca un usuario por nombre de usuario
        /// </summary>
        /// <param name="nombre_usuario">Nombre de usuario del usuario buscado</param>
        /// <param name="completo">Carga el usuario completo</param>
        /// <returns></returns>
        public static UsuarioClass BuscarUsuarioPorNombre(string nombre_usuario, bool completo = false)
        {
            UsuarioClass r = new UsuarioClass();

            saluddbEntities ctx = new saluddbEntities();

            var cur = from u in ctx.usuarios
                      where u.nombre_usuario == nombre_usuario
                      select u;

            if (cur.Count() > 0)
            {
                var f = cur.First();

                r._id_usuario      = f.id_usuario;
                r._constrasenia    = f.contrasenia;
                r._nombre_completo = f.nombre_completo;
                r._nombre_usuario  = f.nombre_usuario;


                if (completo)
                {
                    r._permisos = PermisoClass.ListarPermisosPorNombreUsuario(nombre_usuario);
                }
            }
            else
            {
                r = null;
            }

            return(r);
        }
        /// <summary>
        /// Busca un usuario por permiso
        /// </summary>
        /// <param name="id_permiso">Id del permiso</param>
        /// <param name="completo">Parametro que indica si se va a obtener el usuario en forma completa, cargando sus permisos o no</param>
        /// <returns>Retorna el usuario</returns>
        public static UsuarioClass BuscarUsuarioPorPermiso(int id_permiso, bool completo = false)
        {
            UsuarioClass r = new UsuarioClass();

            saluddbEntities ctx = new saluddbEntities();

            var cur = from u in ctx.usuarios
                      join p in ctx.permisoes
                      on u.id_usuario equals p.id_usuario
                      where p.id_permiso == id_permiso
                      select u;

            if (cur.Count() > 0)
            {
                var f = cur.First();

                r._id_usuario      = f.id_usuario;
                r._constrasenia    = f.contrasenia;
                r._nombre_completo = f.nombre_completo;
                r._nombre_usuario  = f.nombre_usuario;


                if (completo)
                {
                    r._permisos = PermisoClass.ListarPermisosPorUsuario(r.Id_usuario);
                }
            }
            else
            {
                r = null;
            }

            return(r);
        }
 /// <summary>
 /// Constructor de la clase, Crea una instacia de la clase OrdenEstado con los valor proporcionados
 /// </summary>
 /// <param name="id_ordenEstado">Id de la orden de estado</param>
 /// <param name="id_ordenEntrega">Id de la Orden de Entrega </param>
 /// <param name="usuario">Usuario que realizo el cambio de estado</param>
 /// <param name="estado">Estado de la orden</param>
 /// <param name="fecha">Fecha de modificación del estado</param>
 public OrdenEstadoClass(int id_ordenEstado, int id_ordenEntrega, UsuarioClass usuario, EstadoOrden estado, DateTime fecha)
 {
     ctx = new saluddbEntities();
     _id_orden_entrega = id_ordenEstado;
     _id_orden_entrega = id_ordenEntrega;
     _usuario          = usuario;
     _estado           = estado;
     _fecha            = fecha;
 }
 /// <summary>
 /// Constructor por defecto, crea una instancia de OrdenEstado vacía
 /// </summary>
 public OrdenEstadoClass()
 {
     ctx = new saluddbEntities();
     _id_orden_estado  = 0;
     _id_orden_entrega = 0;
     _usuario          = new UsuarioClass();
     _estado           = EstadoOrden.INICIADO;
     _fecha            = new DateTime();
 }
예제 #8
0
        public static List <GrillaReporteEntregaGruClass> ListarArticulosPorGrupoEntreFechasParaGrilla(int id_grupo, DateTime fecha_desde, DateTime fecha_hasta, int estado, bool completo = false)
        {
            DateTime fechaDesde = new DateTime(fecha_desde.Year, fecha_desde.Month, fecha_desde.Day, 0, 0, 0);
            DateTime fechaHasta = new DateTime(fecha_hasta.Year, fecha_hasta.Month, fecha_hasta.Day, 23, 59, 59);
            List <GrillaReporteEntregaGruClass> r = new List <GrillaReporteEntregaGruClass>();
            saluddbEntities mctx = new saluddbEntities();
            GrillaReporteEntregaGruClass x;

            /* List<BeneficiarioClass> listaBeneficiarios = BeneficiarioClass.ListarBeneficiariosPorGrupo(id_grupo);
             *
             * foreach(BeneficiarioClass b in listaBeneficiarios)
             * {
             *
             * }*/


            //une las tablas articulos, itemEntrega, ordenEntregas y ordenEstado mediante un Join para obtener los articulos de un determinado beneficiario
            var cur = from ord in mctx.ordenentregas

                      join item in mctx.itementregas
                      on ord.id_orden equals item.id_orden


                      join art in mctx.articuloes
                      on item.id_articulo equals art.id_articulo

                      join ordE in mctx.ordenestadoes
                      on ord.id_orden equals ordE.id_orden

                      join bg in mctx.beneficiario_grupo
                      on ord.id_beneficiario equals bg.id_beneficiario

                      join g in mctx.grupoes
                      on bg.id_gupo equals g.id_grupo

                      join b in mctx.beneficiarios
                      on bg.id_beneficiario equals b.id_beneficiario

                      where g.id_grupo == id_grupo && ordE.estado == estado && ordE.fecha >= fechaDesde && ordE.fecha <= fechaHasta
                      select new
            {
                id_articulo                = art.id_articulo,
                cantidad_articulo          = item.cantidad,
                nombre_articulo            = art.nombre,
                descripcion_articulo       = art.descripcion,
                id_tipo_articulo           = art.id_tipo_articulo,
                id_orden_entrega           = ord.id_orden,
                fechaEntrega_orden_entrega = ordE.fecha,
                id_autorizado              = ord.id_usu_autoriza,
                id_entrega      = ord.id_usu_entrega,
                nombre_grupo    = g.nombre,
                nombre_benef    = b.nombre,
                documento_benef = b.documento
            };

            foreach (var f in cur)
            {
                x = new GrillaReporteEntregaGruClass();

                x.Id_articulo                = f.id_articulo;
                x.Cantidad_articulo          = f.cantidad_articulo.ToString();
                x.Nombre_articulo            = f.nombre_articulo;
                x.Descripcion_articulo       = f.descripcion_articulo;
                x.Tipo_articulo              = TipoArticuloClass.BuscarTipoArticuloPorId(f.id_tipo_articulo).Nombre_TipoArticulo;
                x.Id_orden_entrega           = f.id_orden_entrega;
                x.FechaEntrega_orden_entrega = ((DateTime)f.fechaEntrega_orden_entrega).Date.ToShortDateString();
                //x.HoraEntrega_orden_entrega = ((DateTime)f.fechaEntrega_orden_entrega).Date.ToShortTimeString();
                x.HoraEntrega_orden_entrega = ((DateTime)f.fechaEntrega_orden_entrega).ToShortTimeString();
                x.Nombre_grupo           = f.nombre_grupo;
                x.Nombre_beneficiario    = f.nombre_benef;
                x.Documento_beneficiario = f.documento_benef;
                if ((int)f.id_autorizado != 0)
                {
                    x.Autorizado_por = UsuarioClass.BuscarUsuarioPorId((int)f.id_autorizado).Nombre_completo.ToString();
                }
                else
                {
                    x.Autorizado_por = "NO AUTORIZADO";
                }

                if ((int)f.id_entrega != 0)
                {
                    x.Entregado_por = UsuarioClass.BuscarUsuarioPorId((int)f.id_entrega).Nombre_completo.ToString();
                }
                else
                {
                    x.Entregado_por = "NO ENTREGADO";
                }

                r.Add(x);
            }


            return(r);
        }