[16.0[REF] l10n_br_account_payment_order, l10n_br_account_payment_brcobranca: Alterando o 'Código de Multa' de Char para Objeto/l10n_br_cnab.code #4026
+655
−178
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.
Change CNAB Fee Code from Char to Object.
Alterando o Código de Multa de Char para Objeto/l10n_br_cnab.code, esse PR é semelhante a outros PRs já feitos:
O objetivo é que com essa alteração o Usuário vai passar a ver apenas o Conjunto de Códigos de Multa referente a cada Banco/CNAB com a mesma Nomenclatura usada pela Documentação do Banco, abaixo as possibilidades de Códigos de acordo com as Documentações do Bancos/CNAB que existem hoje no modulo:
Nesse caso estou criando um arquivo febraban_240_boleto_fee_code.xml com os casos que são 240 que tem a mesma Nomenclatura e Quantidade de Códigos com o mesmo objetivo, por enquanto AILOS, Bradesco, Brasil e Santander, os Códigos são 1 - Valor Fixo e 2 - Percentual, existem casos semelhantes mas não iguais por isso foram criados arquivos específicos, por exemplo o SICRED tem apenas o 2 - Percentual o CEF tem o 0 - Sem Multa.
Algumas divergências entre os Códigos:
Existem casos em que existe um Código especifico para Isento ou Sem Multa outros não, em alguns casos é o "0" zero porém para o Banco do Brasil 400 é o 9 - Dispensar Cobrança de Multa o UNICRED 240/400 usa 3 - Isento
O Itaú 240/400 tem nomenclaturas diferentes dos outros casos:
0 - NÃO REGISTRA A MULTA
1 - VALOR EM REAIS (FIXO)
2 - VALOR EM PERCENTUAL COM DUAS CASAS DECIMAIS CONFORME ESTRUTURA DO CAMPO
O Santander 400 usa os Códigos 0 - Sem Multa e 4 - Percentual
OBS.: Na documentação do BRCobranca não aparece uma nomenclatura clara, caso alguém acredite ter algo melhor posso ver de alterar
Na criação do Arquivo de Remessa foi feita uma alteração para quando a informação da Multa deve ser incluída hoje verifica se tem o boleto_fee_percent https://github.com/OCA/l10n-brazil/blob/16.0/l10n_br_account_payment_brcobranca/models/account_payment_line.py#L137 agora vai verificar se tem o Código de Multa e depois se tem o Percentual de Multa, isso está sendo feito porque como foi visto nesse PR podem existir os casos de Isento ou Sem Multa e nesses casos o campo boleto_fee_percent pode estar vazio.
O script de migração é bem parecido com o que foi feito para o caso Código de Protesto https://github.com/OCA/l10n-brazil/blob/16.0/l10n_br_account_payment_order/migrations/16.0.6.0.0/post-migration.py adaptado para o Código de Multa, então caso algum Código não seja encontrado será criado um Código Não Identificado.
Segue um exemplo de como ficou:
cc @OCA/local-brazil-maintainers