Wiki / SuperCalculo ~4 min

207 - Diárias para Viagem (acima de 50% Salário)

⚙️ Metadados

  • Código: 207
  • Tipo: Provento
  • INSS: SAL
  • FGTS: SAL
  • IRRF: SAL
  • Natureza eSocial: 1099 - Outras verbas salariais
  • DSR: Não
  • Médias: Não
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 191

🧮 Regra Geral

  • Lógica de Cálculo: A verba 207 é calculada apenas se houver um lançamento prévio associado a ela. A fórmula verifica a existência de um Lancamento utilizando a função Func_ValidarExistenciaLancamento. Se nenhum lançamento for encontrado (false), a execução da fórmula é interrompida (return null), e nenhum valor é atribuído à verba. Caso contrário, presume-se que o valor da verba é proveniente do Lancamento existente ou de um cálculo subsequente não detalhado neste trecho de código.

  • Variáveis Utilizadas:

    • Lancamento (objeto que representa o lançamento da verba).
  • Condições Especiais:

    • if (Func_ValidarExistenciaLancamento(Lancamento) == false): Esta condição verifica se existe um lançamento para a verba. Se não houver, a verba não é calculada.

🧩 Funções

Func_ValidarExistenciaLancamento: Verifica se existe um lançamento (manual ou automático) para a verba atual.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

LimiteIsencao = SalarioContratual * (PercentualLimiteIsencao / 100)

ValorTributavelCalculado = SE(Origem == “ValorDireto”, ValorDigitado, SE(CalcularExcedente == Verdadeiro, MAX(0, TotalDiarias - LimiteIsencao), TotalDiarias))

ValorFinal207 = Func_ArredondamentoPadrao(MAX(PisoMinimo, MIN(ValorTributavelCalculado, SE(PossuiTeto == Verdadeiro, TetoMaximo, ValorTributavelCalculado))))


1. Filtros de Elegibilidade e Isenções (Piso Seguro)

SE Config.PossuiDataVigenciaInicio E Solicitacao.DataReferencia < Config.DataVigenciaInicio ENTÃO RETORNAR NULO FIM_SE

SE Solicitacao.TipoProcesso == PROVISOES E NAO Config.PermitirCalculoEmProvisoes ENTÃO RETORNAR NULO FIM_SE

SE NAO Config.TiposFolhaPermitidos.Contem(Solicitacao.TipoFolha) ENTÃO RETORNAR NULO FIM_SE

SE Config.ExigirFiltroElegibilidadeEmpresa E NAO Config.EmpresasHabilitadas.Contem(Empregador.Id) ENTÃO RETORNAR NULO FIM_SE

2. Determinação da Base de Cálculo, Lançamentos e Valoração

LancamentoManual = Holerite.ObterLancamento(“207”) ValorBaseCalculado = 0.0 QuantidadeDiarias = 0.0 OrigemValoracao = ""

Definição da Base de Comparação Salarial (50% do Salário) SalarioContratual = Empregado.SalarioContratual LimiteExcedenteSemTributacao = SalarioContratual * (Config.PercentualLimiteIsencao / 100.0)

SE Func_ValidarExistenciaLancamento(LancamentoManual) E LancamentoManual.ValorTotal > 0.0 ENTÃO ValorBaseCalculado = ABS(LancamentoManual.ValorTotal) QuantidadeDiarias = SE(LancamentoManual.Quantidade > 0.0, LancamentoManual.Quantidade, 1.0) OrigemValoracao = “LANCAMENTO_MANUAL_VALOR”

SENÃO SE Func_ValidarExistenciaLancamento(LancamentoManual) E LancamentoManual.Quantidade > 0.0 ENTÃO QuantidadeDiarias = LancamentoManual.Quantidade ValorDiariaUnitario = SE(LancamentoManual.ValorReferencia > 0.0, LancamentoManual.ValorReferencia, Config.ValorDiariaPadrao) ValorTotalDiarias = QuantidadeDiarias * ValorDiariaUnitario

Apuração da parcela tributável (excedente a 50% do salário contratual, conforme regra legada/CLT anterior à Reforma) SE Config.CalcularExcedenteAutomatico E ValorTotalDiarias > LimiteExcedenteSemTributacao ENTÃO ValorBaseCalculado = ValorTotalDiarias - LimiteExcedenteSemTributacao SENÃO ValorBaseCalculado = ValorTotalDiarias FIM_SE

OrigemValoracao = “LANCAMENTO_MANUAL_QUANTIDADE”

SENÃO SE Config.PermitirCalculoAutomaticoViagens ENTÃO ValorTotalDiarias = Viagens.ObterTotalDiariasMes(Solicitacao.Competencia) QuantidadeDiarias = Viagens.ObterQuantidadeDiariasMes(Solicitacao.Competencia)

SE ValorTotalDiarias > LimiteExcedenteSemTributacao ENTÃO ValorBaseCalculado = ValorTotalDiarias - LimiteExcedenteSemTributacao OrigemValoracao = “AUTOMATICO_MODULO_VIAGENS” SENÃO RETORNAR NULO FIM_SE

SENÃO RETORNAR NULO FIM_SE

ValorBrutoCalculado = ValorBaseCalculado

3. Aplicação de Limites, Tetos e Pisos

SE Config.PossuiTetoMaximo E ValorBrutoCalculado > Config.ValorTetoMaximo ENTÃO ValorBrutoCalculado = Config.ValorTetoMaximo SENÃO SE Config.PossuiPisoMinimo E ValorBrutoCalculado < Config.ValorPisoMinimo ENTÃO ValorBrutoCalculado = Config.ValorPisoMinimo FIM_SE

ValorFinal207 = Func_ArredondamentoPadrao(ValorBrutoCalculado)

