213 - Bônus p/ Sócio
⚙️ Metadados
- Código: 213
- Tipo: Provento
- INSS: ISE
- FGTS: ISE
- IRRF: PRO
- Natureza eSocial: 3508 - Retiradas (pró-labore) de proprietários ou sócios
- DSR: Não
- Médias: Não
- Impacto Financeiro: Não
- Impacto Contábil: Sim
- Sequência: 191
🧮 Regra Geral
-
Lógica de Cálculo: A verba é calculada apenas se houver um lançamento manual (
Lancamento) existente para ela. Caso contrário, o cálculo é interrompido (return null), e a verba não é gerada. O valor da verba é proveniente do próprio lançamento manual, pois a fórmula não contém lógica de cálculo de valor. -
Variáveis Utilizadas:
Lancamento(representa o lançamento manual da verba).
-
Condições Especiais:
- A única condição é a validação da existência de um lançamento manual através da função
Func_ValidarExistenciaLancamento.
- A única condição é a validação da existência de um lançamento manual através da função
🧩 Funções
Func_ValidarExistenciaLancamento(Lancamento): Verifica se existe um lançamento manual para a verba.
💡 Proposta de Novo Cálculo
Fórmula proposta (padronizada):
ValorBase = SE(OrigemCalculo == “LancamentoManual”, ValorDigitado, SE(PermitirAutomatico == Verdadeiro, SE(TipoValoracao == “Percentual”, BaseProLabore * (PercentualBonus / 100), ValorFixoBonus), 0))
ValorFinal213 = Func_ArredondamentoPadrao(MAX(PisoMinimo, MIN(ValorBase, SE(PossuiTeto == Verdadeiro, TetoMaximo, ValorBase))))
1. Filtros de Elegibilidade e Isenções (Piso Seguro)
SE Config.PossuiDataVigenciaInicio E Solicitacao.DataReferencia < Config.DataVigenciaInicio ENTÃO RETORNAR NULO FIM_SE
SE Solicitacao.TipoProcesso == PROVISOES E NAO Config.PermitirCalculoEmProvisoes ENTÃO RETORNAR NULO FIM_SE
SE NAO Config.TiposFolhaPermitidos.Contem(Solicitacao.TipoFolha) ENTÃO RETORNAR NULO FIM_SE
SE Config.ExigirFiltroElegibilidadeEmpresa E NAO Config.EmpresasHabilitadas.Contem(Empregador.Id) ENTÃO RETORNAR NULO FIM_SE
SE Config.ValidarElegibilidadeSocio E NAO (Empregado.CategoriaeSocial == “701” OU Empregado.CategoriaeSocial == “702” OU Empregado.EhSocio) ENTÃO RETORNAR NULO FIM_SE
2. Determinação da Base de Cálculo, Lançamentos e Valoração
LancamentoManual = Holerite.ObterLancamento(“213”) ValorBaseCalculado = 0.0 OrigemValoracao = ""
SE Func_ValidarExistenciaLancamento(LancamentoManual) E LancamentoManual.ValorTotal > 0.0 ENTÃO ValorBaseCalculado = ABS(LancamentoManual.ValorTotal) OrigemValoracao = “LANCAMENTO_MANUAL_VALOR” SENÃO SE Config.PermitirCalculoAutomaticoBonusSocio ENTÃO SE Config.TipoValoracaoAutomatica == “PERCENTUAL_PROLABORE” ENTÃO BaseProLabore = Holerite.ObterValorTotalVerba(Config.CodigoVerbaProLabore) ValorBaseCalculado = BaseProLabore * (Config.PercentualBonus / 100.0) SENÃO SE Config.TipoValoracaoAutomatica == “VALOR_FIXO” ENTÃO ValorBaseCalculado = Config.ValorFixoBonus FIM_SE
OrigemValoracao = “AUTOMATICO_PARAMETRO” SENÃO RETORNAR NULO FIM_SE
ValorBrutoCalculado = ValorBaseCalculado
3. Aplicação de Limites, Tetos e Pisos
SE Config.PossuiTetoMaximo E ValorBrutoCalculado > Config.ValorTetoMaximo ENTÃO ValorBrutoCalculado = Config.ValorTetoMaximo SENÃO SE Config.PossuiPisoMinimo E ValorBrutoCalculado < Config.ValorPisoMinimo ENTÃO ValorBrutoCalculado = Config.ValorPisoMinimo FIM_SE
ValorFinal213 = Func_ArredondamentoPadrao(ValorBrutoCalculado)
SE ValorFinal213 <= 0.0 E NAO Config.GravarVerbaZerada ENTÃO RETORNAR NULO FIM_SE
4. Gravação de Campos e Acumuladores Fiscais (Natureza eSocial 3508 - Retiradas de proprietários ou sócios)
RubricaBonusSocioIsentoINSS = CriarVerbaHoleriteBO(“213”, “Bônus p/ Sócio”) RubricaBonusSocioIsentoINSS.TipoVerba = “P”
RubricaBonusSocioIsentoINSS.Quantidade = SE(LancamentoManual != NULO E LancamentoManual.Quantidade > 0.0, LancamentoManual.Quantidade, 1.0) RubricaBonusSocioIsentoINSS.ValorReferencia = Func_ArredondamentoPadrao(ValorBaseCalculado) RubricaBonusSocioIsentoINSS.ValorTotal = ValorFinal213
Encargos Sociais Conforme Metadados (INSS: ISE, FGTS: ISE, IRRF: PRO) SE Config.TributarINSS ENTÃO Holerite.AcumularBase(“BASE_INSS_PRO_LABORE”, ValorFinal213) SENÃO Holerite.AcumularBase(“BASE_INSS_ISENTA_FOLHA”, ValorFinal213) FIM_SE
SE Config.TributarFGTS ENTÃO Holerite.AcumularBase(“BASE_FGTS_FOLHA”, ValorFinal213) SENÃO Holerite.AcumularBase(“BASE_FGTS_ISENTA_FOLHA”, ValorFinal213) FIM_SE
SE Config.TributarIRRF ENTÃO Holerite.AcumularBase(“BASE_IRRF_PRO_LABORE”, ValorFinal213) SENÃO Holerite.AcumularBase(“BASE_IRRF_ISENTA_FOLHA”, ValorFinal213) FIM_SE
Repercussão de Reflexos: DSR e Médias (Sem DSR e Sem Médias Conforme Metadados) SE Config.ComporDSR E SysFunc_VerbaPossuiDSR(“213”) ENTÃO Holerite.AcumularBase(“BASE_HORAS_VARIAVEIS_DSR”, ValorFinal213) Func_DSR(“213”, “DSR s/ Bônus p/ Sócio”, “213”, ValorFinal213, RubricaBonusSocioIsentoINSS, VERDADEIRO) FIM_SE
SE Config.IncorporaMedias ENTÃO Holerite.AcumularBase(“BASE_MEDIAS_13”, ValorFinal213) Holerite.AcumularBase(“BASE_MEDIAS_FERIAS”, ValorFinal213) Holerite.AcumularBase(“BASE_MEDIAS_RESCISAO”, ValorFinal213) FIM_SE
Holerite.ListaHoleriteVerba.Adicionar(RubricaBonusSocioIsentoINSS)
Registro em memória de cálculo detalhada Argumento(“ORIGEM_VALORACAO_213”, OrigemValoracao) Argumento(“VALOR_BASE_213”, ValorBaseCalculado) Argumento(“VALOR_FINAL_213”, ValorFinal213)
EscreverMemoria(“BONUS_SOCIO_ISENTO_INSS”, String.Format(“Bônus p/ Sócio: Origem: {0} | Valor Base R$ {1} | Valor Final R$ {2}”, OrigemValoracao, ValorBaseCalculado.ToString(“N2”), ValorFinal213.ToString(“N2”)))
RETORNAR RubricaBonusSocioIsentoINSS
FIM
Parametrizações Propostas para Reestruturação
1. REGRAS DE ENTRADA E FILTROS DE ELEGIBILIDADE
Tipos de Folha Permitidos …: [X] Férias [X] Regular [X] Rescisão [ ] Provisões
Modo Principal de Apuração …: [ Lançamento Manual em Valor v ] [ Lançamento Manual em Valor ] [ Apuração Automática por Diretoria/Sócio]
[ ] Exigir Filtro de Elegibilidade por Empresa / Cliente
[X] Validar Categoria eSocial do Trabalhador (Apenas Sócios / Diretores)
2. DIRETRIZES DE VALORAÇÃO AUTOMÁTICA
[ ] Permitir Apuração Automática de Bônus a Sócios
Tipo de Valoração Automática …: [ Percentual sobre Pró-Labore Base v ] [ Valor Fixo Parametrizado Tabela ]
Base Pró-Labore Referência …: [ Verba Pró-Labore Principal (Cód. 201) v ]
Percentual do Bônus (%) …: [ 0,00 % ]
Valor Fixo de Bônus R$ …: [ 0,00 ]
3. LIMITES E CONTROLE
[ ] Possui Teto Máximo
Valor Teto Máximo R$ …: [ 0,00 ]
[ ] Possui Piso Mínimo
Valor Piso Mínimo R$ …: [ 0,00 ]
[ ] Gravar Verba quando Valor Final for Zero
4. ENCARGOS E NATUREZA ESOCIAL
Natureza eSocial …: [ 3508 - Retiradas (pró-labore) de sócios v ]
Incidência INSS …: [ Isento (ISE) ]
Incidência FGTS …: [ Isento (ISE) ]
Incidência IRRF …: [ Pró-Labore / Contribuinte Individual (PRO) ]
Afeta DSR …: [ ] Sim [X] Não
Incorpora Médias …: [ ] Sim [X] Não
Clientes com mesma regra
- Padrão Geral (Todos os Clientes): O cálculo legado da verba 213 limita-se a validar a existência de lançamento manual por meio do método
Func_ValidarExistenciaLancamento. Na nova arquitetura, o comportamento operacional permanece idêntico quando o modo de apuração for “Lançamento Manual em Valor”. A ausência de valor digitado encerra o processamento retornando nulo, garantindo compatibilidade total com os fluxos vigentes.
Status Documental
- Status: Documentada
- Origem: export do Notion + catálogo da wiki
- Fonte rastreável:
30dc75ea2e838139a8f0c114ac6bf45e