-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Teste/luiz-henrique-da-costa #82
Open
lhcosta93
wants to merge
15
commits into
aikodigital:main
Choose a base branch
from
lhcosta93:teste/luiz-henrique-da-costa
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Teste/luiz-henrique-da-costa #82
lhcosta93
wants to merge
15
commits into
aikodigital:main
from
lhcosta93:teste/luiz-henrique-da-costa
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…o, assim retirando número fixos da regra de negócio e centralizando em um única classe.
…lexibilidade e escalabilidade na criação de novos Gêneros de Peças.
…riado uma WebAPI de Consulta com Swagger
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Este Pull Request realiza a refatoração e a implementação de novos métodos relacionados ao cálculo de valores para o sistema de faturamento. As mudanças incluem a adição de interfaces e classes responsáveis pelos cálculos de valores base, valores adicionais e créditos de audiência. Também foram implementados novos testes para garantir a precisão desses cálculos. Além disso, todos os valores fixos foram alterados para permitir a persistência e oferecer flexibilidade e escalabilidade para a adição de novos gêneros de peças.
Principais Alterações:
Implementação das Interfaces e Classes:
ICalculateBaseAmountPerLine e CalculateBaseAmountPerLine: Interface e implementação para calcular o valor base por linha.
ICalculateAdditionalValuePerPlayType e CalculateAdditionalValuePerPlayType: Interface e implementação para calcular valores adicionais por tipo de peça.
ICalculateCreditAudience e CalculateCreditAudience: Interface e implementação para calcular créditos baseados na audiência.
Atualização dos Valores Fixos:
Todos os valores fixos foram substituídos por valores configuráveis e persistentes, permitindo que sejam armazenados no banco de dados. Isso melhora a flexibilidade do sistema e facilita a adição de novos gêneros de peças sem a necessidade de alterações no código-fonte.
Implementação dos Métodos de Impressão:
InvoicePrintText: Implementa a interface IInvoicePrint para gerar relatórios em texto.
InvoicePrintXML: Implementa a interface IInvoicePrint para gerar relatórios em XML.
Implementação do Contexto do Banco de Dados:
ApplicationDbContext: Atualização das definições de DbSet para refletir as novas entidades e configurações, incluindo as novas configurações de peças e créditos.
Implementação do Controlador de API com Swagger:
InvoiceController: Atualização para utilizar o novo StatementPrinter e suas dependências, além de habilitar a documentação com Swagger.
Adição de Testes:
Testes de Cálculo de Valores: Implementação de testes para verificar a precisão dos cálculos de valores base e valores adicionais.
CalculateBaseAmount_ValidLines_ReturnsExpectedAmount: Testa o cálculo do valor base para um número específico de linhas.
CalculateAdditionalValue_ForAudienceAboveThreshold_ReturnsExpectedAmount: Testa o cálculo de valores adicionais quando a audiência está acima do limite.
CalculateAdditionalValue_ForAudienceBelowThreshold_ReturnsExpectedAmount: Testa o cálculo de valores adicionais quando a audiência está abaixo do limite.
Impacto:
Essas mudanças melhoram a estrutura e a manutenção do código, garantindo que as lógicas de cálculo sejam devidamente testadas e validadas. A refatoração segue os princípios do Clean Code e melhora a clareza e a testabilidade do código. A atualização dos valores fixos para configurações persistentes oferece maior flexibilidade e escalabilidade, permitindo a adaptação às necessidades futuras do sistema.
Testes:
Todos os testes foram executados e passaram com sucesso. Os testes cobrem os cálculos base e adicionais e garantem que os valores retornados estão de acordo com as expectativas.