Nao estou conseguindo somar o valor gasto por um cliente em uma lanchonete.
Se alguem puder me ajudar eu agradeço.
Preciso de ajuda para realizar uma simples nota fiscal em JAVA
6 Respostas
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. =)