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("[email protected]");
obj.setEndereco("Rua Assis");
obj.setEstado("Mg");
obj.setNumero("1000");
obj.setTelefone("(35) 3722-3322");
}
}
Download

Material da Aula 2