4.0 KiB
Definição de Padrão para Configuração de Novos Impostos
Este documento estabelece o protocolo técnico e funcional para a introdução de novos tributos, contribuições ou retenções no Sistema Integrado de Gestão (SIGEFP), garantindo a automatização sem necessidade de refatoração de código.
1. Princípio da Extensibilidade
O sistema foi desenhado para suportar a adição de novas figuras tributárias desde que estas obedeçam a modelos matemáticos pré-definidos (Fixo ou Progressivo). Qualquer imposto que dependa de variáveis exógenas não previstas na entidade Agente ou Tabela Salarial requer desenvolvimento específico.
2. Contrato de Dados (Data Contract)
Para que um novo imposto seja reconhecido e processado automaticamente pelo Motor de Cálculo (PayrollService), este deve ser registado na base de dados obedecendo rigorosamente à seguinte estrutura:
2.1. Entidade: Tipo de Desconto (deduction_type)
Representa a "Categoria" do tributo.
- Identificador (Code): Deve ser único, curto e em caixa alta (Ex:
TSAN). - Nome (Name): O nome amigável que aparecerá nas abas de configuração e nos recibos de vencimento.
- Mandatório (Mandatory):
TRUEse for aplicado a todos automaticamente.
2.2. Entidade: Regra de Escalão (tax_bracket)
Define a lógica matemática. O sistema interpreta cada registo como uma regra condicional: "Se o salário base estiver entre X e Y, aplique Z".
| Campo | Obrigatoriedade | Descrição Técnica |
|---|---|---|
deduction_type_id |
Obrigatório | Chave estrangeira para o Tipo de Desconto. |
lower_limit |
Obrigatório | Limite inferior da faixa de incidência (Inclusive). |
upper_limit |
Opcional | Limite superior. Se nulo, considera-se infinito. |
fixed_amount |
Condicional | Valor monetário fixo a descontar. Preivalece sobre percentagens. |
rate_percentage |
Condicional | Coeficiente decimal (Ex: 0.15 para 15%) aplicado sobre a base tributável. |
excess_deduction |
Opcional | "Parcela a Abater". Valor subtraído do resultado da multiplicação da taxa. |
3. Modelos Matemáticos Suportados
O motor de cálculo executa a seguinte lógica de decisão para cada escalão encontrado. Ao configurar um novo imposto, deve-se escolher apenas um dos modelos abaixo.
3.1. Modelo A: Tributação Fixa (Flat Fee)
Aplicável a taxas de valor nominal (ex: Taxa de Saneamento, Contribuição Sindical Fixa).
- Configuração: Preencher apenas
fixed_amount. - Fórmula:
Desconto = Valor Fixo
3.2. Modelo B: Tributação Proporcional Simples (Flat Rate)
Aplicável a impostos de percentagem única ou variável por faixa, sem dedução (ex: Dízimo, Contribuições Especiais).
- Configuração: Preencher
rate_percentage. Deixarexcess_deductionefixed_amountnulos. - Fórmula:
Desconto = Base Tributável × Taxa
3.3. Modelo C: Tributação Progressiva Completa (padrão IRPS)
Aplicável a impostos sobre rendimento com suavização de curvas.
- Configuração: Preencher
rate_percentageeexcess_deduction. - Fórmula:
Desconto = (Base Tributável × Taxa) - Parcela a Abater
4. Protocolo de Inserção (Procedimento)
Para operacionalizar um novo imposto:
- Definição: Insira o registo mestre na tabela
deduction_type. - Parametrização: Insira os N escalões necessários na tabela
tax_bracket, cobrindo todas as faixas salariais possíveis (de 0 ao infinito). - Verificação:
- Acesse o módulo de Recursos Humanos -> Configurações -> Escalões.
- Verifique se uma nova aba com o nome do imposto foi gerada automaticamente.
- Confirme se os valores aparecem conforme inserido.
- Execução: Na próxima execução da folha, o sistema iterará sobre o novo tipo e aplicará as regras aos agentes elegíveis.
Nota Importante: O sistema assume que a base de cálculo para novos impostos progressivos é (Salário Bruto - Segurança Social), salvo configuração específica em contrário nas Regras Globais.