Wiki / SuperCalculo ~5 min

1452 - Horas Jornadas

⚙️ Metadados

  • Código: 1452
  • Tipo: Provento
  • INSS: SAL
  • FGTS: SAL
  • IRRF: SAL
  • Natureza eSocial: 1000 - Salário, vencimento, soldo
  • DSR: Não
  • Médias: Não
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 190

🧮 Regra Geral

N/A

🎯 Particularidades por Cliente/Setor

👤 Acal
  • Lógica de Cálculo:

    1. A verba é calculada apenas se houver um lançamento válido (Func_ValidarExistenciaLancamento) e se o percentual do lançamento (Lancamento.Percentual) for maior que 0.
    2. Inicialmente, o valor base para cálculo (VlrHsJornadas) é definido como o Salário Nominal (VG_VlrSalNom).
    3. É verificado se a verba 1448 (Dias Embarcados) possui um valor positivo.
    4. Se a verba 1448 for positiva, o valor base (VlrHsJornadas) é sobrescrito pelo valor total da verba 1448.
    5. A descrição final da verba no holerite (HoleriteVerba.DescricaoFinal) é formatada para incluir a descrição original da verba e o percentual do lançamento (ex: “Horas Jornadas 41,60%”).
    6. O percentual do lançamento é atribuído à verba do holerite (HoleriteVerba.Percentual).
    7. O Valor de Referência (HoleriteVerba.ValorReferencia) é calculado multiplicando o valor base (VlrHsJornadas) pelo percentual do lançamento (dividido por 100) e arredondado.
    8. O Valor Total (HoleriteVerba.ValorTotal) é calculado dividindo o Valor de Referência pela carga horária mensal (VG_HsMes) e multiplicando pela quantidade de horas para verbas proporcionais (VG_HorasParaVerbasProp), com o resultado final arredondado.
    9. Argumentos são registrados para a memória de cálculo, que detalha os passos do cálculo.
  • Fórmula matemática:

    • ValorReferencia = ArredondamentoPadrao(VlrHsJornadas × (Lancamento.Percentual ÷ 100))
    • ValorTotal = ArredondamentoPadrao(ValorReferencia ÷ VG_HsMes × VG_HorasParaVerbasProp)
    • Onde VlrHsJornadas é VG_VlrSalNom ou RecuperarValorTotalVerba("1448") se este for positivo.
  • Variáveis Utilizadas:

    • Lancamento.Percentual
    • VG_VlrSalNom
    • VG_HsMes
    • VG_HorasParaVerbasProp
    • HoleriteVerba.Verba.Descricao.
  • Condições Especiais:

    • if (Func_ValidarExistenciaLancamento(Lancamento) == true && Lancamento.Percentual > 0M): A verba só é calculada se houver um lançamento válido e um percentual maior que zero.
    • if (Positivo(RecuperarValorTotalVerba("1448")) > 0M): O valor base é alterado se a verba 1448 (Dias Embarcados) tiver um valor positivo.
  • Dependências::

    • Verbas Relacionadas: - Verba 1448 (Dias Embarcados): Há uma dependência, pois o valor total desta verba pode ser usado como base de cálculo para a verba 1452.
  • Funções Identificadas:

    • Func_ValidarExistenciaLancamento(Lancamento): Verifica se o lançamento atual é válido e existe.
    • Positivo(valor): Retorna o valor se for positivo, caso contrário, retorna zero.
    • RecuperarValorTotalVerba("código"): Recupera o valor total de uma verba específica (neste caso, a verba 1448).
    • string.Format("{0}{1:N2}%", ...): Formata uma string, neste caso, para a descrição final da verba.
    • Func_ArredondamentoPadrao(valor): Aplica o arredondamento padrão do sistema.
    • Argumento(valor): Adiciona um valor como argumento para a memória de cálculo.
    • EscreverMemoria("[NORMAL]", "..."): Constrói e atribui a string da memória de cálculo.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

ValorBase = SE(UtilizarVerbaPrecedente == Verdadeiro E ValorVerbaPrecedente > 0, ValorVerbaPrecedente, SalarioNominal)

ValorReferencia = Func_ArredondamentoPadrao(ValorBase * (PercentualLancamento / 100))

ValorProporcional = Func_ArredondamentoPadrao((ValorReferencia / CargaHorariaMensal) * HorasParaVerbasProporcionais)

ValorFinal1452 = Func_ArredondamentoPadrao(MAX(PisoMinimoConfigurado, MIN(ValorProporcional, TetoMaximoConfigurado)))


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

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

Check de Lançamento e Validação de Percentual Lancamento = Holerite.ObterLancamento(“1452”) SE NAO Func_ValidarExistenciaLancamento(Lancamento) ENTÃO RETORNAR NULO FIM_SE

PercentualLancamento = Lancamento.Percentual SE PercentualLancamento <= 0.0 ENTÃO RETORNAR NULO FIM_SE

2. Determinação da Base de Cálculo com Suporte a Verbas Precedentes (Overriding Dynamic)

ValorBaseJornadas = Empregado.VG_VlrSalNom

SE Config.UtilizarVerbaPrecedenteComoBase ENTÃO ValorVerbaPrecedente = Holerite.RecuperarValorTotalVerba(Config.CodigoVerbaPrecedenteBase) SE ValorVerbaPrecedente > 0.0 ENTÃO ValorBaseJornadas = ValorVerbaPrecedente FIM_SE FIM_SE

3. Aplicação do Percentual e Proporcionalização por Horas Trabalhadas

ValorReferenciaCalculado = Func_ArredondamentoPadrao(ValorBaseJornadas * (PercentualLancamento / 100.0))

CargaHorariaMensal = Empregado.VG_HsMes SE CargaHorariaMensal <= 0.0 ENTÃO CargaHorariaMensal = Config.CargaHorariaPadraoFallback // Ex: 220.0 FIM_SE

HorasProporcionais = Empregado.VG_HorasParaVerbasProp SE HorasProporcionais <= 0.0 ENTÃO HorasProporcionais = CargaHorariaMensal FIM_SE

ValorProvisorio1452 = Func_ArredondamentoPadrao((ValorReferenciaCalculado / CargaHorariaMensal) * HorasProporcionais)

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

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

ValorFinal1452 = Func_ArredondamentoPadrao(ValorProvisorio1452)

5. Gravação de Campos, Destaque de Descrição e Acumuladores Fiscais

RubricaHorasJornadas = CriarVerbaHoleriteBO(“1452”, “Horas Jornadas”) RubricaHorasJornadas.TipoVerba = “P” RubricaHorasJornadas.Percentual = PercentualLancamento RubricaHorasJornadas.ValorReferencia = ValorReferenciaCalculado RubricaHorasJornadas.ValorTotal = ValorFinal1452

SE Config.SufixarPercentualNaDescricao ENTÃO RubricaHorasJornadas.DescricaoFinal = String.Format(“{0} {1:N2}%”, “Horas Jornadas”, PercentualLancamento) FIM_SE

Acumulação de Bases Fiscais (Provento Salarial) Holerite.AcumularBase(“BASE_INSS_FOLHA”, ValorFinal1452) Holerite.AcumularBase(“BASE_FGTS_FOLHA”, ValorFinal1452) Holerite.AcumularBase(“BASE_IRRF_FOLHA”, ValorFinal1452)

SE Config.IncorporaDSR ENTÃO Holerite.AcumularBase(“BASE_HORAS_VARIAVEIS_DSR”, ValorFinal1452) FIM_SE

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

Holerite.ListaHoleriteVerba.Adicionar(RubricaHorasJornadas)

Registro de memória de cálculo detalhada Argumento(“BASE_JORNADAS_UTILIZADA”, ValorBaseJornadas) Argumento(“PERCENTUAL_APLICADO”, PercentualLancamento) Argumento(“VALOR_REFERENCIA”, ValorReferenciaCalculado) Argumento(“CARGA_HORARIA”, CargaHorariaMensal) Argumento(“HORAS_PROPORCIONAIS”, HorasProporcionais) Argumento(“VALOR_FINAL”, ValorFinal1452)

EscreverMemoria(“HORAS_JORNADAS”, String.Format(“Horas Jornadas: (Base R$ {0} * {1}%) = Ref R$ {2} | (Ref R$ {2} / {3} hs * {4} hs) = Total R$ {5}”, ValorBaseJornadas.ToString(“N2”), PercentualLancamento.ToString(“N2”), ValorReferenciaCalculado.ToString(“N2”), CargaHorariaMensal, HorasProporcionais, ValorFinal1452.ToString(“N2”)))

RETORNAR RubricaHorasJornadas

FIM


Parametrizações Propostas para Reestruturação

1. REGRAS DE ENTRADA E FILTROS DE ELEGIBILIDADE

[ ] Permitir Execução no Processo de Provisões

Tipos de Folha Permitidos …: [X] Regular [X] Rescisão [ ] Férias [ ] 13º Salário

Exigir Lançamento de Percentual Positivo ..: [X] Sim [ ] Não

2. REGRA DE COMPOSIÇÃO DA BASE E VALORAÇÃO

Base de Cálculo Primária …: [ Salário Nominal (VG_VlrSalNom) v ]

[X] Sobrescrever Base se Existir Verba Precedente

Código da Verba Precedente …: [ 1448 - Dias Embarcados v ]

Carga Horária Fallback (Se Zera no Cadastro): [ 220,00 ] Horas

[X] Aplicar Proporcionalização por Horas do Mês (VG_HorasParaVerbasProp)

3. APRESENTAÇÃO E EXIBIÇÃO NO HOLERITE

[X] Sufixar Percentual na Descrição Final da Verba (ex: “Horas Jornadas 41,60%”)

[X] Exibir Valor de Referência Calculado no Extrato

4. DIRETRIZES DE PROTEÇÃO E LIMITES

[X] Aplicar Arredondamento Padrão do Sistema (Func_ArredondamentoPadrao)

Possui Teto Máximo Configurado …: [ ] Sim [X] Não Valor Teto: [ 0,00 ]

Possui Piso Mínimo Configurado …: [ ] Sim [X] Não Valor Piso: [ 0,00 ]

5. TRIBUTAÇÃO E ENVIOS ESOCIAL

Natureza eSocial …: [ 1000 - Salário, vencimento, soldo v ]

Incidência INSS …: [ Mensal (SAL) ]

Incidência FGTS …: [ Mensal (SAL) ]

Incidência IRRF …: [ Mensal (SAL) ]

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

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

Clientes com mesma regra

  • Acal e Demais Clientes com Jornadas Especializadas / Dias Embarcados: A verba 1452 apura proventos proporcionais com base em percentuais informados no lançamento, suportando a substituição da base de cálculo primária (Salário Nominal) por verbas de composição precedentes (ex: verba 1448 - Dias Embarcados). A operação do cliente Acal é totalmente preservada pelo motor dynamic através de seletores na interface de parametrização (chave de override por verba precedente + controle de exibição de sufixo no holerite).

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