diff --git a/avaliacoes/diario-oficial/testes/ContratoTest.java b/avaliacoes/diario-oficial/testes/ContratoTest.java new file mode 100644 index 0000000..484f34f --- /dev/null +++ b/avaliacoes/diario-oficial/testes/ContratoTest.java @@ -0,0 +1,28 @@ +import org.junit.Test; +import static org.junit.Assert.*; + +import java.time.LocalDate; + +public class ContratoTest { + + @Test + public void testConstrutorEDadosBasicos() { + LocalDate dataAssinatura = LocalDate.of(2023, 1, 1); + LocalDate dataPublicacao = LocalDate.of(2023, 1, 5); + double valor = 50000.00; + String objeto = "Serviços de limpeza"; + + Contrato contrato = new Contrato(dataAssinatura, dataPublicacao, valor, objeto); + + assertEquals(dataAssinatura, contrato.getDataAssinatura()); + assertEquals(dataPublicacao, contrato.getDataPublicacao()); + assertEquals(valor, contrato.getValor(), 0.01); + assertEquals(objeto, contrato.getObjeto()); + } + + @Test + public void testImprimirPublicacaoNaoLancaExcecao() { + Contrato contrato = new Contrato(LocalDate.now(), LocalDate.now(), 2000, "Teste"); + contrato.imprimirPublicação(); + } +} diff --git a/avaliacoes/diario-oficial/testes/CorrigendaTest.java b/avaliacoes/diario-oficial/testes/CorrigendaTest.java new file mode 100644 index 0000000..b39506b --- /dev/null +++ b/avaliacoes/diario-oficial/testes/CorrigendaTest.java @@ -0,0 +1,11 @@ +import org.junit.Test; +import static org.junit.Assert.*; + +public class CorrigendaTest { + + @Test + public void testImprimirPublicacaoNaoLancaExcecao() { + Corrigenda corrigenda = new Corrigenda("Texto de exemplo"); + corrigenda.imprimirPublicação(); + } +} diff --git a/avaliacoes/diario-oficial/testes/DiarioOficialTest.java b/avaliacoes/diario-oficial/testes/DiarioOficialTest.java new file mode 100644 index 0000000..d880631 --- /dev/null +++ b/avaliacoes/diario-oficial/testes/DiarioOficialTest.java @@ -0,0 +1,35 @@ +import org.junit.Test; +import static org.junit.Assert.*; + +import java.util.ArrayList; + +public class DiarioOficialTest { + + @Test + public void testAddPublicacao() { + DiarioOficial diario = new DiarioOficial(); + Publicacao p = new Corrigenda("Texto de exemplo"); + diario.addPublicação(p); + assertEquals(1, diario.getPublicacoes().size()); + assertEquals(p, diario.getPublicacoes().get(0)); + } + + @Test + public void testDeletePublicacao() { + DiarioOficial diario = new DiarioOficial(); + Publicacao p1 = new Corrigenda("Um"); + Publicacao p2 = new Corrigenda("Dois"); + diario.addPublicação(p1); + diario.addPublicação(p2); + diario.deletePublicação(p1); + assertEquals(1, diario.getPublicacoes().size()); + assertEquals(p2, diario.getPublicacoes().get(0)); + } + + @Test + public void testImprimirDiarioNaoLancaExcecao() { + DiarioOficial diario = new DiarioOficial(); + diario.addPublicação(new Corrigenda("Exemplo")); + diario.imprimirDiario(); + } +} diff --git a/avaliacoes/diario-oficial/testes/LegislacaoTest.java b/avaliacoes/diario-oficial/testes/LegislacaoTest.java new file mode 100644 index 0000000..b62cfa5 --- /dev/null +++ b/avaliacoes/diario-oficial/testes/LegislacaoTest.java @@ -0,0 +1,11 @@ +import org.junit.Test; +import static org.junit.Assert.*; + +public class LegislacaoTest { + + @Test + public void testImprimirPublicacaoNaoLancaExcecao() { + Legislacao legislacao = new Legislacao("LEI Nº 123", "Texto completo"); + legislacao.imprimirPublicação(); + } +} diff --git a/avaliacoes/diario-oficial/testes/LicitacaoTest.java b/avaliacoes/diario-oficial/testes/LicitacaoTest.java new file mode 100644 index 0000000..d3e4580 --- /dev/null +++ b/avaliacoes/diario-oficial/testes/LicitacaoTest.java @@ -0,0 +1,11 @@ +import org.junit.Test; +import static org.junit.Assert.*; + +public class LicitacaoTest { + + @Test + public void testImprimirPublicacaoNaoLancaExcecao() { + Licitacao licitacao = new Licitacao("Objeto", "Modalidade", 10000.0); + licitacao.imprimirPublicação(); + } +} diff --git a/avaliacoes/restaurante/Cliente.java b/avaliacoes/restaurante/Cliente.java new file mode 100644 index 0000000..3349065 --- /dev/null +++ b/avaliacoes/restaurante/Cliente.java @@ -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; + } +} \ No newline at end of file diff --git "a/avaliacoes/restaurante/Endere\303\247o.java" "b/avaliacoes/restaurante/Endere\303\247o.java" new file mode 100644 index 0000000..a823d35 --- /dev/null +++ "b/avaliacoes/restaurante/Endere\303\247o.java" @@ -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; + } + +} diff --git a/avaliacoes/restaurante/Funcionario.java b/avaliacoes/restaurante/Funcionario.java new file mode 100644 index 0000000..825138d --- /dev/null +++ b/avaliacoes/restaurante/Funcionario.java @@ -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; + } +} diff --git a/avaliacoes/restaurante/INFCGenerator.java b/avaliacoes/restaurante/INFCGenerator.java new file mode 100644 index 0000000..d889ea5 --- /dev/null +++ b/avaliacoes/restaurante/INFCGenerator.java @@ -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 itens); + void setTotal(float total); +} diff --git a/avaliacoes/restaurante/Item.java b/avaliacoes/restaurante/Item.java new file mode 100644 index 0000000..4532033 --- /dev/null +++ b/avaliacoes/restaurante/Item.java @@ -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; + } +} diff --git a/avaliacoes/restaurante/Menu.java b/avaliacoes/restaurante/Menu.java new file mode 100644 index 0000000..ce25a91 --- /dev/null +++ b/avaliacoes/restaurante/Menu.java @@ -0,0 +1,20 @@ +import java.util.ArrayList; + +public class Menu { + private ArrayList 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 getProdutos() { + return produtos; + } +} \ No newline at end of file diff --git a/avaliacoes/restaurante/Mesa.java b/avaliacoes/restaurante/Mesa.java new file mode 100644 index 0000000..a11e07a --- /dev/null +++ b/avaliacoes/restaurante/Mesa.java @@ -0,0 +1,27 @@ +import java.util.ArrayList; + +public class Mesa { + private int numero; + private Funcionario garcom; + private ArrayList 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 getPedidos() { + return pedidos; + } +} \ No newline at end of file diff --git a/avaliacoes/restaurante/MyApp.java b/avaliacoes/restaurante/MyApp.java new file mode 100644 index 0000000..086ad68 --- /dev/null +++ b/avaliacoes/restaurante/MyApp.java @@ -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 menus = new ArrayList<>(); + menus.add(menuPrincipal); + + Mesa mesa1 = new Mesa(1); + ArrayList 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()) { + System.out.println("- " + item.getProduto().getNome()); + } + } + } + } +} \ No newline at end of file diff --git a/avaliacoes/restaurante/NotaFiscal.java b/avaliacoes/restaurante/NotaFiscal.java new file mode 100644 index 0000000..ce868ee --- /dev/null +++ b/avaliacoes/restaurante/NotaFiscal.java @@ -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 itens; + private float total; + + public NotaFiscal() { + itens = new ArrayList<>(); + } + + public ArrayList 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 itens) { + this.itens.addAll(itens); + } +} diff --git a/avaliacoes/restaurante/Pagamento.java b/avaliacoes/restaurante/Pagamento.java new file mode 100644 index 0000000..298cdb9 --- /dev/null +++ b/avaliacoes/restaurante/Pagamento.java @@ -0,0 +1,10 @@ +public abstract class Pagamento { + protected float valor; + + public Pagamento(float valor) { + this.valor = valor; + } + + public float getValor() { return valor; } +} + diff --git a/avaliacoes/restaurante/PagamentoCartao.java b/avaliacoes/restaurante/PagamentoCartao.java new file mode 100644 index 0000000..55e08fd --- /dev/null +++ b/avaliacoes/restaurante/PagamentoCartao.java @@ -0,0 +1,7 @@ +public class PagamentoCartao extends Pagamento { + + public PagamentoCartao(float valor) { + super(valor); + } + +} diff --git a/avaliacoes/restaurante/PagamentoPix.java b/avaliacoes/restaurante/PagamentoPix.java new file mode 100644 index 0000000..722bb89 --- /dev/null +++ b/avaliacoes/restaurante/PagamentoPix.java @@ -0,0 +1,6 @@ +public class PagamentoPix extends Pagamento { + + public PagamentoPix(float valor) { + super(valor); + } +} diff --git a/avaliacoes/restaurante/PagamentosEspecie.java b/avaliacoes/restaurante/PagamentosEspecie.java new file mode 100644 index 0000000..2d3fa4c --- /dev/null +++ b/avaliacoes/restaurante/PagamentosEspecie.java @@ -0,0 +1,8 @@ +public class PagamentosEspecie extends Pagamento { + + public PagamentosEspecie(float valor) { + super(valor); + } + + +} diff --git a/avaliacoes/restaurante/Pedido.java b/avaliacoes/restaurante/Pedido.java new file mode 100644 index 0000000..7c31f5d --- /dev/null +++ b/avaliacoes/restaurante/Pedido.java @@ -0,0 +1,43 @@ +import java.util.ArrayList; +import java.util.UUID; + +public class Pedido { + private Cliente cliente; + private ArrayList 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; + } +} diff --git a/avaliacoes/restaurante/Pessoa.java b/avaliacoes/restaurante/Pessoa.java new file mode 100644 index 0000000..ff1b24e --- /dev/null +++ b/avaliacoes/restaurante/Pessoa.java @@ -0,0 +1,30 @@ +public class Pessoa { + private String nome; + private String cpf; + private Endereço endereco; + + public Pessoa(String nome, String cpf, Endereço endereco) { + this.nome = nome; + this.cpf = cpf; + this.endereco = endereco; + } + + public String getNome() { + return nome; } + public String getCpf() { + return cpf; } + public Endereço getEndereco() { + return endereco; + } + public void setEndereco(Endereço endereco) { + this.endereco = endereco; + } + public void setNome(String nome) { + this.nome = nome; + } + public void setCpf(String cpf) { + this.cpf = cpf; + } + +} + diff --git a/avaliacoes/restaurante/Produto.java b/avaliacoes/restaurante/Produto.java new file mode 100644 index 0000000..bde3625 --- /dev/null +++ b/avaliacoes/restaurante/Produto.java @@ -0,0 +1,24 @@ +public class Produto { + private String nome; + private float preco; + private float iva; + + public Produto(String nome, float preco, float iva) { + this.nome = nome; + this.preco = preco; + this.iva = iva; + } + + public String getNome() { + return nome; } + public void setNome(String nome) { + this.nome = nome; } + public float getPreco() { + return preco; } + public void setPreco(float preco) { + this.preco = preco; } + public float getIva() { + return iva; } + public void setIva(float iva) { + this.iva = iva; } +} \ No newline at end of file diff --git a/avaliacoes/restaurante/Restaurante.java b/avaliacoes/restaurante/Restaurante.java new file mode 100644 index 0000000..3adafbf --- /dev/null +++ b/avaliacoes/restaurante/Restaurante.java @@ -0,0 +1,41 @@ +import java.util.ArrayList; + +public class Restaurante { + private String nome; + private ArrayList menus; + private Endereço endereco; + private ArrayList mesas; + + + + public Restaurante(String nome, Endereço endereco, ArrayList menus, ArrayList mesas) { + this.nome = nome; + this.endereco = endereco; + this.menus = menus; + this.mesas = mesas; + } + + + public String getNome() { + return nome; + } + public void setNome(String nome) { + this.nome = nome; + } + public Endereço getEndereco() { + return endereco; + } + public void setEndereco(Endereço endereco) { + this.endereco = endereco; + } + public ArrayList getMenu() { + return menus; + } + + public void setMenu(ArrayList menus) { + this.menus = menus; + } + public ArrayList getMesas() { + return mesas; + } +}