Histórico da Página
...
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:
Bloco de código | ||
---|---|---|
| ||
DECL DTREDUZIDADECL DataInicioAcordo; DECL DiasDuracao; DECL DiasProrrog; DECL DataCancelamento; DECL DataAntecipacao; DECL DTRETDataFimAcordo; DECL QUANTDIASPercAcodr; DECL SALSalMensal; DECL PERCENTUALValorInd; DECL TPDEMISSAOValorTotal; DECL QUANTMESDuracaoTotal; DECL DIASDIREITODiasAbatidos; DEClDECL DIASABTIDOSDiasDireito; SETVAR (DTREDUZIDASalMensal, TABFUNC('DTACORDOBEMSALARIO', 'DI')); SETVAR (QUANTMES , TABFUNC('DURACAOBEM','I') + TABFUNC ('DIASPRORROGACAOBEM','IDiasDireito, 1); /* Retorna o valor de indenização devido considerando todos acordos*/ SE (EXECSQL ('BEM') = Verdade) ENTAO REPITA SETVAR (DataInicioAcordo,resultsql('BEM','DTACORDOBEM')); SETVAR (DTRETDiasDuracao, resultsql(TABFUNC('DTACORDOBEMBEM','DDURACAOBEM')+ (QUANTMES))); SETVAR (SALDiasProrrog, TABFUNCresultsql('SALARIOBEM', 'IDIASPRORROGACAOBEM')); SETVAR (PERCENTUALDataCancelamento, TABFUNCresultsql('PERCENTUALREDUCAOBEMBEM', 'IDTCANCELAMENTOBEM')); SETVAR (TPDEMISSAODataAntecipacao, TABFUNC resultsql('TIPODEMISSAOBEM','DTANTECIPACAOBEM')); SE DTRET = '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 (DIASABTIDOS, SUBTRAIDATAS (DTD, DTRET)); SE DIASABTIDOS > 0 E (QUANTDIAS - DIASABTIDOS) > 0 ENTAO SETVAR (DIASDIREITO, (QUANTDIAS - DIASABTIDOS)); SENAO SETVAR (DIASDIREITO, SUBTRAIDATAS(DTD, DTREDUZIDA)); FIMSE; SE (DTRET+QUANTDIAS) > DTD E PERCENTUAL < 50 ENTAO SAL * (DIASDIREITO/30) * 0.50 SENAO SE (DTRET+QUANTDIAS) > DTD E PERCENTUAL < 70 ENTAO SAL * (DIASDIREITO/30) * 0.75 SENAO SE (DTRET+QUANTDIAS) > DTD E PERCENTUAL >= 70 ENTAO SAL * (DIASDIREITO/30)SETVAR (PercAcodr,resultsql('BEM','PERCENTUALREDUCAOBEM')); SE DataAntecipacao <> DATANULA ENTAO SETVAR (DiasDuracao, (SUBTRAIDATAS (DataAntecipacao, DataInicioAcordo))); FIMSE; SE DataCancelamento <> DATANULA ENTAO SETVAR (DiasDuracao, (SUBTRAIDATAS (DataCancelamento, DataInicioAcordo))); 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); ATE ProxRegSQL('BEM' ) = Falso FIMSE; /* Abate os dias de Estabilidade que não entra no cálculo da indenização*/ SETVAR (DataInicioAcordo, TABFUNC('DTACORDOBEM', 'D')); SETVAR (DiasDuracao, TABFUNC ('DURACAOBEM','I') + TABFUNC ('DIASPRORROGACAOBEM','I')); SETVAR (DataFimAcordo, (DataInicioAcordo+DiasDuracao)); SETVAR (DiasAbatidos, SUBTRAIDATAS (DTD, DataFimAcordo+1)); SE DiasAbatidos > 0 E (DuracaoTotal - DiasAbatidos ) > 0 ENTAO SETVAR (DiasDireito, DuracaoTotal - DiasAbatidos); FIMSE; SETVAR (ValorTotal, (ValorTotal/DuracaoTotal)*DiasDireito); ValorTotal; |
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.
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas