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:
- 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. - Inicialmente, o valor base para cálculo (
VlrHsJornadas) é definido como o Salário Nominal (VG_VlrSalNom). - É verificado se a verba 1448 (Dias Embarcados) possui um valor positivo.
- Se a verba 1448 for positiva, o valor base (
VlrHsJornadas) é sobrescrito pelo valor total da verba 1448. - 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%”). - O percentual do lançamento é atribuído à verba do holerite (
HoleriteVerba.Percentual). - O Valor de Referência (
HoleriteVerba.ValorReferencia) é calculado multiplicando o valor base (VlrHsJornadas) pelo percentual do lançamento (dividido por 100) e arredondado. - 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. - Argumentos são registrados para a memória de cálculo, que detalha os passos do cálculo.
- A verba é calculada apenas se houver um lançamento válido (
-
Fórmula matemática:
ValorReferencia = ArredondamentoPadrao(VlrHsJornadas × (Lancamento.Percentual ÷ 100))ValorTotal = ArredondamentoPadrao(ValorReferencia ÷ VG_HsMes × VG_HorasParaVerbasProp)- Onde
VlrHsJornadaséVG_VlrSalNomouRecuperarValorTotalVerba("1448")se este for positivo.
-
Variáveis Utilizadas:
Lancamento.PercentualVG_VlrSalNomVG_HsMesVG_HorasParaVerbasPropHoleriteVerba.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
1452apura 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: verba1448 - 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