예제 #1
0
        /// <summary>
        /// Permite obtener los insumos que están en una bodega
        /// </summary>
        /// <param name="codigoBodega">Codigo de la bodega de la que se quieren los insumos</param>
        /// <returns>La lista de los insumos de la bodega, null si no encuentra la bodega, o la bodega no tiene insumos</returns>
        public List <DO_InsumoEnBodega> obtenerInsumosBodega(Int32 codigoBodega)
        {
            if (!existeBodega(codigoBodega))
            {
                return(null);
            }

            List <DO_InsumoEnBodega> listaInsumosEnBodega = new List <DO_InsumoEnBodega>();

            try
            {
                if (conexion.State != ConnectionState.Open)
                {
                    conexion.Open();
                }

                SqlDataAdapter adaptador = new SqlDataAdapter();
                DataTable      datatable = new DataTable();
                adaptador.SelectCommand = new SqlCommand("SELECT * FROM INS_ESTA_BOD WHERE BOD_CODIGO = @codigoBodega", conexion);
                adaptador.SelectCommand.Parameters.AddWithValue("@codigoBodega", codigoBodega);

                adaptador.Fill(datatable);

                listaInsumosEnBodega = new List <DO_InsumoEnBodega>();
                foreach (DataRow row in datatable.Rows)
                {
                    Int32 cantDisponible = Convert.ToInt32(row["IEB_CANTIDAD_DISPONIBLE"]);

                    if (cantDisponible > 0)
                    {
                        DO_InsumoEnBodega insumoBodega = new DO_InsumoEnBodega();
                        DAO_Insumo        daoInsumo    = new DAO_Insumo();

                        insumoBodega.insumo             = daoInsumo.buscarInsumoPorCódigo(Convert.ToInt32(row["INS_CODIGO"]));
                        insumoBodega.cantidadDisponible = cantDisponible;

                        listaInsumosEnBodega.Add(insumoBodega);
                    }
                }
                return(listaInsumosEnBodega);
            }
            catch (SqlException)
            {
                return(null);
            }
            finally
            {
                if (conexion.State != ConnectionState.Closed)
                {
                    conexion.Close();
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Retorna los insumos descartados de una solicitud de insumos en específico
        /// </summary>
        /// <param name="codigoSolicitud">El código de la solicitud de insumos</param>
        /// <returns></returns>
        private List <DO_InsumoEnBodega> listaDescarte(int codigoSolicitud)
        {
            List <DO_InsumoEnBodega> listaConsumidos = new List <DO_InsumoEnBodega>();
            SqlCommand comandoBuscar = new SqlCommand("SELECT * FROM POR_DESCARTE WHERE SOL_CODIGO = @codigo", conexion);

            comandoBuscar.Parameters.AddWithValue("@codigo", codigoSolicitud);

            try
            {
                if (conexion.State != ConnectionState.Open)
                {
                    conexion.Open();
                }

                SqlDataReader lector = comandoBuscar.ExecuteReader();
                if (lector.HasRows)
                {
                    while (lector.Read())
                    {
                        DO_InsumoEnBodega insumoBodega = new DO_InsumoEnBodega();
                        DAO_Insumo        insumo       = new DAO_Insumo();
                        insumoBodega.cantidadDisponible = Convert.ToInt32(lector["PDS_CANTIDAD"]);
                        insumoBodega.insumo             = insumo.buscarInsumoPorCódigo(Convert.ToInt32(lector["INS_CODIGO"]));
                        listaConsumidos.Add(insumoBodega);
                    }
                }
                return(listaConsumidos);
            }
            catch (SqlException)
            {
                return(null);
            }
            finally
            {
                if (conexion.State != ConnectionState.Closed)
                {
                    conexion.Close();
                }
            }
        }
예제 #3
0
        private List <DO_InsumoEntrante> obtenerListaInsumosEntrante(Int32 codigoEntrada)
        {
            try
            {
                SqlDataAdapter           adaptadorInsumos = new SqlDataAdapter();
                DataTable                datatableInsumos = new DataTable();
                List <DO_InsumoEntrante> listaInsumos     = new List <DO_InsumoEntrante>();

                adaptadorInsumos.SelectCommand = new SqlCommand("SELECT * FROM INSUMO_ENTRANTE WHERE ENI_CODIGO = @codigoEntrada", conexion);
                adaptadorInsumos.SelectCommand.Parameters.AddWithValue("@codigoEntrada", codigoEntrada);

                adaptadorInsumos.Fill(datatableInsumos);

                foreach (DataRow filaInsumos in datatableInsumos.Rows)
                {
                    DO_InsumoEntrante insumoEntrante = new DO_InsumoEntrante();
                    insumoEntrante.doBodega      = new DO_Bodega();
                    insumoEntrante.insumo        = new DO_InsumoEnBodega();
                    insumoEntrante.insumo.insumo = new DO_Insumo();

                    insumoEntrante.doBodega.codigo = Convert.ToInt32(filaInsumos["BOD_CODIGO"]);
                    DAO_Bodega daoBodega = new DAO_Bodega();
                    insumoEntrante.doBodega.nombre = daoBodega.obtenerNombreBodega(insumoEntrante.doBodega.codigo);

                    insumoEntrante.insumo.insumo.codigo = Convert.ToInt32(filaInsumos["INS_CODIGO"]);
                    DAO_Insumo daoInsumo = new DAO_Insumo();
                    insumoEntrante.insumo.insumo = daoInsumo.buscarInsumoPorCódigo(insumoEntrante.insumo.insumo.codigo);

                    insumoEntrante.insumo.cantidadDisponible = Convert.ToInt32(filaInsumos["IENT_CANTIDAD"]);

                    listaInsumos.Add(insumoEntrante);
                }
                return(listaInsumos);
            }
            catch (SqlException)
            {
                return(null);
            }
        }
예제 #4
0
        public List <DO_InsumoReportable> reporteInsumos(String inicio, String final)
        {
            try
            {
                //Formato del string para la fecha 2020-05-30
                SqlDataAdapter             adaptador       = new SqlDataAdapter();
                DataTable                  datatable       = new DataTable();
                List <DO_InsumoReportable> listaReportados = new List <DO_InsumoReportable>();

                adaptador.SelectCommand = new SqlCommand("SELECT * FROM (Select INS_CODIGO AS INS_CODIGO_CONSUMIR, SUM(ACS_CANTIDAD) AS TOTAL_CONSUMIDO from SOL_A_CONSUMIR_INS " +
                                                         "INNER JOIN (Select SOL_CODIGO from SOLICITUD_INSUMO where SOL_FECHA BETWEEN CONVERT(datetime, @fechaInicio) AND CONVERT(datetime, @fechaFinal)) as temporal " +
                                                         "ON SOL_A_CONSUMIR_INS.SOL_CODIGO = temporal.SOL_CODIGO GROUP BY INS_CODIGO) AS CONSUMO " +
                                                         "FULL JOIN " +
                                                         "(Select INS_CODIGO AS INS_CODIGO_DESCARTE, SUM(PDS_CANTIDAD) AS TOTAL_DESCARTADO from POR_DESCARTE " +
                                                         "INNER JOIN (Select SOL_CODIGO from SOLICITUD_INSUMO where SOL_FECHA BETWEEN CONVERT(datetime, @fechaInicio) AND CONVERT(datetime, @fechaFinal)) as temporal " +
                                                         "ON POR_DESCARTE.SOL_CODIGO = temporal.SOL_CODIGO GROUP BY INS_CODIGO) AS DESCARTE ON CONSUMO.INS_CODIGO_CONSUMIR = DESCARTE.INS_CODIGO_DESCARTE", conexion);

                adaptador.SelectCommand.Parameters.AddWithValue("@fechaInicio", inicio);
                adaptador.SelectCommand.Parameters.AddWithValue("@fechaFinal", final);

                if (conexion.State != ConnectionState.Open)
                {
                    conexion.Open();
                }

                adaptador.Fill(datatable);

                foreach (DataRow fila in datatable.Rows)
                {
                    DO_InsumoReportable insumoConsumido = new DO_InsumoReportable();
                    insumoConsumido.insumo = new DO_Insumo();
                    Object codigoConsumir = fila["INS_CODIGO_CONSUMIR"];
                    if (!(codigoConsumir is DBNull))
                    {
                        insumoConsumido.insumo.codigo = Convert.ToInt32(codigoConsumir);
                    }
                    else
                    {
                        insumoConsumido.insumo.codigo = Convert.ToInt32(fila["INS_CODIGO_DESCARTE"]);
                    }
                    Object cantConsumida = fila["TOTAL_CONSUMIDO"];
                    if (!(cantConsumida is DBNull))
                    {
                        insumoConsumido.cantidadConsumida = Convert.ToInt32(cantConsumida);
                    }
                    Object cantDescartada = fila["TOTAL_DESCARTADO"];
                    if (!(cantDescartada is DBNull))
                    {
                        insumoConsumido.cantidadDescartada = Convert.ToInt32(cantDescartada);
                    }

                    DAO_Insumo daoInsumo = new DAO_Insumo();
                    insumoConsumido.insumo = daoInsumo.buscarInsumoPorCódigo(insumoConsumido.insumo.codigo);
                    insumoConsumido.total  = insumoConsumido.cantidadConsumida + insumoConsumido.cantidadDescartada;

                    listaReportados.Add(insumoConsumido);
                }
                return(listaReportados);
            }
            catch (SqlException)
            {
                return(null);
            }
            finally
            {
                if (conexion.State != ConnectionState.Closed)
                {
                    conexion.Close();
                }
            }
        }