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