Método para fazer compra para um fornecedor

0 respostas
guilherme178

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!!!

Criado 8 de novembro de 2012
Respostas 0
Participantes 1