Versões comparadas

Chave

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

...

Bloco de código
titleFórmula - Valor Reduzido para descontar do Pagamento Mensal - Funcionário Mensalista
 /*FÓRMULA 1 - RECOMENDADA */ 
/* 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 Serámais desconsideradode noum período de reduçãoadesão osdentro dias de fériasda competência
exemplo, afastamentos, admissão,uma demissãoadesão ecom horário.percentual Parade esse25% cenário,finalizando o provento Dias Trabalhados será considerado integral e o evento de desconto “redutorno mês e uma nova adesão de Jornada”50% reduziráiniciando dono saláriomes mensal.*/
Exemplo:
Um salário mensal de 2000.00 com redução da jornada de 25%.
O novo salário deverá ser 1500 e a nova jornada deverá ser 165:00, considerando Uma jornada de 220 horas no mês. No campo Valor a reduzir na aba B.E.M deverá Cadastrar 500.00 nesse exemplo. A mesma é uma sugestão de cálculo e poderá ser usada como modelo pela empresa.
Data Atualização :  12/05/2020 15:55
Utilização a partir dos patches liberados em 16/04/2020 */

DECL DataInicioAcordo;
DECL DataFimAcordo;
DECL DataInicioReducao;
DECL DataFimReducao;
DECL DiasReducao;
DECL ValorReduzido;
DECL DiasReducaoMes;


SETVAR (DataInicioAcordo,TABFUNC('DTACORDOBEM','D'));
SETVAR (DataFimAcordo,(DataInicioAcordo + TABFUNC('DURACAOBEM','I')));
SETVAR (ValorReduzido,TABFUNC ('VALORREDUZIDOBEM', ''));

/*Retona a Data Início da Reducao no mes*/

SE (MESDT(DataInicioAcordo) = MES) E (ANODT(DataInicioAcordo) = ANO)
ENTAO SETVAR(DatainicioReducao,DataInicioAcordo)
SENAO SETVAR(DatainicioReducao,MTDATA(01,MES,ANO))

FIMSE;


/*Retona a Data Fim da Reducao no mes*/

