Wiki / SuperCalculo ~7 min

1235 - Atestado Médico (isento INSS)

⚙️ Metadados

  • Código: 1235
  • Tipo: Provento
  • INSS: ISE
  • FGTS: SAL
  • IRRF: SAL
  • Natureza eSocial: 1050 - Remuneração de dias de afastamento
  • DSR: Não
  • Médias: Não
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 4

🧮 Regra Geral

Lógica de Cálculo:

  1. Recuperação de Dias de Atestado: Obtém o número de dias de afastamento do tipo AtestadoMedico.
  2. Condições de Saída: Se DiasAtestado for zero ou a variável global VG_Atestado_IsentoINSS for falsa, o cálculo é encerrado (retorna null).
  3. Definição da Base de Cálculo: A base de cálculo (BC_Afastam) é definida como VG_MediaComisCalcAfastamento se este for maior que zero; caso contrário, utiliza VG_VlrSalNom (Valor do Salário Nominal).
  4. Ajuste para Mensalistas: Se o empregado for mensalista e houver dias de atestado, os dias de afastamento são acumulados em VG_DiasAfastAcum. Se o acumulado atingir 31 dias, DiasAtestado e VG_DiasAfastAcum são reduzidos em 1 dia.
  5. Cálculo da Quantidade: A quantidade da verba é calculada multiplicando DiasAtestado pela razão VG_HsMes (Horas por Mês) dividido por 30.
  6. Cálculo do Valor Total: O valor total é calculado dividindo BC_Afastam por 30, multiplicando por DiasAtestado, e arredondando o resultado.
  7. Verificação de Atestado COVID-19 (Depreciado): Verifica se há dias de afastamento por Atestado Médico / COVID-19 (LM_COVID19) a partir de 2021. Se encontrar, dispara um erro (SysFunc_Panico) informando que o lançamento não é mais previsto.
  • Fórmula matemática:

    • Quantidade = DiasAtestado * (VG_HsMes / 30)
    • ValorTotal = (BC_Afastam / 30) * DiasAtestado
  • Variáveis Utilizadas:

    • DiasAtestado
    • , VG_Atestado_IsentoINSS
    • , BC_Afastam
    • , VG_MediaComisCalcAfastamento
    • , VG_VlrSalNom
    • , VG_DiasAfastAcum
    • , VG_HsMes, VG_VlrBaseCalcInsal
    • , Lancamento.Percentual
    • , HoleriteVerba.Quantidade
    • , HoleriteVerba.ValorTotal.
  • Condições Especiais:

    • Verificação do cliente “employer” e Cod_Contrato_Filho para retorno antecipado.
    • Verificação de DiasAtestado e VG_Atestado_IsentoINSS para cálculo.
    • Customização da base de cálculo para o cliente “jmalucelli” com base em verbas 80 e 85.
    • Ajuste de dias para empregados mensalistas quando VG_DiasAfastAcum atinge 31 dias.
    • Verificação e erro para Atestado COVID-19 a partir de 2021.

🔗 Dependências

  • Verbas Relacionadas:
    • Verba 80 (Insalubridade): Utilizada para compor a base de cálculo para o cliente “jmalucelli”.
    • Verba 85 (Periculosidade): Utilizada para compor a base de cálculo para o cliente “jmalucelli”.
  • Tipo de Relação: Dependência. O cálculo da verba 1235 pode depender dos valores lançados para as verbas 80 e 85 para clientes específicos.

🧩 Funções

  • SysFunc_TagPossuiConteudo: Verifica se uma tag possui um dos conteúdos especificados.
  • Func_ValidarExistenciaLancamento: Valida a existência de um lançamento.
  • RecuperarDiasAfastamento: Recupera o número de dias de afastamento de um tipo específico.
  • SysFunc_MesmoMesAno: Compara se duas datas pertencem ao mesmo mês e ano.
  • Func_ArredondamentoPadrao: Realiza o arredondamento padrão de um valor.
  • SysFunc_DiasAfastamentoSubMesPeriodo: Recupera dias de afastamento de um subtipo específico dentro de um período.
  • SysFunc_Panico: Dispara uma mensagem de erro que interrompe o processo.
  • Argumento: Registra um argumento para a memória de cálculo.
  • EscreverMemoria: Formata e registra a memória de cálculo.

🎯 Particularidades por Cliente/Setor

