Wiki / SuperCalculo ~4 min

1089 - Desc. Adiantamento - Outros

⚙️ Metadados

  • Código: 1089
  • Tipo: Desconto
  • INSS: ISE
  • FGTS: ISE
  • IRRF: SAL
  • Natureza eSocial: 9299 - Outros descontos
  • DSR: Não
  • Médias: Não
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 191

🧮 Regra Geral

  • Lançamento manual em valor.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

ValorTotalDesconto = Negativo(Arredondar(Minimo(ValorLancamentoManual, Minimo(TetoMaximoDesconto, Maximo(0, TotalProventos - TotalOutrosDescontos)))))


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

Se (Configuracao.RubricaInativa == Verdadeiro OU Solicitacao.HoleriteSimulado == Verdadeiro OU Solicitacao.TipoProcesso == EnumTipoProcessoBO.Provisoes) { HoleriteVerba = null; InterromperCalculo(); }

Restrição por Tipos de Folha Permitidos Se (Nao Configuracao.TiposFolhaPermitidos.Contem(Solicitacao.TipoFolha)) { EscreverMemoria(“[DESC_ADIANT_OUTROS]”, “Cálculo ignorado: Tipo de folha (” + Solicitacao.TipoFolha + ”) não habilitado para a verba 1089.”); HoleriteVerba = null; InterromperCalculo(); }

Trava de Re-processamento Se (HoleriteVerba != null E HoleriteVerba.ValorTotal != 0.00 E Nao Configuracao.PermitirRecalculo) { Retornar HoleriteVerba; }

2. Determinação da Base de Cálculo e Captura dos Valores

Definir ValorDescontoBruto = 0.00;

Captação Primária: Lançamento Manual no Movimento Mensal Se (Solicitacao.PossuiLancamentoManual(Configuracao.CodigoRubricaDestino)) { ValorDescontoBruto = Positivo(Solicitacao.ObterValorLancamentoManual(Configuracao.CodigoRubricaDestino)); EscreverMemoria(“[DESC_ADIANT_OUTROS]”, “Valor informado via Lançamento Manual Direto: R$ ” + ValorDescontoBruto); } Fallback 1: Histórico de Lançamentos Fixos do Empregado Senao Se (Configuracao.PermitirLancamentoFixoEmpregado == Verdadeiro E Empregado.PossuiLancamentoFixo(Configuracao.CodigoRubricaDestino)) { ValorDescontoBruto = Positivo(Empregado.ObterValorLancamentoFixo(Configuracao.CodigoRubricaDestino)); EscreverMemoria(“[DESC_ADIANT_OUTROS]”, “Valor capturado do histórico de lançamentos fixos do colaborador: R$ ” + ValorDescontoBruto); } Fallback 2: Abatimento Automático de Adiantamentos Pagos em Folhas Anterior/Específica Senao Se (Configuracao.PermitirCapturaAutomaticaAdiantamento == Verdadeiro) { Definir ValorAdiantamentoPago = Holerite.ObterValorPagoRubricaBase(Configuracao.CodigoRubricaAdiantamentoOrigem); Se (ValorAdiantamentoPago > 0.00) { ValorDescontoBruto = ValorAdiantamentoPago; EscreverMemoria(“[DESC_ADIANT_OUTROS]”, “Valor capturado de adiantamento pago anteriormente: R$ ” + ValorDescontoBruto); } }

Se (ValorDescontoBruto <= 0.00) { EscreverMemoria(“[DESC_ADIANT_OUTROS]”, “Cálculo interrompido: Nenhum valor localizado nos lançamentos manuais ou históricos.”); HoleriteVerba = null; InterromperCalculo(); }

3. Aplicação de Limites, Tetos e Proteção de Margem Líquida

Definir ValorDescontoAjustado = ValorDescontoBruto;

Aplicação de Teto Máximo Parametrizado Se (Configuracao.TetoMaximoDesconto > 0.00 E ValorDescontoAjustado > Configuracao.TetoMaximoDesconto) { ValorDescontoAjustado = Configuracao.TetoMaximoDesconto; EscreverMemoria(“[DESC_ADIANT_OUTROS]”, “Valor limitado ao teto máximo parametrizado: R$ ” + ValorDescontoAjustado); }

Proteção de Margem Líquida (Garantia de Não-Negativação do Holerite) Definir ProventoLiquidoDisponivel = Positivo(Holerite.ObterTotalProventos()) - Positivo(Holerite.ObterTotalDescontosExceto(Configuracao.CodigoRubricaDestino));