SE ValorFinal207 <= 0.0 E NAO Config.GravarVerbaZerada ENTÃO RETORNAR NULO FIM_SE

4. Gravação de Campos e Acumuladores Fiscais (Natureza eSocial 1099 - Outras verbas salariais)

RubricaDiariasAcima50 = CriarVerbaHoleriteBO(“207”, “Diárias para Viagem (acima de 50% Salário)”) RubricaDiariasAcima50.TipoVerba = “P”

RubricaDiariasAcima50.Quantidade = Func_ArredondamentoPadrao(QuantidadeDiarias) RubricaDiariasAcima50.ValorReferencia = Func_ArredondamentoPadrao(LimiteExcedenteSemTributacao) RubricaDiariasAcima50.ValorTotal = ValorFinal207

Encargos Sociais Conforme Metadados (INSS: SAL, FGTS: SAL, IRRF: SAL) SE Config.TributarINSS ENTÃO Holerite.AcumularBase(“BASE_INSS_FOLHA”, ValorFinal207) SENÃO Holerite.AcumularBase(“BASE_INSS_ISENTA_FOLHA”, ValorFinal207) FIM_SE

SE Config.TributarFGTS ENTÃO Holerite.AcumularBase(“BASE_FGTS_FOLHA”, ValorFinal207) SENÃO Holerite.AcumularBase(“BASE_FGTS_ISENTA_FOLHA”, ValorFinal207) FIM_SE

SE Config.TributarIRRF ENTÃO Holerite.AcumularBase(“BASE_IRRF_FOLHA”, ValorFinal207) SENÃO Holerite.AcumularBase(“BASE_IRRF_ISENTA_FOLHA”, ValorFinal207) FIM_SE

Repercussão de Reflexos: DSR e Médias (Sem DSR e Sem Médias Conforme Metadados) SE Config.ComporDSR E SysFunc_VerbaPossuiDSR(“207”) ENTÃO Holerite.AcumularBase(“BASE_HORAS_VARIAVEIS_DSR”, ValorFinal207) Func_DSR(“207”, “DSR s/ Diárias de Viagem”, “207”, ValorFinal207, RubricaDiariasAcima50, VERDADEIRO) FIM_SE

SE Config.IncorporaMedias ENTÃO Holerite.AcumularBase(“BASE_MEDIAS_13”, ValorFinal207) Holerite.AcumularBase(“BASE_MEDIAS_FERIAS”, ValorFinal207) Holerite.AcumularBase(“BASE_MEDIAS_RESCISAO”, ValorFinal207) FIM_SE

Holerite.ListaHoleriteVerba.Adicionar(RubricaDiariasAcima50)

Registro em memória de cálculo detalhada Argumento(“ORIGEM_VALORACAO_207”, OrigemValoracao) Argumento(“QUANTIDADE_DIARIAS_207”, QuantidadeDiarias) Argumento(“LIMITE_ISENCAO_207”, LimiteExcedenteSemTributacao) Argumento(“VALOR_FINAL_207”, ValorFinal207)

EscreverMemoria(“DIARIAS_VIAGEM_EXCEDENTE”, String.Format(“Diárias Viagem (>50%): Origem: {0} | Qtd: {1} | Limite Isenção: R$ {2} | Valor Tributável: R$ {3}”, OrigemValoracao, QuantidadeDiarias.ToString(“N2”), LimiteExcedenteSemTributacao.ToString(“N2”), ValorFinal207.ToString(“N2”)))

RETORNAR RubricaDiariasAcima50

FIM


Parametrizações Propostas para Reestruturação

1. REGRAS DE ENTRADA E FILTROS DE ELEGIBILIDADE

Tipos de Folha Permitidos …: [X] Férias [X] Regular [X] Rescisão [ ] Provisões

Modo Principal de Apuração …: [ Lançamento Manual de Valor Excedente Tributável v ] [ Lançamento Manual de Valor Excedente Tributável ] [ Apuração Automática por Total de Diárias e Salário] [ Importação do Módulo de Gestão de Viagens ]

[ ] Exigir Filtro de Elegibilidade por Empresa / Cliente / Categoria

2. DIRETRIZES DE VALORAÇÃO E CÁLCULO DE EXCEDENTE

[X] Destacar Apenas a Parcela Excedente Tributável

Percentual Limite de Isenção (%) …: [ 50,00 % ]

Base para Cálculo do Limite …: [ SalarioContratual v ]

Valor Padrão da Diária R$ …: [ 0,00 ]

3. LIMITES E CONTROLE

[ ] Possui Teto Máximo

Valor Teto Máximo R$ …: [ 0,00 ]

[ ] Possui Piso Mínimo

Valor Piso Mínimo R$ …: [ 0,00 ]

[ ] Gravar Verba quando Valor Final for Zero

4. ENCARGOS E NATUREZA ESOCIAL

Natureza eSocial …: [ 1099 - Outras verbas salariais v ]

Incidência INSS …: [ Mensal / Salário (SAL) ]

Incidência FGTS …: [ Mensal / Salário (SAL) ]

Incidência IRRF …: [ Mensal / Salário (SAL) ]

Afeta DSR …: [ ] Sim [X] Não

Incorpora Médias …: [ ] Sim [X] Não

Clientes com mesma regra

  • Padrão Geral (Todos os Clientes): O cálculo legado da verba 207 apoia-se unicamente no pré-requisito de existência de um lançamento (manual ou via interface) validado por Func_ValidarExistenciaLancamento. No motor reestruturado, esse comportamento é preservado integralmente definindo o modo de entrada como “Lançamento Manual de Valor Excedente Tributável”. Se não houver lançamento registrado na competência, o fluxo é interrompido com retorno nulo, mantendo paridade absoluta com a operação vigente.

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