Wiki / SuperCalculo ~6 min

1519 - Base INSS Outro Vínculo - RPA

⚙️ Metadados

  • Código: 1519
  • Tipo: Informação
  • INSS: ISE
  • FGTS: ISE
  • IRRF: ISE
  • Natureza eSocial: -
  • DSR: Não
  • Médias: Não
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 102

🧮 Regra Geral

  • Lógica de Cálculo:

    1. Inicializa valor5001_5012 somando o ValorTotal de lançamentos das verbas 5001 (Direitos Autorais - RPA) ou 5012 presentes na SolicitacaoRPA.
    2. Condição de Exclusão: Se valor5001_5012 for maior que zero, a verba 1519 não é calculada (return null).
    3. Inicializa valor10070 e valor10080 somando o ValorTotal de lançamentos das verbas 10070 e 10080, respectivamente, na SolicitacaoRPA.
    4. Condição Principal de Cálculo: Se a soma de VG_ValorServicoRPA com valor10070 for maior que zero, OU se valor10080 for diferente de zero, então:
      • Adiciona o Lancamento.ValorTotal atual à variável VG_BaseINSS_RPA_OutrosVinculos.
      • Agregação de Valores Anteriores: Se a variável VG_RPA_JaPassou for false (indicando que a agregação ainda não foi feita nesta execução):
        • Percorre todos os holerites (HoleriteBO) do autônomo para o mesmo mês e ano da DataReferencia da solicitação atual.
        • Para cada holerite encontrado, busca lançamentos da própria verba 1519 (HoleriteInformacaoBO).
        • Se encontrar, adiciona o ValorTotal (garantindo que seja positivo com Positivo()) à VG_BaseINSS_RPA_OutrosVinculos.
        • Define VG_RPA_JaPassou como true para evitar reprocessamento.
      • Teto de Incidência: Se VG_BaseINSS_RPA_OutrosVinculos exceder VG_VlrTetoSCINSS_RPA (Teto de Salário de Contribuição INSS para RPA), o valor da base é limitado a VG_VlrTetoSCINSS_RPA.
    5. Condição de Erro: Caso a condição principal de cálculo (passo 4) não seja atendida, e houver lançamentos da verba 1519 com ValorTotal maior que zero na SolicitacaoRPA, um erro crítico é disparado (SysFunc_Panico) indicando um lançamento inconsistente da verba 1519 sem as verbas de serviço correspondentes.
  • Variáveis Utilizadas:

    • valor5001_5012
    • valor10070
    • valor10080
    • VG_ValorServicoRPA
    • Lancamento.ValorTotal
    • VG_BaseINSS_RPA_OutrosVinculos
    • VG_RPA_JaPassou
    • SolicitacaoRPA.Autonomo.ListaHolerite
    • Solicitacao.DataReferencia
    • R.PeriodoCalculo.DataReferencia
    • HI_1519_DesteMes.ValorTotal
    • VG_VlrTetoSCINSS_RPA.
  • Condições Especiais:

    • if (valor5001_5012 > 0M): Impede o cálculo se verbas de Direitos Autorais (5001 ou 5012) estiverem presentes.
    • if ((VG_ValorServicoRPA + valor10070) > 0M || valor10080 != 0M): Condição principal para ativar o cálculo da base.
    • if (VG_RPA_JaPassou == false): Garante que a agregação de bases anteriores da verba 1519 ocorra apenas uma vez por execução.
    • if (VG_BaseINSS_RPA_OutrosVinculos > VG_VlrTetoSCINSS_RPA): Aplica o teto de contribuição do INSS.
    • if (this.SolicitacaoRPA.ListaLancamento.Where(lct => lct.CodigoVerbaLancamento == "1519").Sum(v => v.ValorTotal) > 0): Validação de consistência para lançamentos manuais da verba 1519.

🔔 Eventos/Gatilhos

  • Condição de Ativação: inf Base INSS Outro Vínculo - RPA
  • Quando a verba é calculada: A verba é calculada automaticamente no processo de RPA (Recibo de Pagamento Autônomo) (IdProcesso = 70) quando há valores de serviço (VG_ValorServicoRPA) ou verbas 10070 ou 10080 lançadas, e não há verbas de Direitos Autorais (5001 ou 5012). Também é influenciada por lançamentos manuais da própria verba 1519, que são validados para consistência.

🔗 Dependências

  • Verbas Relacionadas:
    • 5001, 5012: Verbas de Direitos Autorais - RPA.
    • 10070, 10080: Verbas de serviço ou outras bases de RPA.
    • 1519: A própria verba, para agregação de valores de holerites anteriores no mesmo mês.
  • Tipo de Relação:
    • 5001, 5012: Dependência de exclusão. A presença dessas verbas impede o cálculo da verba 1519.
    • 10070, 10080, VG_ValorServicoRPA: Dependência de ativação. A presença de valores nessas variáveis/verbas ativa o cálculo da verba 1519.
    • 1519 (em holerites anteriores): Dependência de agregação. Valores pré-existentes da mesma verba no mês são somados à base atual.

🧩 Funções

  • SysFunc_MesmoMesAno(data1, data2): Compara se duas datas (mês e ano) são iguais.
  • Positivo(valor): Garante que o valor retornado seja positivo.
  • SysFunc_Panico(mensagem): Registra um erro crítico no sistema e interrompe o processamento.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

Base_INSS_Outro_Vinculo_RPA = MIN(OBTER_VALOR(Lancamento_Manual_1519, Base_Cadastrada_Outros_Vinculos) + SUM(Base_1519_RPAs_Anteriores_Mes), Teto_INSS_Vigente)


1. FILTROS DE ELEGIBILIDADE E ISENÇÕES (PISO SEGURO)

SE NAO Config_Verba.Ativa_Para_Empresa(Autonomo.EmpresaId) ENTAO RETORNAR NULO FIM SE

Validação do Processo Ativo (Restrito a Processamento de RPA / Autônomos) SE Config_Verba.PossuiFiltroProcesso E NAO Config_Verba.ProcessosPermitidos.Contem(Periodo.TipoProcessoId) ENTAO RETORNAR NULO FIM SE

Validação de Exclusão por Verbas Incompatíveis (Ex: Direitos Autorais 5001, 5012) ValorVerbasExcludentes = ObterSomaVerbasDigitadasOuCalculadas(Autonomo, Periodo, Config_Verba.ListaVerbasExcludentes) SE ValorVerbasExcludentes > 0 ENTAO RETORNAR NULO FIM SE

2. DETERMINAÇÃO DA BASE DE CÁLCULO E PERCENTUAIS

SomaServicosRPA = ObterValorServicoRPA(Autonomo, Periodo) + ObterSomaVerbasDigitadasOuCalculadas(Autonomo, Periodo, Config_Verba.ListaVerbasBaseServico)

LancamentoManual1519 = ObterLancamentoManual(Autonomo, Periodo, Verba.Codigo) TemLancamentoManual1519 = Func_ValidarExistenciaLancamento(LancamentoManual1519) E LancamentoManual1519.ValorTotal > 0

Validação de Consistência (Garante que existe serviço prestado ou emissão válida de RPA) SE SomaServicosRPA <= 0 E NAO Config_Verba.PermitirBaseOutrosVinculosSemServicoLocal ENTAO SE TemLancamentoManual1519 ENTAO RegistrarErroCalculo(“Lançamento inconsistente da Verba 1519 sem o correspondente lançamento de verba de serviço de RPA.”) RETORNAR NULO SENAO RETORNAR NULO FIM SE FIM SE

Captura da Base Informada de Outros Vínculos do Autônomo BaseInformadaOutrosVinculos = 0

SE TemLancamentoManual1519 ENTAO BaseInformadaOutrosVinculos = LancamentoManual1519.ValorTotal SENAO BaseInformadaOutrosVinculos = ObterBaseINSSOutrosVinculosCadastrada(Autonomo, Periodo.DataReferencia) FIM SE

SE BaseInformadaOutrosVinculos <= 0 ENTAO RETORNAR NULO FIM SE

3. AGREGAÇÃO DE VALORES ANTERIORES E APLICAÇÃO DE LIMITES (TETO INSS)