👤 Acal
  • Condições de Retorno Nulo Iniciais: acal inclui uma condição adicional para retornar nulo se o Empregado.TipoVinculo for Impatriado e VG_ImpatriadoSemINSS for false.
  • Base de Cálculo: acal utiliza sempre o VG_VlrSalNom (Salário Nominal) como base de cálculo (BC_AtMedico).
  • Cálculo de Adicionais (Insalubridade/Periculosidade): acal não possui a lógica para adicionar valores de insalubridade (verba 80) ou periculosidade (verba 85) à base de cálculo.
  • Acúmulo e Limitação de Dias de Atestado: acal acumula os dias de atestado (VG_DiasAfastAcum) independentemente do tipo de pagamento do empregado e limita os dias de atestado usando a variável VG_LimitadorDiasMes.
  • Divisor de Dias para Cálculo: acal utiliza a variável VG_DivisorDiasMes como divisor para o cálculo do valor total.
  • Cálculo da Quantidade: acal define a HoleriteVerba.Quantidade como o número de dias de atestado (DiasAtestado).
  • Memória de Cálculo: acal referencia a “Fórm. 17172” em sua memória de cálculo.
👤 Employer
  • Se o contrato filho (Cod_Contrato_Filho) for “1.1359.35” ou “1.1359.41”, e houver um lançamento existente com valor total maior que zero, o cálculo da verba é ignorado, retornando o HoleriteVerba atual.
👤 Jmalucelli
  • a base de cálculo (BC_Afastam) é incrementada com valores de verbas 80 (Insalubridade) e 85 (Periculosidade) se houverem lançamentos no mês de referência.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

ValorTotal = Func_ArredondamentoPadrao (VG_VlrSalNom + Adicionais (Rubricas 80 + 85)/DivisorDias(30 ou Calendario) x DiasCalculoAtestado)


1. Filtros de Elegibilidade Primária e Isenções por Vínculo (Atende Acal / Employer)

