Conforme a MP 1046, Art. 10, na hipótese de dispensa do empregado, o empregador pagará, juntamente com o pagamento dos haveres rescisórios, os valores ainda não adimplidos relativos às férias.
No TOTVS Folha de Pagamento, quando as férias são finalizadas, o período é fechado e é aberto um novo período aquisitivo. O cálculo das verbas rescisórias verifica somente o período aquisitivo de férias aberto para calcular as férias proporcionais e/ou indenizadas.
Para atender a MP, orientamos fazer o lançamento do evento calculado por fórmula na rescisão se os mesmos forem devidos, usando uma das opções: Entrada de movimento, Grupo de eventos, Código Fixos, Eventos Programados, Incluir no Envelope de Pagamento, Importação de Movimento ou inserir nos Eventos Adicionais no parametrizador.
Considerando o cenário, onde o funcionário teve as férias de 2021 e 2022 concedidas, sem o pagamento de 1/3 de férias e de 1/3 de abono pecuniário.
No período vencido, o funcionário tinha 30 dias de direto, porém vendeu 10 dias. O mesmo foi concedido em Maio/2021 com pagamento em Junho/2021. Os eventos de Base de 1/3 de Férias, Base de abono pecuniário e 1/3 de Abono pecuniário foram lançados no recibo e envelope de pagamento:
Após a finalização das férias concedidas acima foi criado um novo período aquisitivo de férias entre 01/09/2020 a 31/08/2021. Este período foi antecipado concedendo ao empregado 30 dias de férias, na competência de Junho/2021 com pagamento para 07/07/2021 sem o pagamento do 1/3 de férias. Neste caso não teve o pagamento de abono. O Evento de base de 1/3 de férias foi lançado no recibo e envelope:
Ao finalizar as férias concedidas acima, foi criado um novo período aquisitivo de férias: 01/09/2021 a 31/08/2022:
Em Julho/2021 o funcionário foi demitido. O produto não irá calcular nenhuma verba de férias para o funcionário, pois o período aberto inicia em Setembro/2021.
Abaixo exemplificaremos fórmulas para calcular o adicional de férias devido.
Fórmula para adicional de férias antecipado que deve ser pago de forma proporcional
Passo 1: Criar a consulta SQL para retornar os funcionários que tiveram as férias concedidas antecipadas. Nesta consulta é retornado somente os funcionários com o período antecipado e o evento de base de Cálculo que tem o 1/3 de férias lançado, conforme orientado no documento MP 1046 - Adicional de Férias
SELECT FIMPERAQUIS, DATAPAGTO, DATAINICIO, PFUFERIASPER.CHAPA, PFFINANC.CODEVENTO, PFFINANC.VALOR, PFFINANC.DTPAGTO FROM PFUFERIASPER (NOLOCK) JOIN PFFINANC ON PFUFERIASPER.CHAPA = PFFINANC.CHAPA AND PFUFERIASPER.DATAPAGTO = PFFINANC.DTPAGTO WHERE DATAPAGTO < FIMPERAQUIS AND PFFINANC.CODEVENTO = 'B099'
Passo 2: Criar a fórmula abaixo que retorna os dados da consulta SQL criada no passo 1, que é referente ao valor de 1/3 de férias do período antecipado e que a data final do período aquisitivo é maior que a data de demissão:
DECL FIMPERAQUIS1; DECL DATAPGTOFERIAS; DECL DATAINICIOFERIAS; DECL VALOREVENTO; DECL CH; DECL TPDEMISSAO; SETVAR (CH, ''); SETVAR (TPDEMISSAO, TABFUNC('TIPODEMISSAO', '')); SE EXECSQL('DTFIMFERANT_1') = 1; ENTAO REPITA SE RESULTSQL('DTFIMFERANT','CHAPA') = CHAPA ENTAO SETVAR (CH, CHAPA); SETVAR (FIMPERAQUIS1, RESULTSQL('DTFIMFERANT','FIMPERAQUIS')); SETVAR (DATAPGTOFERIAS, RESULTSQL('DTFIMFERANT','DATAPAGTO')); SETVAR (DATAINICIOFERIAS, RESULTSQL('DTFIMFERANT','DATAINICIO')); SETVAR (VALOREVENTO, RESULTSQL('DTFIMFERANT','VALOR')+ VALOREVENTO); FIMSE ATE PROXREGSQL('DTFIMFERANT') = FALSO; FIMSE SE CH <> CHAPA ENTAO 0 SENAO SE TPDEMISSAO = 4 ENTAO 0 SENAO SE FIMPERAQUIS1 > DTD E ( DATAPGTOFERIAS >= MTDATA(27,04,2021) E DATAPGTOFERIAS <= MTDATA(25,08,2021)) ENTAO VALOREVENTO
Executando a fórmula a mesma retornou o valor do evento de Base de Cálculo B099 lançado na Ficha Financeira do pagamento de férias antecipadas:
Passo 3: Criar um evento de provento e associar a fórmula neste provento:
Fórmula para adicional de abono pecuniário antecipado que deve ser pago de forma proporcional
Passo 1: Criar a consulta SQL para retornar o valor do 1/3 abono pecuniário de férias que não foi pago nas férias proporcionais. Nesta consulta é retornado somente os funcionários com o período antecipado e o evento de base de Cálculo que tem o 1/3 abono pecuniário de férias lançado, conforme orientado no documento MP 1046 - Abono Pecuniário
SELECT FIMPERAQUIS, DATAPAGTO, DATAINICIO, PFUFERIASPER.CHAPA, PFFINANC.CODEVENTO, PFFINANC.VALOR, PFFINANC.DTPAGTO FROM PFUFERIASPER (NOLOCK) JOIN PFFINANC ON PFUFERIASPER.CHAPA = PFFINANC.CHAPA AND PFUFERIASPER.DATAPAGTO = PFFINANC.DTPAGTO WHERE DATAPAGTO < FIMPERAQUIS AND PFFINANC.CODEVENTO = 'B199'
Passo 2: Criar a fórmula abaixo que retorna os dados da consulta SQL criada no passo 1, que é referente ao valor de 1/3 de abono pecuniário de férias do período antecipado e que a data final do período aquisitivo é maior que a data de demissão:
DECL FIMPERAQUIS1; DECL DATAPGTOFERIAS; DECL DATAINICIOFERIAS; DECL VALOREVENTO; DECL CH; DECL TPDEMISSAO; SETVAR (CH, ''); SETVAR (TPDEMISSAO, TABFUNC('TIPODEMISSAO', '')); SE EXECSQL('DTFIMFERANT_1') = 1; ENTAO REPITA SE RESULTSQL('DTFIMFERANT_1','CHAPA') = CHAPA ENTAO SETVAR (CH, CHAPA); SETVAR (FIMPERAQUIS1, RESULTSQL('DTFIMFERANT_1','FIMPERAQUIS')); SETVAR (DATAPGTOFERIAS, RESULTSQL('DTFIMFERANT_1','DATAPAGTO')); SETVAR (DATAINICIOFERIAS, RESULTSQL('DTFIMFERANT_1','DATAINICIO')); SETVAR (VALOREVENTO, RESULTSQL('DTFIMFERANT_1','VALOR')+ VALOREVENTO); FIMSE ATE PROXREGSQL('DTFIMFERANT_1') = FALSO; FIMSE SE CH <> CHAPA ENTAO 0 SENAO SE TPDEMISSAO = 4 ENTAO 0 SENAO SE FIMPERAQUIS1 > DTD E ( DATAPGTOFERIAS >= MTDATA(27,04,2021) E DATAPGTOFERIAS <= MTDATA(25,08,2021)) ENTAO VALOREVENTO
Passo 3: Criar um evento de provento e associar a fórmula neste provento:
Fórmula para adicional de abono pecuniário antecipado que deve ser pago de forma proporcional
Passo 1: Criar a consulta SQL para retornar o valor do abono pecuniário de férias que não foi pago nas férias proporcionais. Nesta consulta é retornado somente os funcionários com o período antecipado e o evento de base de Cálculo que tem o abono pecuniário de férias lançado, conforme orientado no documento MP 1046 - Abono Pecuniário
SELECT FIMPERAQUIS, DATAPAGTO, DATAINICIO, PFUFERIASPER.CHAPA, PFFINANC.CODEVENTO, PFFINANC.VALOR, PFFINANC.DTPAGTO FROM PFUFERIASPER (NOLOCK) JOIN PFFINANC ON PFUFERIASPER.CHAPA = PFFINANC.CHAPA AND PFUFERIASPER.DATAPAGTO = PFFINANC.DTPAGTO WHERE DATAPAGTO < FIMPERAQUIS AND PFFINANC.CODEVENTO = 'B198'
Passo 2: Criar a fórmula abaixo que retorna os dados da consulta SQL criada no passo 1, que é referente ao valor de abono pecuniário de férias do período antecipado e que a data final do período aquisitivo é maior que a data de demissão:
DECL FIMPERAQUIS1; DECL DATAPGTOFERIAS; DECL DATAINICIOFERIAS; DECL VALOREVENTO; DECL CH; DECL TPDEMISSAO; SETVAR (CH, ''); SETVAR (TPDEMISSAO, TABFUNC('TIPODEMISSAO', '')); SE EXECSQL('DTFIMFERANT_2') = 1; ENTAO REPITA SE RESULTSQL('DTFIMFERANT_2','CHAPA') = CHAPA ENTAO SETVAR (CH, CHAPA); SETVAR (FIMPERAQUIS1, RESULTSQL('DTFIMFERANT_2','FIMPERAQUIS')); SETVAR (DATAPGTOFERIAS, RESULTSQL('DTFIMFERANT_2','DATAPAGTO')); SETVAR (DATAINICIOFERIAS, RESULTSQL('DTFIMFERANT_2','DATAINICIO')); SETVAR (VALOREVENTO, RESULTSQL('DTFIMFERANT_2','VALOR')+ VALOREVENTO); FIMSE ATE PROXREGSQL('DTFIMFERANT_2') = FALSO; FIMSE SE CH <> CHAPA ENTAO 0 SENAO SE TPDEMISSAO = 4 ENTAO 0 SENAO SE FIMPERAQUIS1 > DTD E ( DATAPGTOFERIAS >= MTDATA(27,04,2021) E DATAPGTOFERIAS <= MTDATA(25,08,2021)) ENTAO VALOREVENTO
Passo 3: Criar um evento de provento e associar a fórmula neste provento:
Fórmula para adicional de férias antecipado que deve ser pago de forma indenizadas
Passo 1: Criar a consulta SQL para retornar os funcionários que tiveram as férias concedidas antecipadas. Nesta consulta é retornado somente os funcionários com o período vencido e o evento de base de Cálculo que tem o ⅓ de férias lançado, conforme orientado no documento MP 1046 - Adicional de Férias
SELECT FIMPERAQUIS, DATAPAGTO, DATAINICIO, PFUFERIASPER.CHAPA, PFFINANC.CODEVENTO, PFFINANC.VALOR, PFFINANC.DTPAGTO FROM PFUFERIASPER (NOLOCK) JOIN PFFINANC ON PFUFERIASPER.CHAPA = PFFINANC.CHAPA AND PFUFERIASPER.DATAPAGTO = PFFINANC.DTPAGTO WHERE DATAPAGTO > FIMPERAQUIS AND PFFINANC.CODEVENTO = 'B099'
Passo 2: Criar a fórmula abaixo que retorna os dados da consulta SQL criada no passo 1, que é referente ao valor de ⅓ de férias do período vencido e que a data final do período aquisitivo é menor que a data de demissão, ultrapassando 2 períodos vencidos:
DECL FIMPERAQUIS1; DECL DATAPGTOFERIAS; DECL DATAINICIOFERIAS; DECL VALOREVENTO; DECL CH; SETVAR (CH, ''); SE EXECSQL('DTFIMPERVENC') = 1; ENTAO REPITA SE RESULTSQL('DTFIMPERVENC','CHAPA') = CHAPA ENTAO SETVAR (CH, CHAPA); SETVAR (FIMPERAQUIS1, RESULTSQL('DTFIMPERVENC','FIMPERAQUIS')); SETVAR (DATAPGTOFERIAS, RESULTSQL('DTFIMPERVENC','DATAPAGTO')); SETVAR (DATAINICIOFERIAS, RESULTSQL('DTFIMPERVENC','DATAINICIO')); SETVAR (VALOREVENTO, RESULTSQL('DTFIMPERVENC','VALOR')+ VALOREVENTO); FIMSE ATE PROXREGSQL('DTFIMPERVENC') = FALSO; FIMSE SE CH <> CHAPA ENTAO 0 SENAO SE (DATAINICIOFERIAS > FIMPERAQUIS1 OU FIMPERAQUIS1 > DTD) E ( DATAPGTOFERIAS >= MTDATA(27,04,2021) E DATAPGTOFERIAS <= MTDATA(25,08,2021)) ENTAO VALOREVENTO
Executando a fórmula a mesma retornou o valor do evento de Base de Cálculo B099 lançado na Ficha Financeira do pagamento de férias Vencidas:
Passo 3: Criar um evento de provento e associar a fórmula neste provento:
Fórmula para adicional de abono pecuniário de férias antecipado que deve ser pago de forma indenizadas
Passo 1: Criar a consulta SQL para retornar os funcionários que tiveram as férias concedidas antecipadas. Nesta consulta é retornado somente os funcionários com o período vencido e o evento de base de Cálculo que tem o 1/3 de abono pecuniário de férias lançado, conforme orientado no documento MP 1046 - Abono Pecuniário
SELECT FIMPERAQUIS, DATAPAGTO, DATAINICIO, PFUFERIASPER.CHAPA, PFFINANC.CODEVENTO, PFFINANC.VALOR, PFFINANC.DTPAGTO FROM PFUFERIASPER (NOLOCK) JOIN PFFINANC ON PFUFERIASPER.CHAPA = PFFINANC.CHAPA AND PFUFERIASPER.DATAPAGTO = PFFINANC.DTPAGTO WHERE DATAPAGTO > FIMPERAQUIS AND PFFINANC.CODEVENTO = 'B199'
Passo 2: Criar a fórmula abaixo que retorna os dados da consulta SQL criada no passo 1, que é referente ao valor de 1/3 de abono pecuniário de férias do período vencido e que a data final do período aquisitivo é menor que a data de demissão, ultrapassando 2 períodos vencidos:
DECL FIMPERAQUIS1; DECL DATAPGTOFERIAS; DECL DATAINICIOFERIAS; DECL VALOREVENTO; DECL CH; SETVAR (CH, ''); SE EXECSQL('DTFIMPERVENC_1') = 1; ENTAO REPITA SE RESULTSQL('DTFIMPERVENC_1','CHAPA') = CHAPA ENTAO SETVAR (CH, CHAPA); SETVAR (FIMPERAQUIS1, RESULTSQL('DTFIMPERVENC_1','FIMPERAQUIS')); SETVAR (DATAPGTOFERIAS, RESULTSQL('DTFIMPERVENC_1','DATAPAGTO')); SETVAR (DATAINICIOFERIAS, RESULTSQL('DTFIMPERVENC_1','DATAINICIO')); SETVAR (VALOREVENTO, RESULTSQL('DTFIMPERVENC_1','VALOR')+ VALOREVENTO); FIMSE ATE PROXREGSQL('DTFIMPERVENC_1') = FALSO; FIMSE SE CH <> CHAPA ENTAO 0 SENAO SE (DATAINICIOFERIAS > FIMPERAQUIS1 OU FIMPERAQUIS1 > DTD) E ( DATAPGTOFERIAS >= MTDATA(27,04,2021) E DATAPGTOFERIAS <= MTDATA(25,08,2021)) ENTAO VALOREVENTO
Passo 3: Criar um evento de provento e associar a fórmula neste provento:
Fórmula para o Abono Pecuniário de férias antecipado que deve ser pago de forma indenizadas
Passo 1: Criar a consulta SQL para retornar os funcionários que tiveram as férias concedidas antecipadas. Nesta consulta é retornado somente os funcionários com o período vencido e o evento de base de Cálculo que tem o ⅓ de férias lançado, conforme orientado no documento MP 1046 - Abono Pecuniário
SELECT FIMPERAQUIS, DATAPAGTO, DATAINICIO, PFUFERIASPER.CHAPA, PFFINANC.CODEVENTO, PFFINANC.VALOR, PFFINANC.DTPAGTO FROM PFUFERIASPER (NOLOCK) JOIN PFFINANC ON PFUFERIASPER.CHAPA = PFFINANC.CHAPA AND PFUFERIASPER.DATAPAGTO = PFFINANC.DTPAGTO WHERE DATAPAGTO > FIMPERAQUIS AND PFFINANC.CODEVENTO = 'B198'
Passo 2: Criar a fórmula abaixo que retorna os dados da consulta SQL criada no passo 1, que é referente ao valor de abono pecuniário de férias do período vencido e que a data final do período aquisitivo é menor que a data de demissão, ultrapassando 2 períodos vencidos:
DECL FIMPERAQUIS1; DECL DATAPGTOFERIAS; DECL DATAINICIOFERIAS; DECL VALOREVENTO; DECL CH; SETVAR (CH, ''); SE EXECSQL('DTFIMPERVENC_2') = 1; ENTAO REPITA SE RESULTSQL('DTFIMPERVENC_2','CHAPA') = CHAPA ENTAO SETVAR (CH, CHAPA); SETVAR (FIMPERAQUIS1, RESULTSQL('DTFIMPERVENC_2','FIMPERAQUIS')); SETVAR (DATAPGTOFERIAS, RESULTSQL('DTFIMPERVENC_2','DATAPAGTO')); SETVAR (DATAINICIOFERIAS, RESULTSQL('DTFIMPERVENC_2','DATAINICIO')); SETVAR (VALOREVENTO, RESULTSQL('DTFIMPERVENC_2','VALOR')+ VALOREVENTO); FIMSE ATE PROXREGSQL('DTFIMPERVENC_2') = FALSO; FIMSE SE CH <> CHAPA ENTAO 0 SENAO SE (DATAINICIOFERIAS > FIMPERAQUIS1 OU FIMPERAQUIS1 > DTD) E ( DATAPGTOFERIAS >= MTDATA(27,04,2021) E DATAPGTOFERIAS <= MTDATA(25,08,2021)) ENTAO VALOREVENTO
Passo 3: Criar um evento de provento e associar a fórmula neste provento:
Calculando rescisão
Funcionário com tipo de demissão 2 - Iniciativa do empregador
Quando executar o cálculo da rescisão inserindo o evento em algumas daquelas entradas sugeridas, os eventos serão lançados conforme o retorno das fórmulas acima:
Funcionário com tipo de demissão 4 - Iniciativa do empregado
Quando executar o cálculo da rescisão inserindo o evento em algumas daquelas entradas sugeridas, o evento de 1/3 de férias proporcionais (referente ao 2º período de gozo exemplificado acima) que era devido, não é lançado. Este tratamento foi feito pois o período aquisitivo ainda não foi adquirido, logo entendemos que conforma a publicação da MP, o mesmo não precisa ser pago: