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");