Se (Configuracao.ValidarImpatriadoSemInss == Verdadeiro E Empregado.TipoVinculo == EnumTipoVinculoBO.Impatriado) { Se (VG_ImpatriadoSemINSS == Falso) { InterromperCalculo(); // Filtro de exceção por vínculo (Acal) } }

Se (Configuracao.BloquearContratosFilhosEspecificos == Verdadeiro) { Se (Empregado.Cod_Contrato_Filho == “1.1359.35” OU Empregado.Cod_Contrato_Filho == “1.1359.41”) { Se (Func_ValidarExistenciaLancamento(Lancamento) E Lancamento.ValorTotal > 0) { // Preserva e mantém lançamento prévio para contratos blindados (Employer) HoleriteVerba.ValorTotal = Lancamento.ValorTotal; InterromperCalculo(); } } }

2. Condições de Saída de Regra Geral

Definir DiasAtestado = RecuperarDiasAfastamento(EnumTipoAfastamentoBO.AtestadoMedico);

Se (DiasAtestado == 0 OU VG_Atestado_IsentoINSS == Falso) { InterromperCalculo(); }

Trava Depreciada de Segurança (Validação Pandêmica COVID-19) Se (Solicitacao.DataReferencia.Year >= 2021) { Definir DiasCovid = SysFunc_DiasAfastamentoSubMesPeriodo(EnumSubTipoAfastamentoBO.LM_COVID19); Se (DiasCovid > 0) { SysFunc_Panico(“Inconsistência Regulatória: O afastamento por COVID-19 (LM_COVID19) foi descontinuado do fluxo de isenção.”); } }

3. Mecanismo de Ajuste Comercial para Mensalistas (Regra Geral vs Extensão Acal)

Definir DiasCalculoAtestado = DiasAtestado;

Se (Empregado.TipoPagamento == EnumTipoPagamentoBO.Mensalista OU Configuracao.AcumularDiasParaTodosOsVinculos == Verdadeiro) { VG_DiasAfastAcum = VG_DiasAfastAcum + DiasAtestado;

Se (VG_DiasAfastAcum >= 31.00) { // Reduz teto para adequação comercial em meses de 31 dias DiasCalculoAtestado = DiasCalculoAtestado - 1.00; VG_DiasAfastAcum = VG_DiasAfastAcum - 1.00; } }

4. Definição da Base de Cálculo Dinâmica e Adicionais (Geral vs JMalucelli)

Definir BaseAtestado = VG_VlrSalNom;

Se (Configuracao.OrigemBaseAtestado == “MediaComissoes” E VG_MediaComisCalcAfastamento > 0) { BaseAtestado = VG_MediaComisCalcAfastamento; }

Se (Configuracao.ComporBaseComAdicionaisPai == Verdadeiro) { // Incorpora proporcionalmente adicionais de risco (Atende JMalucelli - Verbas 80 e 85) Definir ValorInsalubridade = ObterValorRubricaCalculada(80); Definir ValorPericulosidade = ObterValorRubricaCalculada(85); BaseAtestado = BaseAtestado + ValorInsalubridade + ValorPericulosidade; }

5. Definição Dinâmica do Denominador (Divisor de Dias)

Definir DivisorDias = 30.00; Se (Configuracao.TipoDivisorDias == “CalendarioMes”) { DivisorDias = VG_DivisorDiasMes; // Atende Acal (Divisores dinâmicos 28, 29, 30 ou 31) }

6. Consolidação de Quantidade e Valores

Se (Configuracao.UnidadeQuantidade == “DiasPuros”) { HoleriteVerba.Quantidade = DiasCalculoAtestado; // Atende Acal } Conversao Padrao { HoleriteVerba.Quantidade = DiasCalculoAtestado * (VG_HsMes / DivisorDias); // Proporcionalização em Horas }

HoleriteVerba.ValorTotal = Func_ArredondamentoPadrao((BaseAtestado / DivisorDias) * DiasCalculoAtestado); AdicionarAoHolerite(HoleriteVerba);


Parametrizações Propostas para Reestruturação

1. REGRAS DE ENTRADA, VÍNCULOS E PROTEÇÃO DE CONTRATOS COLETIVOS

[X] Ativar Validação Especial de Isenção para Vínculo Impatriado (Atende Acal) [X] Ativar Bloqueio de Recálculo para Contratos Filhos Específicos (Employer) -> Lista de IDs Protegidos: [ 1.1359.35, 1.1359.41 ]

2. DIRETRIZES DE ACÚMULO FINANCEIRO E DENOMINADOR (DIVISOR)

[X] Acumular Dias de Afastamento Independentemente do Tipo de Pagamento (Acal) Regra do Denominador de Dias (Divisor): ( ) Fixo Comercial Padrão (30 Dias) (X) Dias Calendário / Reais do Mês de Referência (28, 29, 30, 31) (Atende Acal)

3. COMPOSIÇÃO DA BASE DE CÁLCULO E ADICIONAIS SINDICAIS

Composição Base de Afastamento: (X) Salário Nominal Puro Contratual (VG_VlrSalNom) ( ) Média de Comissões para Afastamentos (VG_MediaComisCalcAfastamento)

[X] Compor Base com Integração de Rubricas de Adicional de Risco (JMalucelli) -> Rubricas Alvo Mapeadas (Somatório): [ 80 ] (Insalubridade) + [ 85 ] (Periculosidade)

4. UNIDADE DE MEDIDA DE EXIBIÇÃO NO HOLERITE

Unidade de Saída para o Campo Quantidade: ( ) Proporcionalização de Horas do Mês (DiasAtestado * (VG_HsMes / Divisor)) (X) Dias Puros de Afastamento (Contagem Real de Dias) (Atende Acal)

5. MATRIX TRIBUTÁRIA ESOCIAL

Código da Rubrica Destino: [ 1235 ] Natureza eSocial: [ 1050 ] Incidência INSS: [ ISE - Isento ] DSR: [ Não ] Incidência FGTS: [ SAL - Salário ] Médias: [ Não ] Incidência IRRF: [ SAL - Salário ] Impacto Financeiro: [ Sim ]

Clientes com mesma regra

  • Employer / Regra Geral: Atendidos de forma nativa pela espinha dorsal do cálculo proporcional em horas, mantendo a blindagem operacional para o conjunto de contratos filhos mapeados via parametrização no Bloco 1.
  • Acal: Migrado integralmente ao ativar o divisor tipo “Calendário do Mês”, a unidade de saída fixada em “Dias Puros”, e a flag de acúmulo de dias estendida a todos os tipos de vínculos. A herança de formatação da memória de cálculo direciona automaticamente para a máscara técnica correspondente.
  • Jmalucelli: Totalmente unificado ao habilitar o parâmetro “Compor Base com Integração de Rubricas de Adicional de Risco”. O motor dinâmico intercepta os resultados processados preliminarmente para as verbas 80 e 85, somando as grandezas diretamente sobre o Salário Nominal antes de ratear a fração diária de afastamento.

Status Documental

  • Status: Documentada
  • Origem: export do Notion + catálogo da wiki
  • Fonte rastreável: 30dc75ea2e838139a8f0c114ac6bf45e

Voltar ao catálogo

Digite para pesquisar...

Scroll para zoom · Esc para fechar

⌨️ Atalhos de teclado
Navegação
Ctrl K Pesquisar na wiki
Ctrl F Buscar na página
? Ver atalhos
Visualização
Ctrl Shift F Modo foco
A+ / A− Tamanho da fonte
Ctrl D Alternar tema
Ações
Ctrl B Favoritar página
Esc Fechar dialogs