3060 - Base INSS Empregador, sem limite
⚙️ Metadados
- Código: 3060
- Tipo: Bases
- 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: 7511
🧮 Regra Geral
-
Lógica de Cálculo:
- A verba
HoleriteBase.ValorBaseé inicializada. - A partir de 01/02/2021: Se a
Solicitacao.DataReferenciafor igual ou posterior a01/02/2021, oHoleriteBase.ValorBaseé calculado como a soma deVG_SCSalario(Salário de Contribuição) eVG_SCProLabore(Pró-Labore de Contribuição), subtraindoVG_INSSBasePatronal_RescPagasMesmoMes3060SAL(base patronal de INSS de rescisões pagas no mesmo mês). O resultado é arredondado. - Isenção de Maternidade: Se a variável
VG_SC_INSS_Matern_ParteEmpresaIsentafortrue(indicando que a parte da empresa na maternidade é isenta), o sistema calcula oVlrMaternsomando os valores das verbas de Salário-Maternidade (30, 297, 346, 31, 472).- Maternidade Empresa Cidadã: Se
VG_MaternCidada_SemCPPfortrue, são adicionadas aoVlrMaternas verbas de Salário-Maternidade Empresa Cidadã (33, 298, 347, 473). - O
VlrMaterntotal é então subtraído deHoleriteBase.ValorBase.
- Maternidade Empresa Cidadã: Se
- Isenção de Paternidade: Se a variável
VG_Paternidade_Sem_CPPfortrue(indicando licença-paternidade isenta de Contribuição Previdenciária Patronal - CPP), o valor da verba1930(Licença-Paternidade (isento CPP)) é subtraído deHoleriteBase.ValorBase. - Validação de Valor Negativo: Se, após todos os cálculos,
HoleriteBase.ValorBasefor menor que0(zero) e oSolicitacao.TipoProcessonão forProvisoes, o sistema dispara um erro (SysFunc_Panico).
- A verba
-
Fórmula matemática:
HoleriteBase.ValorBase = Func_ArredondamentoPadrao(VG_SCSalario + VG_SCProLabore - VG_INSSBasePatronal_RescPagasMesmoMes3060SAL)HoleriteBase.ValorBase -= VlrMaternHoleriteBase.ValorBase -= RecuperarValorTotalVerba("1930")
-
Variáveis Utilizadas:
HoleriteBase.ValorBaseSolicitacao.DataReferenciaVG_SCSalarioVG_SCProLaboreVG_INSSBasePatronal_RescPagasMesmoMes3060SALVG_SC_INSS_Matern_ParteEmpresaIsentaVlrMaternVG_MaternCidada_SemCPPVG_Paternidade_Sem_CPPSolicitacao.TipoProcesso.
-
Condições Especiais:
- Cálculo inicial condicionado à
Solicitacao.DataReferencia >= SysFunc_NovaData(01, 02, 2021). - Ajuste por maternidade condicionado a
VG_SC_INSS_Matern_ParteEmpresaIsenta == true. - Ajuste por maternidade Empresa Cidadã condicionado a
VG_MaternCidada_SemCPP == true. - Ajuste por paternidade condicionado a
VG_Paternidade_Sem_CPP == true. - Validação de
HoleriteBase.ValorBase < 0MeSolicitacao.TipoProcesso != EnumTipoProcessoBO.Provisoespara acionar pânico.
- Cálculo inicial condicionado à
🔗 Dependências
- Verbas Relacionadas:
30(Salário-Maternidade)297(Média Salário-Maternidade)346(DSR Média Salário-Maternidade)31(Dif. Salário-Maternidade)472(Dif. Dissídio Salário-Maternidade)33(Sal.-Mater. Empresa Cidadã)298(Média Sal.-Mater. Emp. Cidadã)347(DSR Média Sal.-Mater. Emp. Cidadã)473(Dif. Dissídio Sal.-Mater. Empresa Cidadã)1930(Licença-Paternidade (isento CPP))
- Tipo de Relação: Dependência. O cálculo da verba 3060 utiliza os valores dessas outras verbas para compor sua base.
🧩 Funções
SysFunc_NovaData(dia, mes, ano): Cria um objetoDateTimea partir de dia, mês e ano. Usada para comparação de datas.Func_ArredondamentoPadrao(valor): Arredonda um valor numérico conforme o padrão do sistema. Usada para arredondar a base de cálculo.RecuperarValorTotalVerba("codigo"): Obtém o valor total acumulado de uma verba específica. Usada para somar valores de verbas de maternidade e paternidade.SysFunc_Panico("mensagem"): Interrompe o processamento e registra uma mensagem de erro crítico. Usada para sinalizar uma base de cálculo negativa inesperada.
💡 Proposta de Novo Cálculo
Fórmula proposta (padronizada):
BaseBruta = ARRED_PADRAO(VG_SCSalario + VG_SCProLabore - VG_INSSBasePatronal_RescPagasMesmoMes3060SAL)
DeducaoMaternidade = (IsentoMaternidade ? Σ(VerbasMaternidade) : 0) + (IsentoCidada ? Σ(VerbasMaternidadeCidada) : 0)
DeducaoPaternidade = IsentoPaternidade ? Σ(VerbasPaternidade) : 0
BaseLiquida = BaseBruta - DeducaoMaternidade - DeducaoPaternidade
ValorBaseFinal = ARRED_PADRAO(MAX(0, BaseLiquida))
1. Filtros de Elegibilidade e Isenções (Piso Seguro)
SE Solicitacao.TipoProcesso == PROVISOES E NAO Config.PermitirCalculoEmProvisoes ENTÃO RETORNAR NULO FIM_SE
Validação de tipo de folha permitido via parametrização SE NAO Config.TiposFolhaPermitidos.Contem(Solicitacao.TipoFolha) ENTÃO RETORNAR NULO FIM_SE
Validação de Vigência do Cálculo (Substitui validação legada de 01/02/2021) SE Config.ValidarDataVigencia E Solicitacao.DataReferencia < Config.DataInicioVigencia ENTÃO RETORNAR NULO FIM_SE
2. Determinação da Base de Cálculo Bruta (Acumuladores do Mês)
SalarioContribuição = VG_SCSalario != NULO ? VG_SCSalario : 0 ProLaboreContribuição = VG_SCProLabore != NULO ? VG_SCProLabore : 0 DeducaoRescisaoMês = VG_INSSBasePatronal_RescPagasMesmoMes3060SAL != NULO ? VG_INSSBasePatronal_RescPagasMesmoMes3060SAL : 0
BaseBruta = (SalarioContribuição + ProLaboreContribuição) - DeducaoRescisaoMês BaseBrutaArredondada = Func_ArredondamentoPadrao(BaseBruta)
3. Apuração de Deduções e Isenções Previdenciárias Patronais
ValorIsencaoMaternidade = 0 ValorIsencaoPaternidade = 0
A) Dedução de Salário-Maternidade SE Config.IsentarMaternidadePatronal OU VG_SC_INSS_Matern_ParteEmpresaIsenta ENTÃO ValorIsencaoMaternidade = SysFunc_SomarVerbas(Config.VerbasMaternidadePadrao)
Inclusão de Salário-Maternidade Empresa Cidadã SE Config.IsentarMaternidadeCidada OU VG_MaternCidada_SemCPP ENTÃO ValorIsencaoMaternidade = ValorIsencaoMaternidade + SysFunc_SomarVerbas(Config.VerbasMaternidadeCidada) FIM_SE FIM_SE
B) Dedução de Licença-Paternidade (Isenção CPP) SE Config.IsentarPaternidadePatronal OU VG_Paternidade_Sem_CPP ENTÃO ValorIsencaoPaternidade = SysFunc_SomarVerbas(Config.VerbasPaternidade) FIM_SE
4. Apuração da Base Líquida e Tratamento de Exceções/Erros
BaseLiquida = BaseBrutaArredondada - ValorIsencaoMaternidade - ValorIsencaoPaternidade
Tratamento Seguro de Base Negativa (Substitui pânico abrupto no sistema) SE BaseLiquida < 0 ENTÃO SE Solicitacao.TipoProcesso == PROVISOES ENTÃO BaseLiquida = 0 SENÃO SE Config.AcaoBaseNegativa == “BLOQUEAR_E_NOTIFICAR” ENTÃO SysFunc_RegistrarErroCalculo(“Base de INSS Patronal negativa detectada no cálculo.”, Empregado.Id, Solicitacao.Id) RETORNAR NULO SENÃO SE Config.AcaoBaseNegativa == “ZERAL_E_CONTINUAR” ENTÃO BaseLiquida = 0 FIM_SE FIM_SE FIM_SE
SE BaseLiquida <= 0 E NAO Config.GravarBaseZerada ENTÃO RETORNAR NULO FIM_SE
5. Aplicação de Limites, Tetos, Pisos e Arredondamento
ValorFinal = BaseLiquida
SE Config.AplicaTetoMaximo E Config.TetoMaximoPermitido > 0 E ValorFinal > Config.TetoMaximoPermitido ENTÃO ValorFinal = Config.TetoMaximoPermitido FIM_SE
SE Config.AplicaPisoMinimo E Config.PisoMinimoPermitido > 0 E ValorFinal < Config.PisoMinimoPermitido ENTÃO ValorFinal = Config.PisoMinimoPermitido FIM_SE
ValorFinalArredondado = Func_ArredondamentoPadrao(ValorFinal)
6. Gravação da Base de Cálculo e Atualização de Acumuladores Globais
SE ValorFinalArredondado > 0 OU Config.GravarBaseZerada ENTÃO NovaBase = CriarVerbaHoleriteBaseBO(“3060”, “Base INSS Empregador, sem limite”) NovaBase.TipoImposto = Config.TipoImpostoTributavel // Padrão: INSS NovaBase.TipoIncidencia = Config.TipoIncidenciaINSS // Padrão: INSS_EMPREGADOR NovaBase.ValorBase = ValorFinalArredondado
CopiarIncidencias(VerbaOriginal(“3060”), NovaBase)
NovaBase.ImpactoFinanceiro = Config.ImpactoFinanceiro // Padrão: Falso NovaBase.ImpactoContabil = Config.ImpactoContabil // Padrão: Verdadeiro
Alimentação de acumulador do motor de apuração da quota patronal SE Config.AtualizarAcumuladorINSSPatronal ENTÃO VG_BaseINSS_Patronal_SemLimite_Liquidacao = ValorFinalArredondado FIM_SE
Holerite.ListaHoleriteBase.Adicionar(NovaBase) FIM_SE
FIM
Parametrizações Propostas para Reestruturação
1. REGRAS DE ENTRADA E VIGÊNCIA
[ ] Permitir Execução no Processo de Provisões
Tipos de Folha Permitidos …: [X] Regular [X] Férias [X] Rescisão [X] Complementar
[X] Validar Data de Início de Vigência
Data Início Vigência do Cálculo …: [ 01/02/2021 ]
2. ISENÇÕES PREVIDENCIÁRIAS PATRONAIS (ISENÇÃO CPP)
[X] Aplicar Isenção Patronal para Salário-Maternidade
Verbas de Salário-Maternidade Padrão …: [ 30, 297, 346, 31, 472 ]
[X] Aplicar Isenção Patronal para Maternidade Empresa Cidadã
Verbas de Maternidade Empresa Cidadã …: [ 33, 298, 347, 473 ]
[X] Aplicar Isenção Patronal para Licença-Paternidade
Verbas de Licença-Paternidade …: [ 1930 ]
3. TRATAMENTO DE ERROS E SEGURANÇA OPERACIONAL
Ação para Base com Valor Negativo …: (X) Bloquear Folha e Registrar Erro
( ) Zerar Resultado e Continuar
( ) Permitir Valor Negativo
Permitir Execução sem Acumuladores …: [ ] Sim [X] Não
4. MODO DE PROCESSAMENTO E CRITÉRIOS DE GRAVAÇÃO
Impacto Financeiro …: [ ] Sim [X] Não
Impacto Contábil …: [X] Sim [ ] Não
Arredondamento Padrão …: [X] Sim [ ] Não
Tratamento para Base Zero …: (X) Ignorar Gravação ( ) Gravar com R$ 0,00
[X] Atualizar Acumulador Global de INSS Patronal (VG_BaseINSS_Patronal_SemLimite_Liquidacao)
5. LIMITES E PROTEÇÃO DE VALORES
Aplica Teto Máximo Permitido? …: [ ] Sim [X] Não
Valor Teto Máximo Permitido …: [ R$ 0,00 ]
Aplica Piso Mínimo Permitido? …: [ ] Sim [X] Não
Valor Piso Mínimo Permitido …: [ R$ 0,00 ]
6. TRIBUTAÇÃO E ENVIOS ESOCIAL
Natureza eSocial …: [ Isento / Não Informar ]
Incidência INSS …: [ Isento ]
Incidência FGTS …: [ Isento ]
Incidência IRRF …: [ Isento ]
Clientes com mesma regra
- Regra Geral / Todos os Clientes: A engine unificada atende integralmente a todas as operações. O motor compõe a base previdenciária patronal ilimitada somando os salários de contribuição e pró-labore, abatendo as rescisões pagas no mês e aplicando as deduções parametrizadas de salário-maternidade (padrão e empresa cidadã) e licença-paternidade.
Status Documental
- Status: Documentada
- Origem: export do Notion + catálogo da wiki
- Fonte rastreável:
30dc75ea2e838173ac0cd25b6c4b243b