public abstract class Entidade { protected int codigo = 0;
protected Date cadastro = new Date();
public Entidade() { }
public Date getCadastro() { return cadastro;
}
public void setCadastro(Date cadastro) { this.cadastro = cadastro;
}
public int getCodigo() { return codigo;
}
public void setCodigo(int codigo) { this.codigo = codigo;
} }
public abstract class Pessoa extends Entidade {
protected String nome;
protected String endereco;
protected String numero;
protected String complemento;
protected String cep;
protected String cidade;
protected String estado;
protected String bairro;
protected String telefone;
protected String celular;
protected String email;
public String getBairro() { return bairro;
}
public void setBairro(String bairro) { this.bairro = bairro;
}
public String getCelular() { return celular;
}
public void setCelular(String celular) { this.celular = celular;
}
public String getCep() { return cep;
}
public void setCep(String cep) { this.cep = cep;
}
public String getCidade() { return cidade;
}
public void setCidade(String cidade) { this.cidade = cidade;
}
protected String getComplemento() { return complemento;
}
public void setComplemento(String complemento) { this.complemento = complemento;
}
public String getEmail() { return email;
}
public void setEmail(String email) { this.email = email;
}
public String getEndereco() { return endereco;
}
public void setEndereco(String endereco) { this.endereco = endereco;
}
public String getEstado() { return estado;
}
public void setEstado(String estado) { this.estado = estado;
}
public String getNome() { return nome;
}
public void setNome(String nome) { this.nome = nome;
}
public String getNumero() { return numero;
}
public void setNumero(String numero) { this.numero = numero;
}
public String getTelefone() { return telefone;
}
public void setTelefone(String telefone) { this.telefone = telefone;
}
public String verificaNome(){
if ( this.nome.equals("")) return "Em Branco";
else
return "Preenchido";
} }
public class Cliente extends Pessoa{
private Date nascimento;
private int idade;
private String cpf;
private String rg;
public String getCpf() { return cpf;
}
public void setCpf(String cpf) throws Exception { if ( cpf.equals("") )
throw new Exception("CPF inválido!!");
this.cpf = cpf;
}
public int getIdade() { return idade;
}
public void setIdade(int idade) { this.idade = idade;
}
public Date getNascimento() { return nascimento;
}
public void setNascimento(Date nascimento) { this.nascimento = nascimento;
}
public String getRg() { return rg;
}
public void setRg(String rg) { this.rg = rg;
}
@Override
public String verificaNome(){
if ( this.nome.equals("")) return "Em Branco";
else
return this.nome;
} }
public class Fornecedor extends Pessoa{
private String razao;
private String cnpj;
private String inscricao;
public Fornecedor() { }
public Fornecedor(String razao, String cnpj, String inscricao) { this.razao = razao;
this.cnpj = cnpj;
this.inscricao = inscricao;
}
public String getCnpj() { return cnpj;
}
public void setCnpj(String cnpj) throws Exception { if ( cnpj.equals("") )
throw new Exception("CNPJ do fornecedor invalido!");
this.cnpj = cnpj;
}
public String getInscricao() { return inscricao;
}
public void setInscricao(String inscricao) throws Exception { if ( inscricao.equals("") )
throw new Exception("Incrição do fornecedor invalida!");
this.inscricao = inscricao;
}
public String getRazao() { return razao;
}
public void setRazao(String razao) throws Exception { if ( razao.equals("") )
throw new Exception("Razão do fornecedor invalida!");
this.razao = razao;
} }
public class Vendedor extends Pessoa{
private int idade;
private Date nascimento;
private Date admissao;
private Date demissao;
private double comissao;
public Date getAdmissao() { return admissao;
}
public void setAdmissao(Date admissao) { this.admissao = admissao;
}
public double getComissao() { return comissao;
}
public void setComissao(double comissao) { this.comissao = comissao;
}
public Date getDemissao() { return demissao;
}
public void setDemissao(Date demissao) { this.demissao = demissao;
}
public int getIdade() { return idade;
}
public void setIdade(int idade) { this.idade = idade;
}
public Date getNascimento() { return nascimento;
}
public void setNascimento(Date nascimento) { this.nascimento = nascimento;
} }
public class Produto extends Entidade{
private String descricao;
private double estoque;
private double custo;
private double venda;
public double getCusto() { return custo;
}
public void setCusto(double custo) { this.custo = custo;
}
public String getDescricao() { return descricao;
}
public void setDescricao(String descricao) throws Exception { if ( descricao.equals("") )
throw new Exception("A descrição do produto deve ser informada!");
this.descricao = descricao;
}
public double getEstoque() { return estoque;
}
public void setEstoque(double estoque) { this.estoque = estoque;
}
public double getVenda() { return venda;
}
public void setVenda(double venda) throws Exception { if ( venda <= 0 )
throw new Exception("Valor de venda do produto inválido!");
this.venda = venda;
} }
public class Item {
private Produto produto;
private double quantidade;
private double valor;
public Item(Produto produto, double quantidade, double valor) { this.produto = produto;
this.quantidade = quantidade;
this.valor = valor;
}
public Item() { }
public Produto getProduto() { return produto;
}
public void setProduto(Produto produto) throws Exception{
if ( ( produto == null ) || ( produto.getCodigo() == 0 ) ) throw new Exception("É necessário informar o produto!");
this.produto = produto;
}
public double getQuantidade() { return quantidade;
}
public void setQuantidade(double quantidade) throws Exception{
if ( quantidade <= 0 )
throw new Exception("Quantidade do produto inválida!");
this.quantidade = quantidade;
}
public double getValor() { return valor;
}
public void setValor(double valor) throws Exception{
if ( valor <= 0 )
throw new Exception("Valor do produto inválido!");
this.valor = valor;
}
public double getTotal(){
return this.valor * this.quantidade;
} }
public class Venda {
private Date data;
private int numero;
private Cliente cliente;
private Vendedor vendedor;
private List<Item> itens;
public Venda(Date data, int numero, Cliente cliente, Vendedor vendedor) { this.data = data;
this.numero = numero;
this.cliente = cliente;
this.vendedor = vendedor;
this.itens = new ArrayList<Item>();
}
public Venda() { this.data = new Date();
this.numero = 0;
this.itens = new ArrayList<Item>();
}
public Cliente getCliente() { return cliente;
}
public void setCliente(Cliente cliente) throws Exception{
if ( ( cliente == null ) || ( cliente.getCodigo() == 0 ) ) throw new Exception("Cliente Inválido!");
this.cliente = cliente;
}
public Date getData() { return data;
}
public void setData(Date data) { this.data = data;
}
public List<Item> getItens() { return itens;
}
public void setItens(List<Item> itens) { this.itens = itens;
}
public int getNumero() { return numero;
}
public void setNumero(int numero) { this.numero = numero;
}
public Vendedor getVendedor() { return vendedor;
}
public void setVendedor(Vendedor vendedor) throws Exception{
if ( ( vendedor == null ) || ( vendedor.getCodigo() == 0 ) ) throw new Exception("Vendedor Inválido!");
this.vendedor = vendedor;
}
public double getTotalVenda(){
double total = 0;
for (Item item : itens) { total = total + item.getTotal();
}
return total;
}
public void addItem(Item item) throws Exception{
if ( ( item.getProduto().getCodigo() == 0 ) && (item.getTotal() == 0)) throw new Exception("Item inválido!");
this.itens.add(item);
}
public void removeItem(Item item) throws Exception{
if ( ( item.getProduto().getCodigo() == 0 ) && (item.getTotal() == 0)) throw new Exception("Item inválido!");
for(int i = 0; i<this.itens.size(); i++){
if ( this.itens.get(i).getProduto().getCodigo() == item.getProduto().getCodigo()){
this.itens.remove(i);
break;
} } }
public void valida() throws Exception{
if ( this.itens.isEmpty())
throw new Exception("Não existe itens cadastrados para esta venda!");
if ( (this.cliente == null) || (this.cliente.getCodigo() == 0)) throw new Exception("É necessário informar o cliente!");
if ( (this.vendedor == null) || (this.vendedor.getCodigo() == 0)) throw new Exception("É necessário informar o vendedor!");
if ( this.numero <= 0)
throw new Exception("Numero da venda inválido!");
} }
public class Util {
public static Cliente criaObjetoCliente(int codigo, String nome, int idade) throws Exception{
Cliente c = new Cliente();
c.setCodigo(codigo);
c.setNome(nome);
c.setCpf("000.000.000-00");
c.setIdade(idade);
c.setNascimento(new Date());
c.setRg("mg 11223333");
Util.setDadosComum(c);
return c;
}
public static Vendedor criaObjetoVendedor(String nome, double comissao){
Vendedor v = new Vendedor();
v.setAdmissao(new Date());
v.setComissao(comissao);
v.setDemissao(new Date());
v.setIdade(20);
v.setNascimento(new Date());
Util.setDadosComum(v);
return v;
}
public static Produto criaObjetoProduto(int codigo, String desc) throws Exception{
Produto p = new Produto();
p.setCadastro(new Date());
p.setCodigo(codigo);
p.setCusto(10);
p.setDescricao(desc);
p.setEstoque(100);
p.setVenda(20);
return p;
}
private static void setDadosComum(Pessoa obj){
obj.setBairro("Centro");
obj.setCadastro(new Date());
obj.setCelular("9999-9999");
obj.setCep("37700-001");
obj.setCidade("Poços de Caldas");
obj.setComplemento("Apto 1");
obj.setEmail("contato@pucpcaldas.br");
obj.setEndereco("Rua Assis");
obj.setEstado("Mg");
obj.setNumero("1000");
obj.setTelefone("(35) 3722-3322");
} }