Gente, boa tarde.
Estou fazendo um trabalho de faculdade e preciso de uma ajuda para fazer uma compra para um fornecedor. O método recebeé o como parâmetro o objeto do tipo fornecedor e um ArrayList do tipo ItemCompra.
O enunciado é o seguinte:
"Método para fazer uma compra para um fornecedor. Parâmetro: o fornecedor e a lista de ItemCompra(ArrayList). Incrementar o estoque para os produtos comprados.
Observação: A lista de ItemCompra não pode possuir produtos repetidos."
Vou colocar as classes necessárias aqui para que possam entender:
Classe Fornecedor:
package dados;
import java.util.GregorianCalendar;
import utilitarios.LtpUtil;
/**
* Classe Fornecedor (herança da classe Pessoa)
* @author Guilherme
*
*/
public class Fornecedor extends Pessoa
{
private String cnpj;
private String nomeContato;
/**
* Construtor da classe;
* @param codigo
* @param nome
* @param telefone
* @param email
* @param dataCad Data de cadastro
* @param cnpj
* @param nomeContato
*/
public Fornecedor(int codigo, String nome, String telefone, String email, GregorianCalendar dataCad, String cnpj, String nomeContato)
{
super(codigo, nome, telefone, email, dataCad);
this.cnpj = cnpj;
this.nomeContato = nomeContato;
}
/**
* Métodos get e set da Classe
* @return
*/
public String getCnpj()
{
return cnpj;
}
public void setCnpj(String cnpj)
{
this.cnpj = cnpj;
}
public String getNomeContato()
{
return nomeContato;
}
public void setNomeContato(String nomeContato)
{
this.nomeContato = nomeContato;
}
/**
* Método toString
* Retorna os atributos da classe formatados pra String.
*/
public String toString()
{
return "CNPJ: "+LtpUtil.formatarCNPJ(getCnpj())+"\n"+
"Nome contato: "+getNomeContato();
}
/**
* Método retornaTipo
* Retorna o tipo de Pessoa.
*/
public int getTipo()
{
return Fornecedor.FORNECEDOR;
}
}
Classe ItemCompra:
package dados;
import utilitarios.LtpUtil;
public class ItemCompra
{
private Produto produto;
private int quantCompra;
private double valorCompra;
public ItemCompra(Produto produto, int quantCompra, double valorCompra)
{
this.produto = produto;
this.quantCompra = quantCompra;
this.valorCompra = valorCompra;
}
public Produto getProduto()
{
return produto;
}
public void setProduto(Produto produto)
{
this.produto = produto;
}
public int getQuantCompra()
{
return quantCompra;
}
public void setQuantCompra(int quantCompra)
{
this.quantCompra = quantCompra;
}
public double getValorCompra()
{
return valorCompra;
}
public void setValorCompra(double valorCompra)
{
this.valorCompra = valorCompra;
}
public String toString()
{
return "Produto: "+getProduto()+"\n"+
"Quantidade da compra: "+getQuantCompra()+"\n"+
"Valor: "+LtpUtil.formatarValor(getValorCompra(), "#.##0.00");
}
}
Classe comercial (classe usada para manipular as ArrayLists e fazer os métodos principais, não está completa.):
package cadastro;
import java.util.ArrayList;
import dados.Cliente;
import dados.Compra;
import dados.Fornecedor;
import dados.ItemCompra;
import dados.ItemVenda;
import dados.Pessoa;
import dados.Produto;
import dados.Venda;
import dados.Vendedor;
import erros.SisComException;
public class Comercial
{
private ArrayList<Pessoa> pessoas = new ArrayList<Pessoa>();
private ArrayList<Produto> produtos = new ArrayList<Produto>();
private ArrayList<Compra> compras = new ArrayList<Compra>();
private ArrayList<Venda> listadeVendas = new ArrayList<Venda>();
/**
* Método de inclusão de pessoas no sistema.
* Este método pega primeiro o tipo de pessoa passada como parâmetro, para depois fazer as validações.
* @param objPes(objeto do tipo pessoa).
* @throws SisComException
*/
public void inserePessoa(Pessoa objPes) throws SisComException
{
if(objPes.getTipo() == Pessoa.CLIENTE)
{
for(Pessoa objCli : pessoas)
{
if(((Cliente)objCli).getCpf() == ((Cliente)objPes).getCpf())
{
throw new SisComException("Já existe cliente com este CPF no sistema!");
}
}
pessoas.add(objPes);
}
else if(objPes.getTipo() == Pessoa.FORNECEDOR)
{
for(Pessoa objFor : pessoas)
{
if(((Fornecedor)objFor).getCnpj() == ((Fornecedor)objPes).getCnpj())
{
throw new SisComException("Já existe fornecedor com este CNPJ no sistema.");
}
}
pessoas.add(objPes);
}
else //Se nao for cliente e nem fornecedor, é vendedor.
{
for(Pessoa objVen : pessoas)
{
if(((Vendedor)objVen).getMetaMensal() <= 0 && ((Vendedor)objVen).getCpf() == ((Vendedor)objVen).getCpf())
{
throw new SisComException("Não foi possivel cadastrar vendedor no sistema, meta mensal insuficiente ou CPF já cadastrado.");
}
}
pessoas.add(objPes);
}
}
/**
* Método de exclusão de pessoas do sistema.
* Este método pega primeiro o tipo de pessoa passada como parâmetro, para depois fazer as validações.
* @param objPes(objeto do tipo pessoa).
* @throws SisComException
*/
public void excluiPessoa(Pessoa objPes) throws SisComException
{
if(objPes.getTipo() == Pessoa.CLIENTE)
{
for(Venda objCli : listadeVendas)
{
if(((Venda)objCli).getNumVenda() > 0)
{
throw new SisComException("Existem vendas cadastradas para este cliente, não é possível excluir.");
}
}
listadeVendas.remove(objPes);
}
else if(objPes.getTipo() == Pessoa.FORNECEDOR)
{
for(Compra objFor : compras)
{
if(((Compra)objFor).getCompraItens().getQuantCompra() > 0)
{
throw new SisComException("Existem compras vcadastradas para este fornecedor, não é possivel excluir.");
}
}
compras.remove(objPes);
}
else //Se nao for cliente e nem fornecedor, é vendedor.
{
for(Venda objVen : listadeVendas)
{
if(objVen.getNumVenda() > 0)
{
throw new SisComException("Já existe vendas registradas pra este vendedor, não é possível excluir.");
}
}
listadeVendas.remove(objPes);
}
}
public void fazerCompraFornecedor(Fornecedor objFor, ArrayList<ItemCompra> compraFor)
{
}
}
Qualquer ajuda será bem-vinda.
Valeu!!!