Se (Configuracao.RespeitarMargemLiquida == Verdadeiro E ProventoLiquidoDisponivel < ValorDescontoAjustado) { Se (Configuracao.AcaoExcessoSaldo == EnumAcaoExcesso.LimitarAoProventoLiquido) { ValorDescontoAjustado = Maximo(0.00, ProventoLiquidoDisponivel); EscreverMemoria(“[DESC_ADIANT_OUTROS]”, “Desconto limitado pela margem disponível (Bruto: R$ ” + ValorDescontoBruto + ” | Ajustado: R$ ” + ValorDescontoAjustado + ”).”); } Senao Se (Configuracao.AcaoExcessoSaldo == EnumAcaoExcesso.LancarInsuficienciaSaldo) { Definir SaldoDevedor = ValorDescontoAjustado - ProventoLiquidoDisponivel; ValorDescontoAjustado = Maximo(0.00, ProventoLiquidoDisponivel); AtualizarOuCriarVerbaInformacao(Configuracao.CodigoRubricaInsuficienciaSaldo, SaldoDevedor); EscreverMemoria(“[DESC_ADIANT_OUTROS]”, “Insuficiência de Saldo gerada no adiantamento: R$ ” + SaldoDevedor); } }

4. Gravação dos Itens no Holerite

Se (ValorDescontoAjustado > 0.00) { RubricaGerada = CriarInstanciaRubrica(Configuracao.CodigoRubricaDestino); RubricaGerada.Quantidade = 1.00; RubricaGerada.Percentual = 0.00; RubricaGerada.ValorTotal = Negativo(Func_ArredondamentoPadrao(ValorDescontoAjustado)); RubricaGerada.Descricao = Configuracao.DescricaoRubrica;

Metadados Fiscais (Natureza eSocial 9299 | INSS: ISE, FGTS: ISE, IRRF: SAL) RubricaGerada.IncideINSS = EnumIncidencia.ISENTO; RubricaGerada.IncideFGTS = EnumIncidencia.ISENTO; RubricaGerada.IncideIRRF = EnumIncidencia.SIM;

AdicionarAoHolerite(RubricaGerada); EscreverMemoria(“[DESC_ADIANT_OUTROS]”, “Verba 1089 processada com sucesso. Valor total descontado: R$ ” + ValorDescontoAjustado); } Senao { HoleriteVerba = null; InterromperCalculo(); }


Parametrizações Propostas para Reestruturação

1. REGRAS DE ENTRADA E FONTE DOS DADOS

[ ] Inativar Rubrica (Desativa o cálculo globalmente)

Modo Primário de Alimentação:

(*) Lançamento Manual no Movimento Mensal (Valor em R$)

( ) Captura Automática de Lançamento Fixo do Empregado

( ) Baixa Automática de Adiantamentos Pagos em Folha Específica

[X] Permitir Fallback para Lançamento Fixo do Empregado se Manual Estiver Vazio

[ ] Permitir Fallback para Baixa Automática de Adiantamento Pago

└─ Código da Rubrica de Adiantamento Origem: [     ]

Tipos de Folha Permitidos para Processamento:

[X] Regular / Mensal

[X] Rescisão / Desligamento

[X] Rescisão Complementar

[ ] Folha de 13º Salário

2. DIRETRIZES DE PROTEÇÃO E MARGEM LÍQUIDA

Teto Máximo de Desconto por Competência (R$): [ 0.00 ] (0,00 = Sem Teto)

[X] Respeitar Margem Limite do Provento Líquido (Impedir Holerite Negativo)

Ação em Caso de Insuficiência de Provento Líquido:

(*) Limitar o desconto proporcionalmente ao saldo líquido disponível

( ) Cancelar o desconto integralmente e emitir aviso de pendência

( ) Limitar o desconto e gerar Rubrica Informativa de Insuficiência de Saldo

Código da Rubrica Informativa de Insuficiência de Saldo: [ ]

3. ENCARGOS E NATUREZA ESOCIAL

Natureza eSocial: [ 9299 - Outros descontos ]

Incidências Oficiais:

INSS: [ ISE - Isento ]

FGTS: [ ISE - Isento ]

IRRF: [ SAL - Base de Cálculo (Sim) ]

Clientes com mesma regra

  • Todos os Clientes (Processamento Padronizado por Lançamento Manual): A especificação original define que o desconto de adiantamentos diversos ocorre estritamente via “Lançamento manual em valor”. O motor dynamic mantém o lançamento manual como via primária de entrada de dados, porém introduz um ecossistema de controle mais seguro. Isso inclui a validação de tipo de folha, teto máximo parametrizado por competência e proteção contra holerite negativo, garantindo que lançamentos manuais inconsistentes não afetem a saúde da folha de pagamento.

Status Documental

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

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