public List <LineaFactura> BuscarTodos(FiltroLineaFactura filtro)
        {
            List <LineaFactura> listaFacturas = new List <LineaFactura>();

            using (SqlConnection conexion = GestionConexion.GetConexion())
            {
                conexion.Open();
                SqlCommand comando = new SqlCommand();
                String     sql     = "select * from Facturas";

                bool compruebo = false;

                if (filtro.Numero != 0)
                {
                    sql += " where Numero = @Numero";
                    comando.Parameters.AddWithValue("@Numero", filtro.Numero);
                    compruebo = true;
                }
                if (filtro.FacturaNumero != 0)
                {
                    if (!compruebo)
                    {
                        sql      += " where facturas_numero = @FacturaNumero";
                        compruebo = true;
                    }
                    else
                    {
                        sql += " and facturas_numero = @FacturaNumero";
                    }
                    comando.Parameters.AddWithValue("@FacturaNumero", filtro.FacturaNumero);
                }
                if (filtro.ProductoId != null)
                {
                    if (!compruebo)
                    {
                        sql      += " where productos_id = @ProductosId";
                        compruebo = true;
                    }
                    else
                    {
                        sql += " and productos_id = @ProductosId";
                    }
                    comando.Parameters.AddWithValue("@ProductosId", filtro.ProductoId);
                }
                if (filtro.Unidades != 0)
                {
                    if (!compruebo)
                    {
                        sql      += " where unidades = @Unidades";
                        compruebo = true;
                    }
                    else
                    {
                        sql += " and unidades = @Unidades";
                    }
                    comando.Parameters.AddWithValue("@Unidades", filtro.Unidades);
                }

                comando.Connection  = conexion;
                comando.CommandText = sql;

                SqlDataReader lector = comando.ExecuteReader();
                while (lector.Read())
                {
                    listaFacturas.Add(new LineaFactura(
                                          Convert.ToInt32(lector["numero"]),
                                          new Factura(Convert.ToInt32(lector["facturas_numero"])),
                                          lector["productos_id"].ToString(),
                                          Convert.ToInt32(lector["unidades"])));
                }
            }
            return(listaFacturas);
        }
Example #2
0
 public List <LineaFactura> BuscarTodasLasLineasFiltradas(FiltroLineaFactura filtro)
 {
     return(repoLineas.BuscarTodos(filtro));
 }