- Aluno: Nicolas Chagas Souza
- Matrícula: 200042327
Trabalho 1 da disciplina de TPPE 1º/2024.
-
O enunciado do trabalho está disponível no repositório da disciplina fga0242, no caminho TP/README.md.
-
Tipos de cliente:
- padrão
- especial (compras mensais acima de 100 reais)
- prime (pagam mensalidade de 20 reais)
-
Benefícios:
- especial:
- 10% de desconto sobre o valor total da compra
- com +10% (total 20%) de desconto sobre o valor total do pedido, se usarem o cartão da empresa (os primeiros dígitos são 4296 13...)
- 30% de desconto no valor do frete
- 10% de desconto sobre o valor total da compra
- prime:
- frete grátis
- cashback de 3 centavos por real gasto na loja
- ou de 5 centavos, usando o cartão da loja
- especial:
Os valores acumulados como cashback podem ser utilizados como descontos em compras.
-
Impostos:
- Comprador fora do DF: 12% de ICMS + 4% de imposto municipal
- Comprador do DF: 18% de ICMS
-
Fretes:
Capital | Interior | |
---|---|---|
Distrito Federal | R$ 5,00 | |
Regiao Centro-oeste | R$ 10,00 | R$ 13,00 |
Regiao Nordeste | R$ 15,00 | R$ 18,00 |
Regiao Norte | R$ 20,00 | R$ 25,00 |
Regiao Sudeste | R$ 7,00 | R$ 10,00 |
Regiao Sul | R$ 10,00 | R$ 13,00 |
- A Nota fiscal, deve conter
- Impostos ICMS e municipal para cada item
- Descontos
- Cadastrar clientes dos três tipos (padrão, especial e prime):
- Com endereço contendo o estado e se é na capital ou interior.
- Cadastrar diferentes tipos de produtos, contendo:
- Código do item
- Descrição
- Valor de Venda
- Unidade (peça, unidade, metro, cm3, etc...)
- Realizar a venda de itens para os clientes. A venda consiste de:
- Data
- Cliente
- Itens vendidos
- Método de pagamento
- [Calculado] Frete
- [Calculado] Descontos
- [Calculado] ICMS
- [Calculado] Imposto municipal
- Se for um cliente prime, ele pode usar o saldo de cashback para abater na compra.
- Calcular o valor das vendas do último mês de cada cliente:
- verificar se é elegível para ser cliente especial
- Calcular o saldo de cashback para os clientes prime
Os testes devem ser triangulados utilizando a parametrização de testes do JUnit4.
- Java:
openjdk:11
- Maven:
maven:3.8.5-openjdk-11
- JUnit4:
junit 4.13.2
O comando a seguir gera a pasta trab1
.
./mvn mvn archetype:generate -DgroupId=br.unb -DartifactId=trab1 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
- Atualize no arquivo pom.xml a versão do junit para 4:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
- Adicione a seção de properties do projeto ao pom.xml para configurar a versão de java adequada:
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release>
</properties>
- Adicione o plugin responsável pelo build ao pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</plugins>
</build>
Dependência de mocks: mockito
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.0.0</version>
<scope>test</scope>
</dependency>
./mvn clean install # ou mvn clean install, caso tenha maven instalado localmente.
- Ciclo 1 de TDD: docs/ciclo1.md
- Ciclo 1 de TDD: docs/ciclo1.md
- Ciclo 2 de TDD: docs/ciclo2.md
- Ciclo 3 de TDD: docs/ciclo3.md
- Ciclo 4 de TDD: docs/ciclo4.md
- Ciclo 5 de TDD: docs/ciclo5.md
- Refatoração: docs/refatoracao.md
- Análise: docs/analise.md
- PDF: docs/analise.pdf