Preciso de ajuda para realizar uma simples nota fiscal em JAVA

6 respostas
programaçãojava
Pericles_T_Radael

Nao estou conseguindo somar o valor gasto por um cliente em uma lanchonete.
Se alguem puder me ajudar eu agradeço.

6 Respostas

G

Onde exatamente você tenta mostrar essa informação?

JulioCesarSF

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;
}
Pericles_T_Radael

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.

JulioCesarSF

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.

Pericles_T_Radael

Valeu irmaozinho, ajudou bastante! Nao é uma coisa dificil né, mas eu estava prendido ali kkk, mas vlw de verdade irmao!!

JulioCesarSF

Importante é continuar. =)

Criado 8 de dezembro de 2016
Ultima resposta 14 de dez. de 2016
Respostas 6
Participantes 3