Agregação de RPAs já calculados no mesmo mês/ano SomaBasesAnterioresMes = 0 SE Config_Verba.AcumularRPAsDoMes ENTAO SomaBasesAnterioresMes = Autonomo.ListaHolerites.Onde(h => Func_MesmoMesEAno(h.PeriodoCalculo.DataReferencia, Periodo.DataReferencia) E h.IdHolerite != Periodo.HoleriteAtualId ).Somar(h => Func_Absoluto(h.ObterVerbaInformacao(Verba.Codigo).ValorTotal)) FIM SE

BaseTotalINSSOutrosVinculos = BaseInformadaOutrosVinculos + SomaBasesAnterioresMes

Teto Máximo de Contribuição INSS Vigente na Tabela da Previdência TetoINSSVigente = ObterTetoSalarioContribucionINSS(Periodo.DataReferencia)

ValorFinalBase = BaseTotalINSSOutrosVinculos SE Config_Verba.AplicarTetoINSS E ValorFinalBase > TetoINSSVigente ENTAO ValorFinalBase = TetoINSSVigente FIM SE

ValorFinalBase = Func_ArredondamentoPadrao(ValorFinalBase)

4. GRAVAÇÃO DE CAMPOS E DISPARO DE VERBAS DE INFORMAÇÃO

InfoBO = CriarObterHoleriteInformacao(Verba.Codigo, Config_Verba.DescricaoPadrao) InfoBO.ValorTotal = ValorFinalBase InfoBO.IncidenciaINSS = EnumTipoIncidencia.ISE InfoBO.IncidenciaFGTS = EnumTipoIncidencia.ISE InfoBO.IncidenciaIRRF = EnumTipoIncidencia.ISE

RegistrarArgumento(“BASE_INSS_RPA_OUTROS_VINCULOS_TOTAL”, ValorFinalBase) EscreverMemoria(“BaseINSSOutrosVinculosRPA = ” + ValorFinalBase)

AdicionarHoleriteInformacao(Autonomo, InfoBO)

RETORNAR NULO // Verba exclusivamente informativa/contábil

FIM PROCESSO_CALCULO_VERBA_1519


Parametrizações Propostas para Reestruturação

1. CONDICIONANTES E REGRAS DE ATIVAÇÃO

[X] Ativo na Empresa

Processos Permitidos para Cálculo:

[X] RPA / Pagamento a Autônomos (Processo ID 70)

Rubricas Excludentes (Impedem a geração desta verba se presentes no movimento):

[ 5001 - Direitos Autorais - RPA ], [ 5012 - Direitos Autorais Exclusivos ]

Rubricas Elegíveis de Serviço de RPA (Base de Ativação Local):

[ 10070 - Serv. Prestados Autônomo], [ 10080 - Outras Bases de RPA ]

2. INTEGRACÃO DE BASES E ACÚMULO MENSAL

[X] Permitir Entrada via Lançamento Manual (Sobrescrita do Cadastro de Outros Vínculos)

[X] Acumular Múltiplas Emissões de RPA do Autônomo no Mesmo Mês/Ano

[X] Validar Consistência: Bloquear Entrada Manual da Verba 1519 sem Serviço Prestado no Mês

[X] Registrar Erro Informativo no Log de Cálculo (Substitui Paralisação Forçada do Sistema)

3. LIMITES E RETENÇÕES

[X] Aplicar Teto Máximo de Salário de Contribuição do INSS Vigente na Tabela Oficial

4. CLASSIFICAÇÃO ESOCIAL E INCIDÊNCIAS

Natureza da Rubrica eSocial: [ Isento / Não Informável v ]

Incidência INSS: [ ISE - Isento v ]

Incidência FGTS: [ ISE - Isento v ]

Incidência IRRF: [ ISE - Isento v ]

Gera DSR / Compõe Médias: [ NÃO v ]

Clientes com mesma regra

  • Clientes Genéricos / Operação de Autônomos (RPA): A regra legada dependia de código compilado que executava laços manuais de repetição sobre HoleriteBO para acumular pagamentos anteriores no mesmo mês, além de disparar interrupções bruscas (SysFunc_Panico) quando detectava divergências entre a base digitada e a prestação de serviços. O novo motor dynamic substitui as paradas do sistema por tratamento gracioso de log, consolida a consulta de RPAs emitidos no mês por meio de serviços de busca otimizados e utiliza a parametrização em tela das rubricas ativadoras (10070, 10080) e excludentes (5001, 5012), eliminando o engessamento da regra no código.

Status Documental

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

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