Histórico da Página
...
O módulo TOTVS folha de pagamento permite calcular a indenização prevista através de fórmula.
Abaixo exemplificaremos sugestão de fórmulas que calcula a indenização conforme regras de MP 936.
Consulta SQL necessária para executar a Fórmula de Indenização por redução de jornada:
Bloco de código | ||||
---|---|---|---|---|
| ||||
SELECT
DTACORDOBEM,DURACAOBEM,VALORREDUZIDOBEM,DTCANCELAMENTOBEM,DTANTECIPACAOBEM,DIASPRORROGACAOBEM,PERCENTUALREDUCAOBEM
FROM PFHSTBEM (NOLOCK)
WHERE codcoligada =:FRM_COLIGADA and chapa =:FRM_CHAPA
and TIPOADESAOBEM = '1'
ORDER BY DTMUDANCA ASC |
Fórmula para calcular a indenização quando devida para funcionário que teve redução de salário. Esta fórmula foi utilizada os campo complementares sugeridos aqui:
Bloco de código | ||
---|---|---|
| ||
DECL DTREDUZIDADECL DataInicioAcordo; DECL DataInicioAcordoAnt; DECL DiasDuracao; DECL DiasProrrog; DECL DiasProrrogAnt; DECL DataCancelamento; DECL DataAntecipacao; DECL DataFimAcordo; DECL DataFimAcordoAnt; DECL DTRETPercAcodr; DECL QUANTDIASSalMensal; DECL SALREDValorInd; DECL PERCENTUALValorTotal; DECL DuracaoTotal; DECL SALCONSIDERADODiasAbatidos; DECL DiasDireito; DECL TPDEMISSAOTpDemissao; SETVAR (DTREDUZIDATpDemissao, TABFUNC TABCOMPL('DTJORREDUZIDATIPODEMISSAO', 'D')); SETVAR (DTRETSalMensal, TABCOMPLTABFUNC('DTRETORNOSALARIO', 'D')I')); SETVAR (DiasDireito, 1); SETVAR (DataInicioAcordoAnt, DATANULA); SETVAR (SALRED, TABCOMPL('SALREDUZIDO', 'IDiasProrrogAnt, 0); SETVAR (DataFimAcordoAnt, DATANULA); SE TpDemissao <> 2; ENTAO 0; SENAO SE (EXECSQL ('BEM') = FALSO) ENTAO 0; SENAO /* Retorna o valor de indenização devido considerando todos acordos*/ SE (EXECSQL ('BEM') = Verdade) ENTAO REPITA SETVAR (DataInicioAcordo,resultsql('BEM','DTACORDOBEM')); SETVAR (DiasDuracao,resultsql('BEM','DURACAOBEM')); SETVAR (PERCENTUAL, TABCOMPL('PRECREDUTOR', 'I(DiasProrrog,resultsql('BEM','DIASPRORROGACAOBEM')); SETVAR (DataCancelamento,resultsql('BEM','DTCANCELAMENTOBEM')); SETVAR (DataAntecipacao,resultsql('BEM','DTANTECIPACAOBEM')); SETVAR (TPDEMISSAOPercAcodr, TABFUNC resultsql('TIPODEMISSAOBEM','PERCENTUALREDUCAOBEM')); SE DTRETDataInicioAcordoAnt = '01/01/0001' E DTREDUZIDA = '01/01/0001' ENTAO 0 SENAO SE DTRET = '01/01/0001' E DTREDUZIDA <> '01/01/0001' ENTAO 0 SENAO SE DTRET <> '01/01/0001' E DTREDUZIDA <> '01/01/0001' E TPDEMISSAO = 2 ENTAO SETVAR (QUANTDIAS, SUBTRAIDATAS(DTRET, DTREDUZIDA)); SETVAR (SALCONSIDERADO, (RC - SALRED)); SE (DTRET+QUANTDIAS) > DTD E PERCENTUAL < 50 ENTAO SALCONSIDERADO * 0.50 SENAO SE (DTRET+QUANTDIAS) > DTD E PERCENTUAL < 70 ENTAO SALCONSIDERADO * 0.70 SENAO SE (DTRET+QUANTDIAS) > DTD E PERCENTUAL >= 70 ENTAO SALCONSIDERADO DataInicioAcordo ENTAO SETVAR (DiasDuracao, 0); FIMSE; SE DiasProrrogAnt = DiasProrrog ENTAO SETVAR (DiasProrrog, 0); FIMSE; SE DataFimAcordoAnt <> DATANULA ENTAO SETVAR (DataFimAcordo, (DataFimAcordoAnt + DiasDuracao+ DiasProrrog)); SENAO SETVAR (DataFimAcordo, DataInicioAcordo + DiasDuracao + DiasProrrog) FIMSE; SE DataAntecipacao <> DATANULA ENTAO SETVAR (DiasDuracao, (SUBTRAIDATAS ((DataAntecipacao+1),DataFimAcordo))); FIMSE; SE DataCancelamento <> DATANULA ENTAO SETVAR (DiasDuracao, (SUBTRAIDATAS ((DataCancelamento+1), DataFimAcordo))); FIMSE; SETVAR (DiasDuracao, (DiasDuracao+DiasProrrog)); SE PercAcodr < 50 ENTAO SETVAR (ValorInd, (SalMensal * (DiasDuracao/30) * 0.50)); SENAO SE PercAcodr < 70 ENTAO SETVAR (ValorInd, (SalMensal * (DiasDuracao/30) * 0.75)); SENAO SE PercAcodr >= 70 ENTAO SETVAR (ValorInd, (SalMensal * (DiasDuracao/30))); FIMSE; FIMSE; FIMSE; SETVAR (ValorTotal, ValorTotal+ValorInd); SETVAR (DuracaoTotal, DuracaoTotal+DiasDuracao); SETVAR (DataInicioAcordoAnt, DataInicioAcordo); SETVAR (DiasProrrogAnt, DiasProrrog); SETVAR (DataFimAcordoAnt, DataFimAcordo); ATE ProxRegSQL('BEM' ) = Falso FIMSE; /* Abate os dias de Estabilidade que não entra no cálculo da indenização*/ SE SUBTRAIDATAS (DTD, DataFimAcordo) = DiasDuracao ENTAO SETVAR (DiasAbatidos, 0); SENAO SETVAR (DiasAbatidos, SUBTRAIDATAS (DTD, DataFimAcordo)); FIMSE; SE DiasAbatidos > 0 E (DuracaoTotal - DiasAbatidos ) > 0; ENTAO SETVAR (DiasDireito, DuracaoTotal - DiasAbatidos); SETVAR (ValorTotal, (ValorTotal/DuracaoTotal)*DiasDireito); SENAO ValorTotal; FIMSE; FIMSE; |
Fórmula para calcular para calcular a indenização quando devida para funcionário que teve Suspensão temporário de trabalho. Para esta fórmula usaremos a consulta SQL sugerida aqui.abaixo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
SELECT CHAPA, TIPO, DTINICIO, DTFINAL
FROM PFHSTAFT (NOLOCK)
WHERE TIPO IN ('C') AND MOTIVO = 'CV' AND PFHSTAFT.CHAPA=:FRM_CHAPA
AND PFHSTAFT.CODCOLIGADA=:FRM_COLIGADA |
Bloco de código | ||
---|---|---|
| ||
DECL DATAINICIO; DECL DATAFIM; DECL QUANTDIAS; DECL CH; DECL TPDEMISSAO; SE EXECSQL('AFASTAMENTO') = 1; ENTAO REPITA SE RESULTSQL('AFASTAMENTO','CHAPA') = CHAPA; ENTAO SETVAR (DATAINICIO, RESULTSQL('AFASTAMENTO','DTINICIO')); SETVAR (DATAFIM, RESULTSQL('AFASTAMENTO','DTFINAL')); SETVAR (CH, RESULTSQL('AFASTAMENTO', 'CHAPA')); SETVAR (TPDEMISSAO, TABFUNC ('TIPODEMISSAO','')); FIMSE ATE PROXREGSQL('AFASTAMENTO') = FALSO; SE CH = 0 ENTAO 0 SENAO SE DATAFIM = '01/01/0001' ENTAO 0 SENAO SE DATAFIM <> '01/01/0001' E TPDEMISSAO = 2 ENTAO SETVAR (QUANTDIAS, SUBTRAIDATAS(DATAFIM, DATAINICIO)); SE (DATAFIM+QUANTDIAS) > DTD ENTAO RC SENAO 0 |
...
Ao executar o processo de rescisão, o evento é lançado. No envelope abaixo o funcionário tinha estabilidade por Suspensão de Contrato:Redução de Jornada:
eSocial
Observação: Disponível a partir das versões 12.1.25.268, 12.1.26.212, 12.1.27.166 e 12.1.28.102
Para o eSocial foi adicionada a natureza de rubrica 6119 - Indenização rescisória – MP 936: Indenização pela dispensa sem justa causa que ocorrer durante o período de garantia provisória no emprego de que trata o art. 10 da MP 936/2020. Início de validade: 01/04/2020.
Nota | ||
---|---|---|
| ||
Antes de executar a rescisão, é necessário alterar o salário do funcionário voltando As verbas rescisórias deve ser calculadas considerando o valor integral, não podendo as verbas de rescisão serem calculadas considerando o salário reduzido . Entendemos que este procedimento é correto, pois o benefício é para manter o emprego e caso ocorra a demissão, o funcionário não pode ser prejudicado. mesmo que esteja dentro do período de acordo de redução de jornada/salário. |