Histórico da Página
...
Bloco de código | ||
---|---|---|
| ||
/* Cálculo utilizado para o layout do BEM versão 3 */
/* Data Atualização : 29/06/2020 */
/* Essa fórmula irá calcular o valor a reduzir de jornada e deverá ser associado a um evento de desconto no pagamento do funcionário.
1 - Será considerado mais de um período de adesão do histórico do BEM dentro da competência
exemplo, uma adesão com percentual de 25% finalizando no mês e uma nova adesão de 50% iniciando no mês
2 - Será considerado os novos campos do Layout do BEM 3 - Adesões com a mesma data de acordo, considerando Dias prorrogação, Data antecipação e Data Cancelamento */
Antes de criar a fórmula, deverá atualizar a consulta SQL BEM incluído os novos campos
select DTACORDOBEM,DURACAOBEM,VALORREDUZIDOBEM,DTCANCELAMENTOBEM,DTANTECIPACAOBEM,DIASPRORROGACAOBEM
from PFHSTBEM
where codcoligada =:FRM_COLIGADA and chapa =:FRM_CHAPA
and TIPOADESAOBEM = '1'
DECL DiasDuracao;
DECL DataFimAcordo;
DECL DataInicioReducao;
DECL DataFimReducao;
DECL ValorReduzido;
DECL DiasReducaoMes;
DECL Valor;
DECL DiasProrrog;
DECL DataCancelamento;
DECL DataAntecipacao;
DECL DataInicioAcordoAnt;
DECL DataInicioAcordo;
SETVAR (DataInicioAcordoAnt,DATANULA);
SE (EXECSQL ('BEM') = Verdade)
ENTAO
REPITA
SETVAR (ValorReduzido,resultsql('BEM','VALORREDUZIDOBEM'));
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'));
SETVAR (DataFimAcordo,(DataInicioAcordo + DiasDuracao)-1) ;
/*Verifica se tem a mesma data de Acordo */
SE (DataInicioAcordo = DataInicioAcordoAnt)
ENTAO
SE (DiasProrrog > 0)
ENTAO
SETVAR (DataInicioAcordo,(DataFimAcordo +1));
SETVAR (DataFimAcordo,((DataFimAcordo + 1) + DiasProrrog));
SENAO
SE (DataCancelamento <> DATANULA)
ENTAO
SETVAR (DataInicioAcordo,(DataFimAcordo +1));
SETVAR (DataFimAcordo,DataCancelamento)
SENAO
SE (DataAntecipacao <> DATANULA)
ENTAO
SETVAR (DataInicioAcordo,(DataFimAcordo +1));
SETVAR (DataFimAcordo,DataAntecipacao)
FIMSE
FIMSE
FIMSE
FIMSE
SETVAR (DataInicioAcordoAnt,DataInicioAcordo);
SE (DataInicioAcordo <= ULTDIAMES(MTDATA(1,MES,ANO)) E DataFimAcordo >= MTDATA(1,MES,ANO) ) ENTAO
SETVAR(DatainicioReducao,DataInicioAcordo);
SETVAR(DataFimReducao,DataFimAcordo);
SE (DataInicioAcordo <= MTDATA(1,MES,ANO)) ENTAO
SETVAR(DatainicioReducao,MTDATA(01,MES,ANO))
FIMSE;
SE (DataFimAcordo > ULTDIAMES(MTDATA(1,MES,ANO))) ENTAO
SETVAR(DataFimReducao,ULTDIAMES(MTDATA(1,MES,ANO)))
FIMSE;
/* calcula dias redução no mes*/
SETVAR(DiasReducaoMes, SUBTRAIDATAS(DataFimReducao,DatainicioReducao)+1);
/* calcula dias redução no mês desconsiderando férias*/
SETVAR(DiasReducaoMes,(DiasReducaoMes - DIAFERPER(DatainicioReducao,DataFimReducao)));
/* calcula dias redução no mês desconsiderando afastamento*/
SETVAR(DiasReducaoMes,(DiasReducaoMes - DIASAFT(DatainicioReducao,DataFimReducao,'PTO')));
SETVAR(ValorReduzido,(ValorReduzido / 30) * MIN(DiasReducaoMes,30));
/* Soma dois períodos de redução no mês */
SETVAR(Valor,Valor + ValorReduzido);
SENAO 0
FIMSE;
ATE ProxRegSQL('BEM' ) = Falso
FIMSE;
Valor;
/* Cálculo utilizado para o Layout do BEM versão 2 */
/* Data Atualização : 15/06/2020 */
/* Essa fórmula irá calcular o valor a reduzir de jornada é deverá ser associado a um evento de desconto no pagamento do funcionário.
Será considerado mais de um período de adesão do histórico do BEM dentro da competência
exemplo, uma adesão com percentual de 25% finalizando no mês e uma nova adesão de 50% iniciando no mês */
DECL DataInicioAcordo;
DECL DataFimAcordo;
DECL DataInicioReducao;
DECL DataFimReducao;
DECL DiasReducao;
DECL ValorReduzido;
DECL DiasReducaoMes;
DECL Valor;
SE (EXECSQL ('BEM') = Verdade)
ENTAO
REPITA
SETVAR (DataInicioAcordo,resultsql('BEM','DTACORDOBEM'));
SETVAR (DataFimAcordo,((resultsql('BEM','DTACORDOBEM')) + (resultsql('BEM','DURACAOBEM'))));
SETVAR (ValorReduzido,resultsql('BEM','VALORREDUZIDOBEM'));
SE (DataInicioAcordo < ULTDIAMES(MTDATA(1,MES,ANO)) E DataFimAcordo >= MTDATA(1,MES,ANO) ) ENTAO
SETVAR(DatainicioReducao,DataInicioAcordo);
SETVAR(DataFimReducao,DataFimAcordo);
SE (DataInicioAcordo < MTDATA(1,MES,ANO)) ENTAO
SETVAR(DatainicioReducao,MTDATA(01,MES,ANO))
FIMSE;
SE (DataFimAcordo > ULTDIAMES(MTDATA(1,MES,ANO))) ENTAO
SETVAR(DataFimReducao,ULTDIAMES(MTDATA(1,MES,ANO)))
FIMSE;
/* calcula dias redução no mes*/
SETVAR(DiasReducaoMes, SUBTRAIDATAS(DataFimReducao,DatainicioReducao));
/* calcula dias redução no mês desconsiderando férias*/
SETVAR(DiasReducaoMes,(DiasReducaoMes - DIAFERPER(DatainicioReducao,DataFimReducao)));
/* calcula dias redução no mês desconsiderando afastamento*/
SETVAR(DiasReducaoMes,(DiasReducaoMes - DIASAFT(DatainicioReducao,DataFimReducao,'PTO')));
SETVAR(ValorReduzido,(ValorReduzido / 30) * MIN(DiasReducaoMes,30));
/* Soma dois períodos de redução no mês */
SETVAR(Valor,Valor + ValorReduzido);
SENAO 0
FIMSE;
ATE ProxRegSQL('BEM' ) = Falso
FIMSE;
Valor;
Antes da criação da fórmula acima deverá criar a consulta SQL código da Consulta = "BEM".
select DTACORDOBEM,DURACAOBEM,VALORREDUZIDOBEM
from PFHSTBEM
where codcoligada =:FRM_COLIGADA and chapa =:FRM_CHAPA
and TIPOADESAOBEM = '1'
|
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas