Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
titleFórmula - Estabilidade Afastamento
DECL DATAINICIO;
DECL DATAFIM;
DECL QUANTDIAS;
DECL CH;
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'));
FIMSE
ATE PROXREGSQL('AFASTAMENTO') = FALSO;
SE CH = 0
ENTAO
'FUNCIONÁRIO SEM ESTABILIDADE POR SUSPENSÃO DE CONTRATO CONFORME MP 936.'
SENAO
SE DATAFIM = '01/01/0001'
ENTAO 
CONCAT ('FUNCIONÁRIO POSSUI ESTABILIDADE POR SUSPENSÃO DE CONTRATO E DATA RETORNO DA SUSPENSÃO NÃO ESÁ PREENCHIDA. DEPENDENDO DA DATA DE RETORNO, FUNCIONÁRIO PODE TER ESTABILIDADE, CONFORME MP 936, ATÉ ', DATAINICIO + 120);
SENAO
SE DATAFIM <> '01/01/0001'
ENTAO
SETVAR (QUANTDIAS, SUBTRAIDATAS(DATAFIM, DATAINICIO));
SE (DATAFIM+QUANTDIAS) > MTDATA(01,MES,ANO)
ENTAO
CONCAT ('FUNCIONÁRIO POSSUÍ ESTABILIDADE POR SUPENSÃO DE CONTRATO, CONFORME MP 936, ATÉ ', DATAFIM+(QUANTDIAS+1))
SENAO
'FUNCIONÁRIO SEM ESTABILIDADE POR SUSPENSÃO DE CONTRATO CONFORME MP 936.'

Passo 3: Utilizar a mesma consulta SQL usada para calcular o valor reduzido do BEM

Bloco de código
languagesql
titleSQL - Retorna registros do Histórico do BEM de tipo de adesão Redução de Jornada de Trabalho
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


Passo 4: Criar uma fórmula que valias as condições de estabilidade para redução de Jornada/Salario. Abaixo um exemplo de fórmula utilizado os campos complementares sugeridos aqui e que retorna mensagens conforme as regras da MP 936:

Bloco de código
titleFórmula - Estabilidade de Redução de Jornada/Salário
DECL DTREDUZIDADataInicioAcordo;
DECL DiasDuracao;
DECL DiasProrrog;
DECL DataCancelamento;
DECL DTRETDataAntecipacao;
DECL QUANTDIASDataFimAcordo;
DECL QUANTMESDuracaoTotal;
DECL TPADESAODataInicioAcordoAnt;

SETVAR (DTREDUZIDA, TABFUNC('DTACORDOBEM','DDataInicioAcordoAnt, DATANULA); 
 
/* Retorna a quantidade total de dias de acordo por redução de Jornada*/
SE (EXECSQL ('BEM') = Verdade)
ENTAO
REPITA
SETVAR (DataInicioAcordo,resultsql('BEM','DTACORDOBEM'));
SETVAR (DTRET, (TABFUNC('DTACORDOBEMDiasDuracao,resultsql('BEM','DURACAOBEM'));
SETVAR (DiasProrrog,resultsql('BEM','DDIASPRORROGACAOBEM'))+;
SETVAR (TABFUNCDataCancelamento,resultsql('DURACAOBEMBEM','IDTCANCELAMENTOBEM'))));
SETVAR (TPADESAODataAntecipacao, TABFUNCresultsql('TIPOADESAOBEMBEM', 'IDTANTECIPACAOBEM'));
 
SE TPADESAODataAntecipacao <> 1DATANULA
ENTAO
'FUNCIONÁRIO SEMSETVAR ESTABILIDADE POR REDUÇÃO DE JORNADA/SALÁRIO CONFORME MP 936.'
SENAO
SE DTRET = '01/01/0001' E DTREDUZIDA = '01/01/0001' 
ENTAO
'FUNCIONÁRIO SEM ESTABILIDADE POR REDUÇÃO DE JORNADA/SALÁRIO CONFORME MP 936.'
SENAO
SE DTRET = '01/01/0001' E DTREDUZIDA <> '01/01/0001' 
ENTAO
CONCAT ('FUNCIONÁRIO POSSUI ESTABILIDADE POR REDUÇÃO SALARIAL E DATA RETORNO DE ALTERAÇÃO DE JORNADA/SALÁRIO NÃO ESÁ PREENCHIDA. DEPENDENDO DA DATA DE RETORNO, FUNCIONÁRIO PODE TER ESTABILIDADE ATÉ ', DTREDUZIDA + 180);
SENAO
SE DTRET <> '01/01/0001'
ENTAO
SETVAR (QUANTDIAS, SUBTRAIDATAS(DTRET, DTREDUZIDA));
SE (DTRET+QUANTDIAS(DiasDuracao, (SUBTRAIDATAS (DataAntecipacao, DataInicioAcordo)));
FIMSE;
SE DataCancelamento <> DATANULA
ENTAO SETVAR (DiasDuracao, (SUBTRAIDATAS (DataCancelamento, DataInicioAcordo)));
FIMSE;

SE DataInicioAcordo = DataInicioAcordoAnt; 
SETVAR (DiasDuracao, DiasProrrog);
SENAO
SETVAR (DiasDuracao, (DiasDuracao+DiasProrrog));
FIMSE;
 
SETVAR (DuracaoTotal, DuracaoTotal+DiasDuracao);
SETVAR (DataInicioAcordoAnt, DataInicioAcordo);
 
ATE ProxRegSQL('BEM' ) = Falso
FIMSE;

SETVAR (DataFimAcordo, DataInicioAcordo + DuracaoTotal);

SE (DataFimAcordo + DuracaoTotal) > MTDATA(01,MES,ANO)
ENTAO
CONCAT ('FUNCIONÁRIO POSSUÍ ESTABILIDADE POR REDUÇÃO DE SALÁRIO ATÉ ', DTRETDataFimAcordo+QUANTDIASDuracaoTotal)
SENAO
'FUNCIONÁRIO SEM ESTABILIDADE POR REDUÇÃO DE JORNADA/SALÁRIO CONFORME MP 936.'
FIMSE;

Passo 4: Criar um fórmula para concatenar o resultado das duas fórmulas acima:

...