Wiki / SuperCalculo ~5 min

1110 - Desc. Dif. Dissídio (INSS/FGTS/IRRF - Salário)

Metadados

  • Código: 1110
  • Tipo: Desconto
  • 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: 777

🧮 Regra Geral

N/A

🎯 Particularidades por Cliente/Setor

👤 Fapes
  • Se houver um lançamento existente para a verba, a descrição final da verba no holerite será alterada de “Desc. Dif. Dissídio” para “Desc. Diferenças”.

  • Variáveis Utilizadas:

    • Solicitacao.Cliente: Nome do cliente atual da solicitação de cálculo.
    • Lancamento: Objeto que representa o lançamento da verba.
    • HoleriteVerba.DescricaoFinal: Campo para a descrição final da verba no holerite.
    • HoleriteVerba.Verba.Descricao: Descrição original da verba.
  • Condições Especiais:

    • if (Solicitacao.Cliente.ToLower() == "fapes" && Func_ValidarExistenciaLancamento(Lancamento) == true): A alteração da descrição ocorre apenas se o cliente for “fapes” e se houver um lançamento válido para a verba.
  • Funções Identificadas:

    • Func_ValidarExistenciaLancamento(Lancamento): Valida a existência de um lançamento para a verba.
    • ToLower(): Método de string para converter o nome do cliente para minúsculas para comparação.
    • Replace("Dif. Dissídio", "Diferenças"): Método de string para substituir parte da descrição da verba.
    • SysFunc_NovaData(01, 11, 2020): Função de sistema para criar uma nova data (presente em código comentado).

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

ValorTotal = Se( IsentoOuInvalido == Verdadeiro O ( ExigirLancamento E ValorLancamento == 0 E ValorHolerite == 0 ), 0.00, Se( TetoMaximo > 0 E Se( ExisteLancamento, Abs(ValorLancamento), Abs(ValorHolerite) ) > TetoMaximo, TetoMaximo, Se( ExisteLancamento, Abs(ValorLancamento), Abs(ValorHolerite) ) ) ) * -1.00


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

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

Validação de Existência de Lançamento Manual / Retroativo Definir PossuiLancamento = Func_ValidarExistenciaLancamento(Lancamento); Definir ValorLancamentoApurado = PossuiLancamento ? Func_Absoluto(Lancamento.ValorTotal) : Func_Absoluto(HoleriteVerba.ValorTotal);

Se (Configuracao.ExigirLancamentoManual E ValorLancamentoApurado == 0.00) { EscreverMemoria(“[DESC_DIF_DISSIDIO]”, “Cálculo interrompido: Ausência de lançamento manual ou valor zerado.”); HoleriteVerba = null; InterromperCalculo(); }

2. Determinação da Base de Cálculo, Percentuais e Formatação Dinâmica da Descrição

Definir ValorDescontoApurado = 0.00; Definir BaseCalculoReferencia = 0.00; Definir PercentualAplicado = 0.00;

Se (PossuiLancamento E Lancamento.ValorTotal > 0.00) { Override Manual de Interface / Importação de Módulo de Retroativos ValorDescontoApurado = Func_Absoluto(Lancamento.ValorTotal); BaseCalculoReferencia = Lancamento.ValorReferencia > 0.00 ? Lancamento.ValorReferencia : Empregado.SalarioNominal; PercentualAplicado = Lancamento.Percentual; } Senao { Apuração pelo Motor de Mapeamento Retroativo / Dissídio BaseCalculoReferencia = Empregado.SalarioNominal; ValorDescontoApurado = ValorLancamentoApurado; }

Se (ValorDescontoApurado == 0.00) { EscreverMemoria(“[DESC_DIF_DISSIDIO]”, “Cálculo encerrado: Nenhum valor retornado para diferença de dissídio.”); HoleriteVerba = null; InterromperCalculo(); }

Tratamento Dinâmico da Descrição (Substitui Hardcode de Cliente “fapes” e Replace Fixo) Definir DescricaoProcessada = PossuiLancamento ? Lancamento.DescricaoLancamento : HoleriteVerba.Verba.Descricao;

Definir AplicarAbreviacao = Configuracao.ValidarAbreviacaoDescricao( Empregador.CNPJEmpregador, Empregado.CodContratoFilho );

