/**
     Método que recupera una lista de personas asociadas a una clave de rol
 **/
 public List<ENT_PERSONAS> getListaPersonasPorCveRol(int intCveRol)
 {
     List<ENT_PERSONAS> listaPersonas = null;
     using (var context = new PUNTO_DE_VENTAEntities8())
     {
         var queryProductos = from t in context.ENT_PERSONAS where (t.CAT_ROLES.INT_CVE_ROL == intCveRol) select t;
         listaPersonas = queryProductos.ToList();
     }
     return listaPersonas;
 }
        public List<CAT_PRODUCTOS> cargarListaProductosDisponiblesParaVenta(){

            List<CAT_PRODUCTOS> listaProductos = null;
            using (var context = new PUNTO_DE_VENTAEntities8())
            {
                var queryProductos = from t in context.CAT_PRODUCTOS where (t.INT_CVE_CATEGORIA_PRODUCTO != DominioAppConstantes.CVE_CATEGORIA_BAJA && t.NUM_COSTO_PRODUCTO != 0 )  select t;
                listaProductos = queryProductos.ToList();
            }
            return listaProductos;
        }
 public List<REL_INGREDIENTES_OP_PRODUCTOS> cargarIngredientesOpcionalesPorProducto(int intCveProducto)
 {
     List<REL_INGREDIENTES_OP_PRODUCTOS> listaIngredientesProductos = null;
     using (var context = new PUNTO_DE_VENTAEntities8())
     {
         
         var queryProductos = from t in context.REL_INGREDIENTES_OP_PRODUCTOS.Include("CAT_INGREDIENTES_OPCIONALES").Include("CAT_PRODUCTOS") where t.INT_CVE_PRODUCTO == intCveProducto select t;
         listaIngredientesProductos = queryProductos.ToList();
     }
     return listaIngredientesProductos;
 }
        /**
            Método que regresa la lista del catálogo de movimientos de la caja
        **/
        public List<CAT_MOVIMIENTOS_CAJA> getAllCatMotivos()
        {
            List<CAT_MOVIMIENTOS_CAJA> listaMovimientosCaja = null;
            using (var context = new PUNTO_DE_VENTAEntities8())
            {
                var queryProductos = from t in context.CAT_MOVIMIENTOS_CAJA where  t.B_ACTIVO == DominioAppConstantes.B_ACTIVO select t;
                listaMovimientosCaja = queryProductos.ToList();
            }

            return listaMovimientosCaja;
        }
        /**
           
        Método que carga todos los productos  asociados a un poducto padre.
        **/
        public List<CAT_PRODUCTOS> cargarProductosPorProductoPadre(int cveProductoPadre)
        {

            List<CAT_PRODUCTOS> listaProductos = null;
            using (var context = new PUNTO_DE_VENTAEntities8())
            {
                var queryProductos = from t in context.CAT_PRODUCTOS where (t.INT_CVE_PRODUCTO_PADRE == cveProductoPadre ) select t;
                listaProductos = queryProductos.ToList();
            }
            return listaProductos;
        }
        /**
        Método que carga todos los productos padres de la base de datos por su clave de categoria producto
        **/
        public List<CAT_PRODUCTOS> cargarProductosPadresByCveCategoria(int cveCategoria)
        {

            List<CAT_PRODUCTOS> listaProductos = null;
            using (var context = new PUNTO_DE_VENTAEntities8())
            {
                var queryProductos = from t in context.CAT_PRODUCTOS where (t.INT_CVE_CATEGORIA_PRODUCTO == cveCategoria && t.INT_CVE_PRODUCTO_PADRE == null) select t;
                listaProductos = queryProductos.ToList();
            }

            return listaProductos;

        }
        /**
            Método que regresa el tipo de pago por su llave primaria
        **/
        public CAT_TIPOS_PAGOS getCatTipoPagoByIntCveTipoPago(int intCveTipoPago)
        {

            List<CAT_TIPOS_PAGOS> listaProductos = null;
            using (var context = new PUNTO_DE_VENTAEntities8())
            {
                var queryProductos = from t in context.CAT_TIPOS_PAGOS where (t.INT_CVE_TIPO_PAGO == intCveTipoPago) select t;
                listaProductos = queryProductos.ToList();
            }

            if( listaProductos != null && listaProductos.Count() > 0)
            {
                return listaProductos.ElementAt(0);
            }

            return null;
        }
        /**
            Método que recupera a un usuario por su username y contrañeña
        **/
        public ENT_PERSONAS validarUsuario(String username , String pwd)
        {

            List<ENT_PERSONAS> listaPersonas = null;
            using (var context = new PUNTO_DE_VENTAEntities8())
            {
                var queryProductos = from t in context.ENT_PERSONAS where (t.TXT_CORREO_PERSONA == username  && t.TXT_CONTRASENA ==  pwd ) select t;
                listaPersonas = queryProductos.ToList();
            }


            if( listaPersonas != null && listaPersonas.Count() > 0)
            {
                return listaPersonas.ElementAt(0);
            }
           
            return null;
        }
        /**
            Método que regresa una caja por su llave primaria
        **/
        public CAT_CAJAS findCajaByCveCaja(int intCveCaja)
        {
            List<CAT_CAJAS> listaCajas = null;
            using (var context = new PUNTO_DE_VENTAEntities8())
            {
                var queryProductos = from t in context.CAT_CAJAS where (t.INT_CVE_CAJA == intCveCaja) select t;
                listaCajas = queryProductos.ToList();
            }

            //Si el query no  encontro resulados, regresa null, 
            if (listaCajas.Count() > 0)
            {
                //Regresa el primer elemento que fue encontrado  asociado a la sucursal que se esta buscando
                return listaCajas.ElementAt(0);
            }

            return null;
        }
        /**
             Método que recupera una sucursal por su llave primaria de la base de datos.
        **/
        public CAT_SUCURSALES getSucursalByIdSucursal(int intCveSucursal)
        {
            List<CAT_SUCURSALES> listaSucursales = null;
            using (var context = new PUNTO_DE_VENTAEntities8())
            {
                var queryProductos = from t in context.CAT_SUCURSALES where (t.INT_CVE_SUCURSAL == intCveSucursal ) select t;
                listaSucursales = queryProductos.ToList();
            }
           
            //Si el query no  encontro resulados, regresa null, 
            if( listaSucursales.Count() > 0)
            {
                //Regresa el primer elemento que fue encontrado  asociado a la sucursal que se esta buscando
                return listaSucursales.ElementAt(0);
            }

            return null;
        }
 public WrkMovimientosCajaFrontController()
 {
     context = new PUNTO_DE_VENTAEntities8();
 }
 public WrkVentasFrontController()
 {
     context = new PUNTO_DE_VENTAEntities8();
 }