Versões comparadas

Chave

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

...

Bloco de código
languagesql
titleSQL - Afastamento Licença Maternidade
SELECT CHAPA, TIPO, DTINICIO, DTFINAL
FROM PFHSTAFT (NOLOCK)
WHERE TIPO = 'E' AND DTINICIO >= '28/04/2021' AND PFHSTAFT.CHAPA=:FRM_CHAPA AND PFHSTAFT.CODCOLIGADA=:FRM_COLIGADA


Passo 2:

Fórmula que retorna a data de Inicio da Licença Maternidade. A mesma será chamada na fórmula para o da Estabilidade com o Código 'LICMATER':

Bloco de código
titleRetorna data Início de Licença Maternidade
DECL DataInicAfast;

SE (EXECSQL ('AFAST_LIC_MATER') = FALSO)
ENTAO DATANULA;
SENAO

SE (EXECSQL ('AFAST_LIC_MATER') = Verdade)
ENTAO
REPITA
SETVAR (DataInicAfast, RESULTSQL('AFAST_LIC_MATER', 'DTINICIO'));
ATE ProxRegSQL('AFAST_LIC_MATER' ) = Falso
FIMSE;

Criar uma fórmula que valias valida as condições de estabilidade para redução de Jornada/Salario. Abaixo um exemplo de fórmula que retorna mensagens conforme as regras da MP 9361045:

Bloco de código
titleFórmula - Estabilidade de Redução de Jornada/Salário
DECL DataInicioAcordo;
DECL DiasDuracao;
DECL DiasProrrog;
DECL DataCancelamento;
DECL DataAntecipacao;
DECL DataFimAcordo;
DECL DuracaoTotal;
DECL DataInicioAcordoAnt;
DECL DiasAbatidos;
DECL DiasAbatidosTotal;
DECL DataInicAfastLicMater;
   
SETVAR (DataInicioAcordoAnt, DATANULA);
SETVAR (DataFimAcordo, DATANULA);
   
SE (EXECSQL ('BEM') = FALSO)
ENTAO 'FUNCIONÁRIO SEM ESTABILIDADE POR REDUÇÃO DE JORNADA/SALÁRIO OU SUSPENSÃO DE CONTRATO CONFORME MP 936.';
SENAO
 
/* Retorna a quantidade total de dias de acordo por redução de Jornada*/
SE (EXECSQL ('BEM') = Verdade);
REPITA
SETVAR (DataInicioAcordo,resultsql('BEM','DTACORDOBEM'));
SETVAR (DiasDuracao,resultsql('BEM','DURACAOBEM'));
SETVAR (DiasProrrog,resultsql('BEM','DIASPRORROGACAOBEM'));
SETVAR (DataCancelamento,resultsql('BEM','DTCANCELAMENTOBEM'));
SETVAR (DataAntecipacao,resultsql('BEM','DTANTECIPACAOBEM'));
  
SE DataAntecipacao <> DATANULA
ENTAO SETVAR (DiasDuracao, (SUBTRAIDATAS (DataAntecipacao, DataInicioAcordo)));
FIMSE;
SE DataCancelamento <> DATANULA
ENTAO SETVAR (DiasDuracao, (SUBTRAIDATAS (DataCancelamento, DataInicioAcordo)));
FIMSE;
   
SE DataInicioAcordo = DataInicioAcordoAnt;
SETVAR (DiasDuracao, DiasProrrog);
FIMSE;

SE DataFimAcordo = DATANULA OU DataInicioAcordo = DataInicioAcordoAnt;
ENTAO 0
SENAO
SETVAR (DiasAbatidos, (SUBTRAIDATAS(DataInicioAcordo,DataFimAcordo+1)));
FIMSE;
   
SETVAR (DataFimAcordo, DataInicioAcordo+DiasDuracao+DiasProrrog);
SETVAR (DuracaoTotal, DuracaoTotal+DiasDuracao);
SETVAR (DataInicioAcordoAnt, DataInicioAcordo);
SETVAR (DiasAbatidosTotal, DiasAbatidosTotal+DiasAbatidos);
    
ATE ProxRegSQL('BEM') = Falso
FIMSE;

SETVAR (DataInicAfastLicMater, (FOR ('LICMATER')));


SE DataFimAcordo = (DataInicioAcordo + DuracaoTotal-DiasAbatidosTotal);
SETVAR (DataFimAcordo, DataInicioAcordo + DuracaoTotal-DiasAbatidosTotal);
FIMSE;
   
SE (DataInicAfastLicMater <> DATANULA) E (DataInicAfastLicMater >= DataFimAcordo) E (DataFimAcordo+DuracaoTotal+150-DiasAbatidosTotal) > MTDATA(01,MES,ANO)
ENTAO
CONCAT ('FUNCIONÁRIO POSSUÍ ESTABILIDADE POR REDUÇÃO DE JORNADA/SALÁRIO OU SUSPENSÃO DE CONTRATO COM PRORROGAÇÃO DEVIDO A LICENÇA MATERNIDADE ATÉ ', DataFimAcordo+DuracaoTotal-DiasAbatidosTotal+150);
SENAO
SE (DataFimAcordo + DuracaoTotal-DiasAbatidosTotal) > MTDATA(01,MES,ANO)
ENTAO
CONCAT ('FUNCIONÁRIO POSSUÍ ESTABILIDADE POR REDUÇÃO DE JORNADA/SALÁRIO OU SUSPENSÃO DE CONTRATO ATÉ ', DataFimAcordo+DuracaoTotal-DiasAbatidosTotal);
SENAO
'FUNCIONÁRIO SEM ESTABILIDADE POR REDUÇÃO DE JORNADA/SALÁRIO OU SUSPENSÃO DE CONTRATO CONFORME MP 936.'
FIMSE;
FIMSE;

...