Se (AplicarAbreviacao == Verdadeiro O Configuracao.AbreviacaoGlobalAtiva == Verdadeiro) { ParaCada (RegraSubstituicao em Configuracao.TabelaMapeamentoTermos) { Se (DescricaoProcessada.Contem(RegraSubstituicao.TermoOriginal)) { DescricaoProcessada = DescricaoProcessada.Substituir( RegraSubstituicao.TermoOriginal, RegraSubstituicao.TermoAbreviado ); } } }

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

Se (Configuracao.TetoDescontoMaximo > 0.00 E ValorDescontoApurado > Configuracao.TetoDescontoMaximo) { EscreverMemoria(“[DESC_DIF_DISSIDIO]”, “Valor apurado (R$ {0}) excede o teto parametrizado (R$ {1}). Aplicando teto.”, ValorDescontoApurado, Configuracao.TetoDescontoMaximo); ValorDescontoApurado = Configuracao.TetoDescontoMaximo; }

Definir ValorFinalArredondado = Func_ArredondamentoPadrao(ValorDescontoApurado);

4. Gravação dos Campos no Holerite e Incidências Tributárias

HoleriteVerba.DescricaoFinal = DescricaoProcessada; HoleriteVerba.Quantidade = Func_ArredondamentoPadrao(BaseCalculoReferencia); HoleriteVerba.Percentual = Func_ArredondamentoPadrao(PercentualAplicado); HoleriteVerba.ValorTotal = Func_ArredondamentoPadrao(ValorFinalArredondado * -1.00);

EscreverMemoria(“[DESC_DIF_DISSIDIO]”, “Sucesso | Descrição Final: ‘{0}’ | Base: R$ {1} | Desconto Final: R$ {2}”, DescricaoProcessada, BaseCalculoReferencia, ValorFinalArredondado);

AdicionarAoHolerite(HoleriteVerba);


Parametrizações Propostas para Reestruturação

1. REGRAS DE ENTRADA, ELEGIBILIDADE E ISENÇÕES

[ ] Inativar Rubrica (Desativa o cálculo globalmente) [X] Bloquear Processamento em Folhas de Provisão e Holerites Simulados [X] Exigir Lançamento Manual / Importação Módulo de Retroativo (ValorTotal > 0)

2. REGRAS DE FORMATAÇÃO E ABREVIAÇÃO DINÂMICA DE DESCRIÇÃO

[ ] Habilitar Abreviação de Descrição Globalmente (Todos os Estabelecimentos) [X] Habilitar Abreviação de Descrição por Matriz de Estabelecimentos/CNPJ └─ CNPJs / Estabelecimentos Elegíveis: [ Selecionar Empresas / FAPES ]

Tabela de Mapeamento e Substituição de Termos em Holerite: ┌──────────────────────────────────────────────┬────────────────────────────┐ │ Termo Original Localizado │ Termo Abreviado Substituto │ ├──────────────────────────────────────────────┼────────────────────────────┤ │ Dif. Dissídio │ Diferenças │ │ Desc. Dif. Dissídio │ Desc. Diferenças │ └──────────────────────────────────────────────┴────────────────────────────┘

3. DIRETRIZES DE PROTEÇÃO E LIMITES

Teto Máximo do Desconto Monetário (0,00 = Sem Teto): [ R$ 0,00 ]

4. ENCARGOS ESOCIAL E CONFIGURAÇÃO TRIBUTÁRIA

Código da Rubrica Destino: [ 1110 ] Natureza eSocial: [ 1099 - Outras verbas salariais ] Incidência INSS: [ SAL - Base Salário ] DSR: [ Não ] Incidência FGTS: [ SAL - Base Salário ] Médias: [ Não ] Incidência IRRF: [ SAL - Base Salário ] Impacto Financeiro: [ Não ] Impacto Contábil: [ Sim ]

Clientes com mesma regra

  • Fapes: A alteração da descrição no holerite de “Desc. Dif. Dissídio” para “Desc. Diferenças” atrelada à validação de código de cliente (Solicitacao.Cliente.ToLower() == “fapes”) foi integralmente absorvida pela matriz de parametrização “Abreviação de Descrição por Matriz de Estabelecimentos/CNPJ” e pela “Tabela de Mapeamento e Substituição de Termos”. Com isso, a apresentação visual do holerite para a Fapes permanece exatamente idêntica, sem acoplamento de código-fonte a nomes de clientes.

  • Demais Clientes (Padrão): O fluxo mantém a descrição original da verba ou do lançamento sem executar a tabela de substituições, preservando a nomenclatura padrão cadastrada.

Status Documental

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

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