public DataTable selectProyectos()
        {
            SqlCommand comando = ConexionBD.crearcomando();

            comando.CommandText = "select CodCCiConstruye, DescripcióniContruye from EquivCCostos";
            return(ConexionBD.EjecutarSelect(comando));
        }
        public DataTable selectEquivalences(string codBarras)
        {
            SqlCommand comando = ConexionBD.crearcomandoInventario();

            comando.CommandText = "select codigoItem from Equivalencias WHERE codigoBarras = '" + codBarras + "'";
            return(ConexionBD.EjecutarSelect(comando));
        }
        //Valida si el codigo leido o ingresado de la ubicación existe en icostruye
        public DataTable SelectLikeLocationItem(string codBarrasLocation)
        {
            SqlCommand comando = ConexionBD.crearcomandoInventario();

            comando.CommandText = "select codigoUbicacion FROM Ubicacion WHERE codigoUbicacion = '" + codBarrasLocation + "'";
            return(ConexionBD.EjecutarSelect(comando));
        }
        public DataTable getLocation(string codBarras)
        {
            SqlCommand comando = ConexionBD.crearcomandoInventario();

            comando.CommandText = "select codigoUbicacion,cantidad from NUbicacionXReferenciaCB where codigoBarras = '" + codBarras + "'";
            return(ConexionBD.EjecutarSelect(comando));
        }
        //Trae todo el listado de Grupos
        public DataTable SelectGrupo()
        {
            SqlCommand comando = ConexionBD.crearcomando();

            comando.CommandText = "select Clsif, NombreGr FROM Grupos";
            return(ConexionBD.EjecutarSelect(comando));
        }
        //Trae todo el listado de Marcas
        public DataTable SelectMarca()
        {
            SqlCommand comando = ConexionBD.crearcomandoInventario();

            comando.CommandText = "select id, Marca FROM Marcas";
            return(ConexionBD.EjecutarSelect(comando));
        }
        public int SelectLikeReferenceCodxUbicacion(string codBarras, string ubicacion)
        {
            DataTable  consult;
            int        returnLength = 0;
            SqlCommand comando      = ConexionBD.crearcomandoInventario();

            comando.CommandText = "select n.codigoBarras, n.codigoUbicacion FROM NUbicacionXReferenciaCB n WHERE codigoBarras = '" + codBarras + "' AND codigoUbicacion = '" + ubicacion + "'";
            consult             = ConexionBD.EjecutarSelect(comando);
            returnLength        = consult.Rows.Count;
            return(returnLength);
        }
        public int ExistReference(string codBarras, string equivalencia)
        {
            DataTable  consult;
            int        returnLength = 0;
            SqlCommand comando      = ConexionBD.crearcomandoInventario();

            comando.CommandText = "select codigoBarras, codigoItem from Equivalencias  WHERE codigoBarras = '" + codBarras + "' AND codigoItem = '" + equivalencia + "' ";
            consult             = ConexionBD.EjecutarSelect(comando);
            returnLength        = consult.Rows.Count;
            return(returnLength);
        }
        public int LikeReferenceInsertIC(string codBarras)
        {
            DataTable  consult;
            int        returnLength = 0;
            SqlCommand comando      = ConexionBD.crearcomando();

            comando.CommandText = "select m.CodigoItem FROM MaestroXGrupos m WHERE m.CodigoItem = '" + codBarras + "'";
            consult             = ConexionBD.EjecutarSelect(comando);
            returnLength        = consult.Rows.Count;
            return(returnLength);
        }
        public int LikeReferenceInsert(string codBarras)
        {
            DataTable  consult;
            int        returnLength = 0;
            SqlCommand comando      = ConexionBD.crearcomandoInventario();

            comando.CommandText = "select re.codigoBarras FROM ReferenciasCodBarras re WHERE re.codigoBarras = '" + codBarras + "'";
            consult             = ConexionBD.EjecutarSelect(comando);
            returnLength        = consult.Rows.Count;
            return(returnLength);
        }
        public int SelectLikeReferenceCod2(string codBarras)
        {
            DataTable  consult;
            int        returnLength = 0;
            SqlCommand comando      = ConexionBD.crearcomandoInventario();

            comando.CommandText = "select re.codigoBarras, re.codigoBarrasIC, re.descripcionItem, re.grupo, re.imagen, m.marca, gr.NombreGr FROM ReferenciasCodBarras re INNER JOIN Marcas m ON m.id = re.id_Marca INNER JOIN iConstruyeR.dbo.Grupos gr ON gr.Clsif = re.grupo WHERE re.codigoBarras = '" + codBarras + "'";
            consult             = ConexionBD.EjecutarSelect(comando);
            returnLength        = consult.Rows.Count;
            return(returnLength);
        }
        //Valida si el codigo leido o ingresado de la refencia del inventario actual existe
        public DataTable SelectLikeReference(string codBarras, string codUbicacion, int codProyecto)
        {
            SqlCommand comando          = ConexionBD.crearcomandoInventario();
            int        existRefeference = SelectLikeReferenceCod2(codBarras);

            if (existRefeference > 0)
            {
                comando.CommandText = "select re.codigoBarras, re.codigoBarrasIC, re.descripcionItem, re.grupo, re.color, nu.cantidad, re.imagen, m.marca, gr.NombreGr, nu.codigoUbicacion, ub.CodigoProyecto, eq.DescripcióniContruye FROM ReferenciasCodBarras re INNER JOIN Marcas m ON m.id = re.id_Marca INNER JOIN iConstruyeR.dbo.Grupos gr ON gr.Clsif = re.grupo INNER JOIN NUbicacionXReferenciaCB nu ON nu.CodigoBarras = re.codigoBarras INNER JOIN Ubicacion ub ON ub.codigoUbicacion = nu.codigoUbicacion INNER JOIN iConstruyeR.dbo.EquivCCostos eq ON ub.CodigoProyecto = eq.CodCCiConstruye WHERE re.codigoBarras = '" + codBarras + "' AND nu.codigoUbicacion = '" + codUbicacion + "' AND ub.CodigoProyecto = " + codProyecto + "";
            }
            else
            {
                comando.CommandText = "select re.codigoBarras, re.codigoBarrasIC, re.descripcionItem, re.grupo, re.color, nu.cantidad, re.imagen, m.marca, gr.NombreGr, nu.codigoUbicacion, ub.CodigoProyecto, eq.DescripcióniContruye FROM ReferenciasCodBarras re INNER JOIN Marcas m ON m.id = re.id_Marca INNER JOIN iConstruyeR.dbo.Grupos gr ON gr.Clsif = re.grupo INNER JOIN NUbicacionXReferenciaCB nu ON nu.CodigoBarras = re.codigoBarras INNER JOIN Ubicacion ub ON ub.codigoUbicacion = nu.codigoUbicacion INNER JOIN iConstruyeR.dbo.EquivCCostos eq ON ub.CodigoProyecto = eq.CodCCiConstruye INNER JOIN Equivalencias equ ON equ.codigoBarras = re.codigoBarras WHERE  nu.codigoUbicacion = '" + codUbicacion + "' AND ub.CodigoProyecto = " + codProyecto + " AND equ.codigoItem = '" + codBarras + "'";
            }
            return(ConexionBD.EjecutarSelect(comando));
        }
        public DataTable SelectLikeRIconstruyeAll(string search, int condition)
        {
            SqlCommand comando = ConexionBD.crearcomando();

            if (condition == 1)
            {
                comando.CommandText = "SELECT * FROM ( SELECT  m.CodigoItem,g.NombreGr,s.descripcion, m.Clasif, ROW_NUMBER() OVER(PARTITION BY m.codigoItem ORDER BY m.codigoItem DESC) rn FROM MaestroXGrupos m INNER JOIN Grupos g ON m.Clasif = g.Clsif INNER JOIN MxG2 s ON m.CodigoItem = s.CodigoItem WHERE m.CodigoItem LIKE '%" + search + "%') a WHERE rn = 1";
            }
            else if (condition == 2)
            {
                comando.CommandText = "SELECT * FROM ( SELECT  m.CodigoItem,g.NombreGr,s.descripcion, m.Clasif, ROW_NUMBER() OVER(PARTITION BY m.codigoItem ORDER BY m.codigoItem DESC) rn FROM MaestroXGrupos m INNER JOIN Grupos g ON m.Clasif = g.Clsif INNER JOIN MxG2 s ON m.CodigoItem = s.CodigoItem WHERE s.descripcionItem LIKE '%" + search + "%') a WHERE rn = 1";
            }

            return(ConexionBD.EjecutarSelect(comando));
        }
        public DataTable SelectLikeReferenceCod(string codBarras)
        {
            SqlCommand comando          = ConexionBD.crearcomandoInventario();
            int        existRefeference = SelectLikeReferenceCod2(codBarras);

            if (existRefeference > 0)
            {
                comando.CommandText = "select re.codigoBarras, re.codigoBarrasIC, re.descripcionItem, re.grupo, re.imagen, re.color, m.marca, gr.NombreGr FROM ReferenciasCodBarras re INNER JOIN Marcas m ON m.id = re.id_Marca INNER JOIN iConstruyeR.dbo.Grupos gr ON gr.Clsif = re.grupo WHERE re.codigoBarras = '" + codBarras + "'";
            }

            else
            {
                comando.CommandText = "select re.codigoBarras, re.codigoBarrasIC, re.descripcionItem, re.grupo, re.imagen, re.color, m.marca, gr.NombreGr FROM ReferenciasCodBarras re INNER JOIN Marcas m ON m.id = re.id_Marca INNER JOIN iConstruyeR.dbo.Grupos gr ON gr.Clsif = re.grupo INNER JOIN Equivalencias equ ON equ.codigoBarras = re.codigoBarras  WHERE equ.codigoItem = '" + codBarras + "'";
            }
            return(ConexionBD.EjecutarSelect(comando));
        }
        public int LikeReferenceInsertICSplit(string codBarras)
        {
            DataTable  consult;
            int        existReference = 0;
            SqlCommand comando        = ConexionBD.crearcomando();

            comando.CommandText = "select m.CodigoItem FROM MaestroXGrupos m WHERE m.CodigoItem LIKE '%" + codBarras.Trim() + "%'";
            consult             = ConexionBD.EjecutarSelect(comando);

            foreach (DataRow row in consult.Rows)
            {
                string codigoItem      = row["CodigoItem"].ToString();
                var    codigoItemSplit = codigoItem.Split('.');
                codigoItem = codigoItemSplit[codigoItemSplit.Length - 1];
                if (codigoItem == codBarras.Trim())
                {
                    existReference = 1;
                    break;
                }
            }

            return(existReference);
        }