Ajuda! Erro na passagem parâmetro de um array para um set - JAVA

1 resposta
javaarray
Brenno_Felix

Nesse método do meu programa eu preciso retornar um objeto do tipo Venda que possui nome de Cliente, código de venda, nome do produto e quantidade

public Venda realizarVenda(int codigoCliente, int codigoProduto, int quantidade){

//Item vendido = new Item(this.produtos[codigoProduto-1].getNome(), quantidade);

Venda v = new Venda();

for(int i = 0 ; this.clientes[i].getCodigo() != 0 ; i++){

if(this.clientes[i].getCodigo() == codigoCliente){

if(quantidade <= this.produtos[codigoProduto-1].getQuantidade()){

v.setCliente(this.clientes[codigoCliente-1110].getNome());

v.setCodigoVenda(codigoCliente+codigoProduto);

v.setProduto(this.produtos[codigoProduto-1].getNome());

v.setQuantidade(quantidade);
//System.out.println("cliente " +v.getCliente());
                //System.out.println("codigo " +v.getCodigoVenda());
                //System.out.println("produto " +v.getProduto());
                //System.out.println("quantidade " +v.getQuantidade());
                //System.out.println("data " +v.getDataVenda());
                
                
                this.produtos[codigoProduto-1].setQuantidade
                (this.produtos[codigoProduto-1].getQuantidade()- quantidade);
                System.out.println("Venda Realizada com sucesso!");
            } else {
               System.out.println("Quantidade do produto indisponível no estoque");
            }
        }
    }
   return v;

}

Eu coloquei alguns SOUTs para monitorar as saídas e o resultado ao chamar

loja.getVendas()[0] = loja.realizarVenda(1112, 7, 8);

1 Resposta

Brenno_Felix

(ENVIEI O TÓPICO SEM QUERER)

continuando:

a saída da função foi

cliente null
codigo 1119
produto Uva
quantidade 8
data null
Venda Realizada com sucesso!

Queria saber porque a linha

v.setCliente(this.clientes[codigoCliente-1110].getNome());

Não está setando o cliente corretamente
O cadastro de cliente é feito da seguinte forma:

this.clientes[clientesCadastrados].setNome(entrada);
this.clientes[clientesCadastrados].setCodigo(clientesCadastrados+1110);

Logo, nome e codigo, tem o mesmo índice do vetor de clientes

Criado 19 de julho de 2019
Ultima resposta 19 de jul. de 2019
Respostas 1
Participantes 1