466 - Desc. de Falta (dia)
Metadados
- Código: 466
- Tipo: Desconto
- INSS: SAL
- FGTS: SAL
- IRRF: SAL
- Natureza eSocial: 9209 - Faltas ou atrasos
- DSR: Não
- Médias: Não
- Impacto Financeiro: Não
- Impacto Contábil: Sim
- Sequência: 832
🧮 Regra Geral
Lógica de Cálculo:
- A verba é calculada apenas se a
Lancamento.Quantidade(quantidade de dias de falta) for maior que zero. - Inicialmente, a base de cálculo para faltas (
BC_Para_Faltas) é definida comoVG_BCHExtAdNot(Base de Cálculo de Horas Extras e Adicional Noturno). - A
HoleriteVerba.Quantidadeé definida com o valor deLancamento.Quantidade. - O
HoleriteVerba.ValorTotalé calculado dividindo aBC_Para_FaltaspeloVG_DivisorDiasMes(divisor de dias do mês), multiplicando pelaLancamento.Quantidadee aplicando o arredondamento padrão (Func_ArredondamentoPadrao). O resultado final é transformado em negativo pela funçãoNegativo(), indicando um desconto. - A memória de cálculo é gerada detalhando os valores utilizados.
-
Fórmula matemática:
Valor = -Func_ArredondamentoPadrao((BC_Para_Faltas / VG_DivisorDiasMes) * Lancamento.Quantidade)
-
Variáveis Utilizadas:
Lancamento.QuantidadeBC_Para_FaltasVG_BCHExtAdNotSolicitacao.ClienteVG_VlrSalNomVG_DivisorDiasMesHoleriteVerba.QuantidadeHoleriteVerba.ValorTotal.
-
Condições Especiais:
if (Lancamento.Quantidade > 0M): A verba só é processada se houver quantidade de faltas.
🧩 Funções
Negativo(): Converte um valor para negativo.Func_ArredondamentoPadrao(): Arredonda um valor monetário conforme a regra padrão do sistema.Argumento(): Registra um valor para ser usado na memória de cálculo.EscreverMemoria(): Formata e armazena a memória de cálculo.
🎯 Particularidades por Cliente/Setor
👤 Jufap
-
Se a BC_Para_Faltas é alterada para VG_VlrSalNom (Valor do Salário Nominal).
-
Condições Especiais:
if (Solicitacao.Cliente.ToLower() == "jufap"): Customiza a base de cálculo para o cliente JUFAP.
💡 Proposta de Novo Cálculo
Fórmula proposta (padronizada):
ValorTotal = -1 * Func_ArredondamentoPadrao((BaseCalculoFaltas / DivisorDias) * Lancamento.Quantidade)
Onde BaseCalculoFaltas = Se (Configuracao.UtilizarSalarioNominalPuro) Entao VG_VlrSalNom Senao VG_BCHExtAdNot.
1. Filtros de Elegibilidade e Isenções (Piso Seguro)
Definir ExisteLancamento = Func_ValidarExistenciaLancamento(Lancamento); Definir DiasFalta = 0.00;
Se (ExisteLancamento == Verdadeiro) { DiasFalta = Lancamento.Quantidade; }
// A verba de desconto só é calculada se houver lançamento ativo e quantidade de dias > 0 Se (ExisteLancamento == Falso Ou DiasFalta <= 0.00) { HoleriteVerba = null; InterromperCalculo(); }
2. Determinação do Divisor de Dias e Base de Cálculo
Definir DivisorDias = VG_DivisorDiasMes;
// Se o divisor for inconsistente (zero ou negativo), assume o divisor padrão parametrizado (ex: 30 dias) Se (DivisorDias <= 0.00) { DivisorDias = Configuracao.DivisorDiasPadrao; }
Definir BaseCalculoFaltas = VG_BCHExtAdNot;
// Caso parametrizado, permite utilizar o salário nominal puro como base alternativa Se (Configuracao.UtilizarSalarioNominalPuro == Verdadeiro) { BaseCalculoFaltas = VG_VlrSalNom; }
3. Liquidação e Atribuição de Valores (INSS: SAL, FGTS: SAL, IRRF: SAL)
Definir ValorCalculado = (BaseCalculoFaltas / DivisorDias) * DiasFalta; Definir ValorFinalDesconto = Func_ArredondamentoPadrao(ValorCalculado);
// Garante o sinal negativo para representação de desconto no holerite Definir ValorTotalLiquidado = Negativo(ValorFinalDesconto);
HoleriteVerba.ValorTotal = ValorTotalLiquidado; HoleriteVerba.Quantidade = DiasFalta; HoleriteVerba.ValorIntegral = Negativo(ValorCalculado);
// Vinculação tributária conforme parametrização da Rubrica Mãe e eSocial Natureza 9209 (Faltas e Atrasos) HoleriteVerba.IncidenciaINSS = RubricaMae.IncidenciaINSS; // SAL (Reduz base) HoleriteVerba.IncidenciaFGTS = RubricaMae.IncidenciaFGTS; // SAL (Reduz base) HoleriteVerba.IncidenciaIRRF = RubricaMae.IncidenciaIRRF; // SAL (Reduz base)
4. Rastreabilidade e Auditoria
Argumento(BaseCalculoFaltas.ToString(“F2”)); Argumento(DivisorDias.ToString(“F0”)); Argumento(DiasFalta.ToString(“F2”)); Argumento(ValorTotalLiquidado.ToString(“F2”));
EscreverMemoria(“[DESC_FALTA_DIA]”, “Base de Cálculo: R$ {0}. Divisor Mensal: {1} dias. Quantidade de Faltas: {2} d. Valor Descontado: R$ {3}.”);
AdicionarAoHolerite(HoleriteVerba);
Parametrizações Propostas para Reestruturação
1. PARAMETRIZAÇÃO DE CÁLCULO E DIVISORES
[X] Exigir Validação de Lançamento Ativo para Geração do Desconto [X] Aplicar Divisor de Dias do Mês de Referência (VG_DivisorDiasMes) -> Divisor de Contingência (Divisão por Zero): [ 30 ] Dias
2. COMPOSIÇÃO DA BASE DE CÁLCULO DE FALTA
Composição da Base de Faltas (Selecionar uma opção): ( ) Utilizar Salário Nominal Puro (VG_VlrSalNom) (X) Utilizar Base Consolidada de Horas Extras e Adicional Noturno (VG_BCHExtAdNot)
3. MATRIX TRIBUTÁRIA ESOCIAL E ENCARGOS
Código da Rubrica Destino: [ 466 ] Natureza eSocial: [ 9209 - Faltas ou atrasos ] Incidência INSS: [ SAL - Reduz Base ] DSR: [ Não ] Incidência FGTS: [ SAL - Reduz Base ] Médias: [ Não ] Incidência IRRF: [ SAL - Reduz Base ] Impacto Financeiro: [ Sim ] Impacto Contábil: [ Sim ]
Clientes com mesma regra
- Jufap: A operação do cliente Jufap é totalmente suportada pela nova estrutura parametrizada. O cálculo passa a responder de forma limpa ao volume de dias lançado, apurando o desconto proporcional sobre a base salarial padrão consolidada na variável
VG_BCHExtAdNotdividido pelos dias do mês, eliminando qualquer dependência de filtros manuais ou desvios de programação.
Status Documental
- Status: Documentada
- Origem: export do Notion + catálogo da wiki
- Fonte rastreável:
30dc75ea2e8381c2a458c3a0dacb3065