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:
- Recuperação de Dias de Atestado: Obtém o número de dias de afastamento do tipo
AtestadoMedico. - Condições de Saída: Se
DiasAtestadofor zero ou a variável globalVG_Atestado_IsentoINSSfor falsa, o cálculo é encerrado (retornanull). - Definição da Base de Cálculo: A base de cálculo (
BC_Afastam) é definida comoVG_MediaComisCalcAfastamentose este for maior que zero; caso contrário, utilizaVG_VlrSalNom(Valor do Salário Nominal). - 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,DiasAtestadoeVG_DiasAfastAcumsão reduzidos em 1 dia. - Cálculo da Quantidade: A quantidade da verba é calculada multiplicando
DiasAtestadopela razãoVG_HsMes(Horas por Mês) dividido por 30. - Cálculo do Valor Total: O valor total é calculado dividindo
BC_Afastampor 30, multiplicando porDiasAtestado, e arredondando o resultado. - 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_Filhopara retorno antecipado. - Verificação de
DiasAtestadoeVG_Atestado_IsentoINSSpara 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_DiasAfastAcumatinge 31 dias. - Verificação e erro para Atestado COVID-19 a partir de 2021.
- Verificação do cliente “employer” e
🔗 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.TipoVinculoforImpatriadoeVG_ImpatriadoSemINSSforfalse. - 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ávelVG_LimitadorDiasMes. - Divisor de Dias para Cálculo: acal utiliza a variável
VG_DivisorDiasMescomo divisor para o cálculo do valor total. - Cálculo da Quantidade: acal define a
HoleriteVerba.Quantidadecomo 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