SE (MESDT(DataFimAcordo) = MES  E  ANODT(DataFimAcordo) = ANO)
ENTAO SETVAR(DataFimReducao,DataFimAcordo)
SENAO SETVAR(DataFimReducao,MTDATA(30,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')));

/* calcula “valor” do desconto a reduzir no pagamento*/

SETVAR(ValorReduzido,(ValorReduzido/30) * DiasReducaoMes);

Horista

Bloco de código
titleFórmula - Valor Reduzido para descontar do Pagamento Mensal - Funcionário Horista
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




/*FÓRMULA 2 */ 

 /* 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á desconsiderado no período de redução os dias de férias, afastamentos, admissão, demissão e horário. Para esse cenário, o provento Dias Trabalhados será considerado integral e o evento de desconto “redutor de Jornada” reduzirá do salário mensal.
Exemplo:
Um salário mensal de 2000.00 com redução da jornada de 25%.
O novo salário horadeverá continuaráser o mesmo1500 e a nova jornada deverá ser 165:00, considerando Uma jornada de 220 horas no mês. No campo Valor a reduzir na aba B.E.M deverá Cadastrar 500.00 nesse exemplo. A mesma é uma sugestão de cálculo e poderá ser usada como modelo pela empresa.
Data Atualização :  12/05/2020 15:55
Utilização a partir dos patches liberados em 16/04/2020 */

DECL DataInicioAcordo;
DECL DataFimAcordo;
DECL DataInicioReducao;
DECL DataFimReducao;
DECL DiasReducao;
DECL ValorReduzido;
DECL DiasReducaoMes;


SETVAR (DataInicioAcordo,TABFUNC('DTACORDOBEM','D'));
SETVAR (DataFimAcordo,(DataInicioAcordo + TABFUNC('DURACAOBEM','I')));
SETVAR (ValorReduzido,TABFUNC ('VALORREDUZIDOBEM', ''));

/*Retona a Data Início da Reducao no mes*/

SE (MESDT(DataInicioAcordo) = MES) E (ANODT(DataInicioAcordo) = ANO)
ENTAO SETVAR(DatainicioReducao,DataInicioAcordo)
SENAO SETVAR(DatainicioReducao,MTDATA(01,MES,ANO))

FIMSE;


/*Retona a Data Fim da Reducao no mes*/

SE (MESDT(DataFimAcordo) = MES  E  ANODT(DataFimAcordo) = ANO)
ENTAO SETVAR(DataFimReducao,DataFimAcordo)
SENAO SETVAR(DataFimReducao,MTDATA(30,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')));

/* calcula “valor” do desconto a reduzir no pagamento*/

SETVAR(ValorReduzido,(ValorReduzido/30) * DiasReducaoMes);


Horista

Bloco de código
titleFórmula - Valor Reduzido para descontar do Pagamento Mensal - Funcionário Horista
/* 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á desconsiderado no período de redução os dias de férias, afastamentos, admissão, demissão e horário. Para esse cenário, o provento Dias Trabalhados será considerado integral e o evento de desconto “redutor de Jornada” reduzirá do salário mensal.
Exemplo:
Um salário mensal de 2000.00 com redução da jornada de 25%.
O salário hora continuará o mesmo e a nova jornada deverá ser 165:00, considerando Uma jornada de 220 horas no mês. No campo Valor a reduzir na aba B.E.M não será preenchido conforme orientação para o eSocial. A mesma é uma sugestão de cálculo e poderá ser usada como modelo pela empresa.
Data Atualização :  12/05/2020 15:55
Utilização a partir dos patches liberados em 16/04/2020 */

DECL DataInicioAcordo;
DECL DataFimAcordo;
DECL DataInicioReducao;
DECL DataFimReducao;
DECL DiasReducao;
DECL ValorReduzido;
DECL DiasReducaoMes;

SETVAR (DataInicioAcordo,TABFUNC('DTACORDOBEM','D'));
SETVAR (DataFimAcordo,(DataInicioAcordo + TABFUNC('DURACAOBEM','I')));
SETVAR (ValorReduzido,TABFUNC ('SALARIO', '')* (TABFUNC('PERCENTUALREDUCAOBEM', '')/100));
 não será preenchido conforme orientação para o eSocial. A mesma é uma sugestão de cálculo e poderá ser usada como modelo pela empresa.
Data Atualização :  12/05/2020 15:55
Utilização a partir dos patches liberados em 16/04/2020 */

DECL DataInicioAcordo;
DECL DataFimAcordo;
DECL DataInicioReducao;
DECL DataFimReducao;
DECL DiasReducao;
DECL ValorReduzido;
DECL DiasReducaoMes;

SETVAR (DataInicioAcordo,TABFUNC('DTACORDOBEM','D'));
SETVAR (DataFimAcordo,(DataInicioAcordo + TABFUNC('DURACAOBEM','I')));
SETVAR (ValorReduzido,TABFUNC ('SALARIO', '')* (TABFUNC('PERCENTUALREDUCAOBEM', '')/100));

/*Retona a Data Início da Reducao no mes*/

SE (MESDT(DataInicioAcordo) = MES) E (ANODT(DataInicioAcordo) = ANO)
ENTAO SETVAR(DatainicioReducao,DataInicioAcordo)
SENAO SETVAR(DatainicioReducao,MTDATA(01,MES,ANO))

FIMSE;

/*Retona a Data Fim da Reducao no mes*/

SE (MESDT(DataFimAcordo) = MES  E  ANODT(DataFimAcordo) = ANO)
ENTAO SETVAR(DataFimReducao,DataFimAcordo)
SENAO SETVAR(DataFimReducao,MTDATA(30,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')));

/* calcula “valor” do desconto a reduzir no pagamento*/

SETVAR(ValorReduzido,(ValorReduzido/30) * DiasReducaoMes);


FORMULA CONSIDERANDO 2 PERÍODOS DE REDUÇÃO DENTRO DO MES. 

/* 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 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 mes */

 
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'));


/*Retona a Data Início da Reducao no mes*/

SE (MESDT(DataInicioAcordo) = MES) E (ANODT(DataInicioAcordo) = ANO)
ENTAO SETVAR(DatainicioReducao,DataInicioAcordo)
SENAO SETVAR(DatainicioReducao,MTDATA(01,MES,ANO))
FIMSE;
 
/*Retona a Data FimInício da Reducao no mes*/

SE (MESDT(DataFimAcordoDataInicioAcordo) = MES ) E  (ANODT(DataFimAcordoDataInicioAcordo) = ANO)
ENTAO SETVAR(DataFimReducao,DataFimAcordo)
SENAO SETVAR(DataFimReducao,MTDATA(30,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')));
 
ENTAO SETVAR(DatainicioReducao,DataInicioAcordo)
SENAO SETVAR(DatainicioReducao,MTDATA(01,MES,ANO))

FIMSE;

/*Retona a Data Fim da Reducao no mes*/

SE (MESDT(DataFimAcordo) = MES  E  ANODT(DataFimAcordo) = ANO)
ENTAO SETVAR(DataFimReducao,DataFimAcordo)
SENAO SETVAR(DataFimReducao,MTDATA(30,MES,ANO))

FIMSE;

/* calcula “valor” do desconto a reduzirdias redução no pagamentomes*/

SETVAR(ValorReduzidoDiasReducaoMes,(ValorReduzido/30) * DiasReducaoMes SUBTRAIDATAS(DataFimReducao,DatainicioReducao) +1);

/* Soma dois períodos decalcula dias redução no mês desconsiderando férias*/

SETVAR(Valor,Valor + ValorReduzido);

ATE ProxRegSQL('BEM' ) = Falso
FIMSE;
Valor;


CONSULTA SQL 

Criar a consulta SQL antes da criação da fórmula acima.

select DTACORDOBEM,DURACAOBEM,VALORREDUZIDOBEM
from PFHSTBEM
where codcoligada =:FRM_COLIGADA and chapa =:FRM_CHAPA
and TIPOADESAOBEM = 1DiasReducaoMes,(DiasReducaoMes  -  DIAFERPER(DatainicioReducao,DataFimReducao)));

/* calcula dias redução no mês desconsiderando afastamento*/

SETVAR(DiasReducaoMes,(DiasReducaoMes  -  DIASAFT(DatainicioReducao,DataFimReducao,'PTO')));

/* calcula “valor” do desconto a reduzir no pagamento*/

SETVAR(ValorReduzido,(ValorReduzido/30) * DiasReducaoMes);






Fórmula associada ao evento que será lançado no movimento do Funcionário.

...