Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions avaliacoes/restaurante/Cliente.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
public class Cliente extends Pessoa {
private int numFid;
public Cliente(String nome, String cpf, Endereço endereco, int numFid) {
super(nome, cpf, endereco);
this.numFid = numFid;
}

public int getNumFid() {
return numFid;
}

public void setNumFid(int numFid) {
this.numFid = numFid;
}
}
52 changes: 52 additions & 0 deletions avaliacoes/restaurante/Endereço.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
public class Endereço {

private String rua;
private String numero;
private String bairro;
private String cidade;

public Endereço(String rua, String numero, String bairro, String cidade) {
this.rua = rua;
this.numero = numero;
this.bairro = bairro;
this.cidade = cidade;
}


public String getRua() {
return rua;
}

public void setRua(String rua) {
this.rua = rua;
}

public String getNumero() {
return numero;
}

public void setNumero(String numero) {
this.numero = numero;
}

public String getBairro() {
return bairro;
}

public void setBairro(String bairro) {
this.bairro = bairro;
}

public String getCidade() {
return cidade;
}

public void setCidade(String cidade) {
this.cidade = cidade;
}

public String toString() {
return rua + ", " + numero + ", " + bairro + ", " + cidade;
}

}
25 changes: 25 additions & 0 deletions avaliacoes/restaurante/Funcionario.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
public class Funcionario extends Pessoa {
private String cargo;
private String ctp;


public Funcionario(String nome, String cpf, String cargo, Endereço endereco, String ctp) {
super(nome, cpf, endereco);
this.cargo = cargo;
this.ctp = ctp;
}

public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}

public String getCtp() {
return ctp;
}
public void setCtp(String ctp) {
this.ctp = ctp;
}
}
9 changes: 9 additions & 0 deletions avaliacoes/restaurante/INFCGenerator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import java.util.ArrayList;
import java.util.UUID;

public interface INFCGenerator {
void setIdentificacao(UUID id);
void setEmitente(String cnpj);
void addItens(ArrayList<Item> itens);
void setTotal(float total);
}
31 changes: 31 additions & 0 deletions avaliacoes/restaurante/Item.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
public class Item {

private Produto produto;
private int quantidade;
private float valorVenda;

public Item(Produto produto, int quantidade, float valorVenda) {
this.produto = produto;
this.quantidade = quantidade;
this.valorVenda = valorVenda;
}

public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
public float getValorVenda() {
return valorVenda;
}
public void setValorVenda(float valorVenda) {
this.valorVenda = valorVenda;
}
}
20 changes: 20 additions & 0 deletions avaliacoes/restaurante/Menu.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import java.util.ArrayList;

public class Menu {
private ArrayList<Produto> produtos = new ArrayList<>();

public void adicionarProduto(Produto produto) {
produtos.add(produto);
}

public void show() {
System.out.println("--- MENU ---");
for (Produto p : produtos) {
System.out.printf("%s - R$ %.2f\n", p.getNome(), p.getPreco());
}
}

public ArrayList<Produto> getProdutos() {
return produtos;
}
}
27 changes: 27 additions & 0 deletions avaliacoes/restaurante/Mesa.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import java.util.ArrayList;

public class Mesa {
private int numero;
private Funcionario garcom;
private ArrayList<Pedido> pedidos = new ArrayList<>();


public Mesa(int numero) {
this.numero = numero;
}

public void adicionarPedido(Pedido pedido) {
pedidos.add(pedido);
}

public void setGarcom(Funcionario garcom){
this.garcom = garcom;
}

public int getNumero() {
return numero;
}
public ArrayList<Pedido> getPedidos() {
return pedidos;
}
}
69 changes: 69 additions & 0 deletions avaliacoes/restaurante/MyApp.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import java.util.ArrayList;


