Metodos para calcular o total num List

Vejam este metodo:

// ele devolve o resultado do calculo da quantidade de produto num id_prod
public int devolveID2(int id_prod) throws SQLException, ClassNotFoundException {
	ConexaoDao dao=new ConexaoDao();
	Produtos prod = dao.getProduotosById(id_prod);
	int [] numerosParaAdicionar = {};
	int devolve = 0;
	
	for(ItensOrdemVenda iov : dao.getItensOrdemVenda()) {
		if(prod.getIDProduto()==iov.getProdutoCod()) {
			// verificar o que faz este array
			numerosParaAdicionar=new int[]{(int)iov.getQuantItensOrdemVenda()};
			devolve=calculaTotal2(numerosParaAdicionar);
			System.out.println("ver: "+devolve);
		}
	}
	
	/// mas quando ponho num ciclo que vai buscar o id_prod de varios produtos ele faz uma acumulacao e da-me um resultado nao esperado!!! como posso resolver isto????? veje abaixo:
	
	// este metodo me da exatamento esses argumentos(new [] Object{.......}) numa tabela, mas os id_prod fazem uma acumulacao de id_prod em excesso!!!! Alguem pode ajudar-me nisso.....
	
	public void pesquisar(DefaultTableModel modelo) throws ClassNotFoundException, SQLException {
		modelo = (DefaultTableModel) jTable1.getModel();
		ArrayList<Object> listar = new ArrayList<Object>();
		Date data = new Date();
		int [] numerosParaAdicionar;
		int [] numerosParaAdicionar2;
		Calendar diaHoje=Calendar.getInstance();
		EnviarEmails env = new EnviarEmails();
		double totalPreco = 0;
		
		try {
			modelo.setNumRows(0);
			ConexaoDao dao = new ConexaoDao();
			
			for (Produtos pro : dao.getProdutos()) {
				for(Estoque est : dao.getEstoque()) {
					if((pro.getIDProduto() == est.getIDProdutoEStoque())) {
						if(((int)pro.getQuantMinProduto()) >= ((int)est.getQuantProdutoEstoque())) {
							totalPreco = (valorUnitario(pro.getIDProduto())) * est.getQuantProdutoEstoque();
							modelo.addRow(new Object[]{pro.getNomeProduto().toUpperCase(), devolveID(pro.getIDProduto()),devolveID2(pro.getIDProduto()),est.getQuantProdutoEstoque(),pro.getQuantMaxProduto(),pro.getQuantMinProduto(), valorUnitario(pro.getIDProduto()),totalPreco});
							
							System.out.println("entradas" + entradasTotal(pro.getIDProduto()));
							listar.add(pro.getNomeProduto());
							listar.add((int)est.getQuantProdutoEstoque());
							
							// listar.add(tabela.addRow(new Object []{pro.getNomeProduto(),(int)est.getQuantProdutoEstoque()}));
						} else {
							totalPreco = (valorUnitario(pro.getIDProduto())) * est.getQuantProdutoEstoque();
							modelo.addRow(new Object[]{pro.getNomeProduto(), devolveID(pro.getIDProduto()),devolveID2(pro.getIDProduto()),est.getQuantProdutoEstoque(),pro.getQuantMaxProduto(),pro.getQuantMinProduto(), valorUnitario(pro.getIDProduto()),totalPreco});
						}
					}
				}
			}
		} catch(SQLException ex) {}
		
		jTable1.setModel(modelo);
		Calendar c1 = transformaData ("01/01/2017");
		Calendar c2 = transformaData ("31/12/2020");
		Calendar cal=Calendar.getInstance();
		
		// Array T[] = new Array["Nome","Quantidade"];
		
		if (cal.get (Calendar.DAY_OF_WEEK) == Calendar.FRIDAY) {
			env.sendMail(emailsLocal(),emailsDestinatario(), "NOTIFICAÇÃO DE GESTÃO DE ESTOQUE","Os seguintes produtos estão em baixa no Estoque: "+listar+" !!!");
			System.out.println("True"+listar);
		} else {
			System.out.println("False :"+listar+" ver"+Calendar.DAY_OF_WEEK+" calendar"+Calendar.FRIDAY);
		}
	}

Olá,
este código está incompleto. O primeiro método não tem fechamento nem retorno, isso nem compila.

1 curtida

Viva Rodrigo, acho que cortei mal quando estava para postar, mas veja a essência do programa.