@Override
    public ArrayList<TVenta> listarVentas() throws Exception 
    {
        Statement query = null;
        Connection connection = null;
        TVenta temp = new TVenta();
        ArrayList<TVenta> ret = new ArrayList<TVenta>(); 
        ArrayList<TVenta> ret2 = new ArrayList<TVenta>();
        String contenido_query = "SELECT * FROM Ventas";           
                
        try
        {
            connection = (Connection) TransactionManager.obtenerInstanacia().getTransaccion().getResource();
            query = connection.createStatement();
        }
        catch (SQLException e)
        {
            throw new SQLException("No se ha podido realizar la conexión con la base de datos. \nEs posible que haya olvidado crear o iniciar la transacción"
                    + "\nError: " + e.getMessage());
        }
         try
        {
            System.out.println(contenido_query);
            query.execute(contenido_query);
            ResultSet rs = query.getResultSet();
            while (rs.next())
            {
                                
                    TCliente cliente = new TCliente();
                    Integer dummy = Integer.parseInt(rs.getString("id_ventas"));
                    temp.setId(dummy);
                    dummy = Integer.parseInt(rs.getString("Cliente"));
                    cliente.setId(dummy);
                    temp.setCliente(cliente);                    
                    temp.setFecha(rs.getDate("Fecha"));                    
                    temp.setListaproductos(new ArrayList<TCompraArticulo>());
                    ret.add(temp);                
            }
            for (int i = 0; i < ret.size(); i++)
            {
                
            
                query.execute("SELECT * FROM Venta_producto WHERE id_venta = " + ret.get(i).getId() + ";");
                ResultSet rs2 = query.getResultSet();
                ArrayList<TCompraArticulo> lista = new ArrayList<TCompraArticulo>();
                TCompraArticulo art_actual = new TCompraArticulo();
                while (rs2.next())
                {
                    art_actual.setIdArticulo(rs2.getInt("id_producto"));
                    art_actual.setCantidad(rs2.getInt("Cantidad"));
                    art_actual.setPrecio(rs2.getDouble("precio_actual"));
                    lista.add(art_actual);
                }
                TVenta dummy = ret.get(i);
                dummy.setListaproductos(lista);
                ret2.add(dummy);
            }
        }
        catch (SQLException e)
        {
            throw new SQLException("No se ha podido mostrar las ventas. \nError: " + e.getMessage());
        }
        return ret2;
    }