public class MyApp {
public static void main(String[] args) {

Endereço enderecoRestaurante = new Endereço("Av. Central", "1000", "Centro", "Serra");
Endereço enderecoCliente = new Endereço("Rua das Acácias", "45", "Jardim", "Serra");
Endereço enderecoFuncionario = new Endereço("Rua das Palmeiras", "22", "Bela Vista", "Serra");


Menu menuPrincipal = new Menu();
Produto pizza = new Produto("Pizza Calabresa", 30.00f, 0.15f);
Produto suco = new Produto("Suco Natural", 10.00f, 0.08f);
Produto sobremesa = new Produto("Pudim", 12.00f, 0.10f);
menuPrincipal.adicionarProduto(pizza);
menuPrincipal.adicionarProduto(suco);
menuPrincipal.adicionarProduto(sobremesa);

ArrayList<Menu> menus = new ArrayList<>();
menus.add(menuPrincipal);

Mesa mesa1 = new Mesa(1);
ArrayList<Mesa> mesas = new ArrayList<>();
mesas.add(mesa1);

Restaurante restaurante = new Restaurante("Sabores da Serra", enderecoRestaurante, menus, mesas);


Funcionario garcom = new Funcionario("João", "123.456.789-00", "Garçom", enderecoFuncionario, "CTP12345");
mesa1.setGarcom(garcom);

Cliente cliente = new Cliente("Maria", "987.654.321-00", enderecoCliente, 5);
Pedido pedido = new Pedido(cliente);

pedido.adicionarItem(new Item(pizza, 2, pizza.getPreco()));
pedido.adicionarItem(new Item(suco, 1, suco.getPreco()));
pedido.adicionarItem(new Item(sobremesa, 1, sobremesa.getPreco()));


mesa1.adicionarPedido(pedido);


Pagamento pagamento = new PagamentoPix(100.00f);
pedido.pagar(pagamento);

System.out.println("\n====== STATUS FINAL ======");
System.out.println("Restaurante: " + restaurante.getNome());
System.out.println("Endereço: " + restaurante.getEndereco());

System.out.println("\n--- CARDÁPIO ---");
for (Produto prod : menuPrincipal.getProdutos()) {
System.out.printf("%s - R$ %.2f\n", prod.getNome(), prod.getPreco());
}

System.out.println("\n--- MESAS ---");
for (Mesa mesa : restaurante.getMesas()) {
System.out.println("Mesa " + mesa.getNumero());
System.out.println("Garçom: " + mesa.getPedidos().get(0).getNotaFiscal() != null ? mesa1.getPedidos().get(0).getNotaFiscal().toString() : "Sem nota");
for (Pedido p : mesa.getPedidos()) {
System.out.println("Pedido do cliente: " + p.getNotaFiscal() != null ? cliente.getNome() : "Sem nome");
System.out.println("Itens:");
for (Item item : p.getNotaFiscal() != null ? p.getNotaFiscal().getItens() : new ArrayList<Item>()) {
System.out.println("- " + item.getProduto().getNome());
}
}
}
}
}
44 changes: 44 additions & 0 deletions avaliacoes/restaurante/NotaFiscal.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import java.util.ArrayList;
import java.util.UUID;

public class NotaFiscal implements INFCGenerator {
private UUID id;
private String cnpj;
private ArrayList<Item> itens;
private float total;

public NotaFiscal() {
itens = new ArrayList<>();
}

public ArrayList<Item> getItens() {
return itens;
}

public void setIdentificacao(UUID id) {
this.id = id;
}

public void setEmitente(String cnpj) {
this.cnpj = cnpj;
}

public void setTotal(float total) {
this.total = total;
}

public void exibirNota() {
System.out.println("--- NOTA FISCAL ---");
System.out.println("ID: " + id);
System.out.println("Emitente: " + cnpj);
for (Item p : itens) {
System.out.println(p.getProduto().getNome() + " - R$ " + p.getProduto().getPreco());
}
System.out.printf("Total (c/ IVA): R$ %.2f\n", total);
}

@Override
public void addItens(ArrayList<Item> itens) {
this.itens.addAll(itens);
}
}
10 changes: 10 additions & 0 deletions avaliacoes/restaurante/Pagamento.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
public abstract class Pagamento {
protected float valor;

public Pagamento(float valor) {
this.valor = valor;
}

public float getValor() { return valor; }
}

7 changes: 7 additions & 0 deletions avaliacoes/restaurante/PagamentoCartao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
public class PagamentoCartao extends Pagamento {

public PagamentoCartao(float valor) {
super(valor);
}

}
6 changes: 6 additions & 0 deletions avaliacoes/restaurante/PagamentoPix.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
public class PagamentoPix extends Pagamento {

public PagamentoPix(float valor) {
super(valor);
}
}
8 changes: 8 additions & 0 deletions avaliacoes/restaurante/PagamentosEspecie.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
public class PagamentosEspecie extends Pagamento {

public PagamentosEspecie(float valor) {
super(valor);
}


}
43 changes: 43 additions & 0 deletions avaliacoes/restaurante/Pedido.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import java.util.ArrayList;
import java.util.UUID;

public class Pedido {
private Cliente cliente;
private ArrayList<Item> itens;
private Pagamento pagamento;
private NotaFiscal notaFiscal;

public Pedido(Cliente cliente) {
this.cliente = cliente;
this.itens = new ArrayList<>();
}

public void adicionarItem(Item item) {
itens.add(item);
}

public void pagar(Pagamento pagamento) {
this.pagamento = pagamento;
gerarNotaFiscal();
}



private void gerarNotaFiscal() {
notaFiscal = new NotaFiscal();
notaFiscal.setIdentificacao(UUID.randomUUID());
notaFiscal.setEmitente("99.999.999/0001-00");
notaFiscal.addItens(itens);
float total = 0;
for (Item item: itens) {
total += item.getQuantidade() * item.getProduto().getPreco() * 1.23f;
}

notaFiscal.setTotal(total);
notaFiscal.exibirNota();
}

public NotaFiscal getNotaFiscal() {
return notaFiscal;
}
}
Loading