Nao estou conseguindo somar o valor gasto por um cliente em uma lanchonete.
Se alguem puder me ajudar eu agradeço.
Onde exatamente você tenta mostrar essa informação?
Lá na sua classe Venda, você tem um List lanches certo? E no seu “fazPedido” você só vai adicionando os lanches.
Por que você não faz um método assim dentro da venda, só uma sugestão.
public double getTotal(){
double total = 0d;
for(Lanche lanche : lanches){
total+=lanche.getPreco();
}
return total;
}
Entao amigo obrigado mesmo, essa parte eu ate consegui fazer, mas estou com outro problema, eu tenho que dar 10% de desconto se o cliente for cadastrado, e nao estou conseguindo fazer isso, ja tentei de muitas formas.
Algo assim acho que resolveria seu caso, você poderia passar o código informado se deseja se identificar ou não para o fazerPedido ou verificar se é null como eu fiz.
public void criarVenda() {
Scanner scan = new Scanner(System.in);
Venda v = new Venda();
System.out.print("Deseja se identificar? (S=1 / N=0): ");
int opcao = scan.nextInt();
if (opcao == 1) {
System.out.print("Digite o codigo do cliente: ");
int codCliente = scan.nextInt();
Cliente c = controllers.ClientesController.buscarPorCodigo(codCliente);
if (c != null) {
v.setCliente(c);
fazerPedido(v, opcao);
}
} else if (opcao == 0) {
fazerPedido(v, opcao);
}
scan.close();
}
private double fazerPedido(Venda v, int opcao) {
double totalVenda = 0;
int codLanche = 0;
do {
System.out.print("Digite o codigo do lanche: ");
codLanche = scan.nextInt();
scan.nextLine();
Lanche l = controllers.LanchesController.buscarPorCodigo(codLanche);
if (l != null) {
v.getLanches().add(l);
BancoDadosLanchonete.getTabelaVenda().add(v);
} else {
System.out.println("Lanche não cadastrado");
}
} while (codLanche != 0);
if (v.getCliente() == null) { //ou opcao == 0
for(Lanche lanche : v.getLanches()){
totalVenda+= lanche.getPreco();
}
}else{
for(Lanche lanche : v.getLanches()){
totalVenda+= lanche.getPreco();
}
totalVenda-=totalVenda*0.10;
}
System.out.println("O total a ser pago é de: R$" + totalVenda);
System.out.println("Compra realizada com sucesso!");
return totalVenda;
}
E tem algum scanner que nãop está sendo fechado por ai no código. Eu recomendo você tentar reutilizar o mesmo sempre, ou fechar quando terminar de usar em determinado local.
Valeu irmaozinho, ajudou bastante! Nao é uma coisa dificil né, mas eu estava prendido ali kkk, mas vlw de verdade irmao!!
Importante é continuar. =)