01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:SIGAGPE
Função:

GPEM020

GPEXCBEN

GPEXFVAL

GPMNEBRA

GPTABBRA

Ticket:


Requisito/Story/Issue (informe o requisito relacionado) :

DRHCALCPRT-8070

DRHCALCPRT-9677

DRHCALCPRT-9682

DRHCALCPRT-9683


02. SITUAÇÃO/REQUISITO

Implementar a possibilidade de efetuar cálculo complementar de benefícios (VA, VR e VT) por ocasião de hora extra realizada no SIGAPON, conforme demanda apresentada na central colaborativa: https://centraldeatendimento.totvs.com/hc/pt-br/community/posts/6622925792151-TOTVS-RH-Linha-Protheus-Folha-de-Pagamento-Benef%C3%ADcios-Gera%C3%A7%C3%A3o-Cesta-B%C3%A1sica.

Também deve-se implementar a gravação analítica dos dias considerados para o cálculo do benefício.

03. SOLUÇÃO

FUNCIONALIDADE EM DESENVOLVIMENTO.


Implementada possibilidade de efetuar cálculo complementar de benefícios (VA, VR e VT) por ocasião de hora extra realizada no SIGAPON, além de efetuar gravação analítica do cálculo realizado.

A melhoria depende da aplicação da atualização liberada no pacote de expedição do módulo RH a partir de XX/XX/2023 e da execução do UPDDISTR com o dicionário diferencial para os releases iguais ou superiores à versão 12.1.33.


Clique aqui para exibir ou esconder as alterações de dicionário.


Foi efetuado a criação de índices no dicionário SIX, conforme estrutura abaixo:

INDICEORDEMCHAVEDESCRICAOPROPRIF3NICKNAMESHOWPESIX_VIRTUALIX_VIRCUST
RU11RU1_FILIAL+RU1_MAT+RU1_TPVALE+RU1_CODIGO+RU1_NROPED+DTOS(RU1_DATA)Matricula + Tipo Vale + Código + Nro pedido + DataS

S23
RU12RU1_FILIAL+RU1_MAT+RU1_TPVALE+RU1_PERIODMatricula + Tipo Vale + Código + Cód. Per.S

S23
RU31RU3_FILIAL+RU3_MAT+RU3_TPVALE+RU3_CODIGO+RU3_NROPED+DTOS(RU3_DATA)Matricula + Tipo Vale + Código + Nro pedido + DataS

S23
RU32RU3_FILIAL+RU3_MAT+RU3_TPVALE+RU3_PERIODMatricula + Tipo Vale + Código + Cód. Per.S

S23


Foi efetuado a criação de perguntas no dicionário SX1, conforme estrutura abaixo:

X1_GRUPOX1_ORDEMX1_PERGUNTX1_TIPOX1_TAMANHOX1_GSCX1_PRESELX1_VAR01X1_DEF01X1_DEF02X1_HELP
GP021VAL08Complemento por H.E. ?N1C2MV_PAR08SimNão

Informe se deseja efetuar o cálculo do complemento do benefício devido hora extra realizada no SIGAPON e conforme configuração da tabela auxiliar S151.

GP021VRF08Complemento por H.E. ?N1C2MV_PAR08SimNão

Informe se deseja efetuar o cálculo do complemento do benefício devido hora extra realizada no SIGAPON e conforme configuração da tabela auxiliar S151.

GP021VTR12Complemento por H.E. ?N1C2MV_PAR12SimNãoInforme se deseja efetuar o cálculo do complemento do benefício devido hora extra realizada no SIGAPON e conforme configuração da tabela auxiliar S151.


Foi efetuado a criação de tabelas no dicionário SX2, conforme estrutura abaixo:

X2_CHAVE

X2_PATH

X2_NOME

X2_ROTINA

X2_MODO

X2_MODOUN

X2_MODOEMP

X2_UNICO

X2_MODULO

RU1
Detalhamento de Benefícios 
EEERU1_FILIAL+RU1_MAT+RU1_TPVALE+RU1_CODIGO+RU1_NROPED+DTOS(RU1_DATA)7
RU3
Histórico Detalhe Benefícios
EEERU3_FILIAL+RU3_MAT+RU3_TPVALE+RU3_CODIGO+RU3_NROPED+DTOS(RU3_DATA)7


Foi efetuado a criação de campos no dicionário SX3, conforme estrutura abaixo:

X3_ARQUIVOX3_ORDEMX3_CAMPOX3_TIPOX3_TAMANHOX3_DECIMALX3_TITULOX3_DESCRICX3_VALIDX3_BROWSEX3_VISUALX3_CONTEXTX3_CBOXHELP
RU101RU1_FILIALC20FilialFilial
SVR

Código da filial

RU102RU1_MATC60MatriculaNumero da Matricula
SVR

Número da Matricula

RU103RU1_TPVALEC10Tipo ValeTipo de ValePertence('012')SVR0=Vale Transporte;1=Vale Refeição;2=Vale Alimentação

Selecione o tipo de beneficio: 

0 = Vale Transporte

1 = Vale Refeição

2 = Vale Alimentação

RU104RU1_TPBENC20Tipo Benef.Tipo do benefício
SVR

Tipo do benefício, relacionado com a tabela auxiliar S011.

RU105RU1_CODIGOC30CódigoCódigo do BeneficioNaoVazio() .And. Gp131AltVT()SVR#CodigoBenef()

Código do benefício

RU106RU1_CCC90Centro CustoCodigo Centro de Custo
SVR

Código do centro de custo

RU107RU1_DATAD80DataData
SVR

Data do benefício

RU108RU1_TPDIAC10Tipo DiaTipo do DiaPertence("SCDNF")SVR#PonRetOpcBox(1)

Tipo Dia

RU109RU1_VALDIAN62Valor DiaValor do diaPositivo()SVR

Valor calculado para o benefício no dia.

RU110RU1_QTDDIAN20Qtde DiaQuantidade de vales diaPositivo()SVR

Quantidade de vales calculada no dia

RU111RU1_PERIODC60Cód. Per.Código do período
SVR

Código do período do cálculo do benefício.

RU112RU1_NROPGTC20Nro pagtoNúmero de pagamento
SVR

Número do pagamento

RU113RU1_ROTEIRC30RoteiroRoteiro de cálculo
SVR

Roteiro de cálculo do benefício.

RU114RU1_PEDIDOC10Ped. CompraPedido de compraPertence("12")SVR1=Em aberto;2=Concluído

Neste campo é apresentado o status do

pedido de compra do benefício:

1=Em aberto;

2=Concluído.

RU115RU1_NROPEDC100Nro pedidoNúmero do pedido
SVR

Número de pedido do benefício, gerado

automaticamente pelo sistema.

RU116RU1_CODCCTC80Cód. CCT
Código CCTSVR

Código da Convenção Coletiva de Trabalho

associada ao sindicato do funcionário

RU301RU3_FILIALC20FilialFilial
SVR

Código da filial

RU302RU3_MATC60MatriculaNumero da Matricula
SVR

Número da Matricula

RU303RU3_TPVALEC10Tipo ValeTipo de ValePertence('012')SVR0=Vale Transporte;1=Vale Refeição;2=Vale Alimentação

Selecione o tipo de beneficio: 

0 = Vale Transporte

1 = Vale Refeição

2 = Vale Alimentação

RU304RU3_TPBENC20Tipo Benef.Tipo do benefício
SVR
Tipo do benefício, relacionado com a tabela auxiliar S011.
RU305RU3_CODIGOC30CódigoCódigo do BeneficioNaoVazio() .And. Gp131AltVT()SVR#CodigoBenef()

Código do benefício

RU306RU3_CCC90Centro CustoCodigo Centro de Custo
SVR

Código do centro de custo

RU307RU3_DATAD80DataData
SVR

Data do benefício

RU308RU3_TPDIAC10Tipo DiaTipo do DiaPertence("SCDNF")SVR#PonRetOpcBox(1)

Tipo Dia

RU309RU3_VALDIAN62Valor DiaValor do diaPositivo()SVR

Valor calculado para o benefício no dia.

RU310RU3_QTDDIAN20Qtde DiaQuantidade de vales diaPositivo()SVR

Quantidade de vales calculada no dia

RU311RU3_PERIODC60Cód. Per.Código do período
SVR
Código do período do cálculo do benefício.
RU312RU3_NROPGTC20Nro pagtoNúmero de pagamento
SVR

Número do pagamento

RU313RU3_ROTEIRC30RoteiroRoteiro de cálculo
SVR
Roteiro de cálculo do benefício.
RU314RU3_PEDIDOC10Ped. CompraPedido de compraPertence("12")SVR1=Em aberto;2=Concluído

Neste campo é apresentado o status do

pedido de compra do benefício:

1=Em aberto;

2=Concluído.

RU315RU3_NROPEDC100Nro pedidoNúmero do pedido
SVR

Número de pedido do benefício, gerado

automaticamente pelo sistema.

RU316RU3_CODCCTC80Cód. CCTCódigo CCT
SVR

Código da Convenção Coletiva de Trabalho

associada ao sindicato do funcionário.


Foi efetuado a criação de relacionamentos no dicionário SX9, conforme estrutura abaixo:

X9_DOMX9_CDOMX9_EXPDOMX9_EXPCDOMX9_LIGDOMX9_LIGCDOMX9_CONDSQLX9_USEFILX9_VINFILX9_CHVFOR
CTTRU1CTT_CUSTORU1_CC1N
S22
RFORU1RFO_TPVALE+RFO_CODIGORU1_TPVALE+RU1_CODIGO1N#RU1_TPVALE<>'0'S22
SR0RU1R0_MAT+R0_TPVALE+R0_CODIGO+R0_NROPEDRU1_MAT+RU1_TPVALE+RU1_CODIGO+RU1_NROPED1N
S12
SRARU1RA_MATRU1_MAT1N
S12
SRNRU1RN_CODRU1_CODIGO1N#RU1_TPVALE='0'S22
SWYRU1WY_CODIGORU1_CODCCT1N
S22
CTTRU3CTT_CUSTORU3_CC1N
S22
RFORU3RFO_TPVALE+RFO_CODIGORU3_TPVALE+RU4_CODIGO1N#RU3_TPVALE<>'0'S22
RG2RU3R0_MAT+R0_TPVALE+R0_CODIGO+R0_NROPEDRU3_MAT+RU3_TPVALE+RU3_CODIGO+RU3_NROPED1N
S12
SRARU3RA_MATRU3_MAT1N
S12
SRNRU3RN_CODRU3_CODIGO1N#RU3_TPVALE='0'S22
SWYRU3WY_CODIGORU3_CODCCT1N
S22


Foi efetuado a criação de consultas padrão no dicionário SXB, conforme estrutura abaixo:

XB_ALIASXB_TIPOXB_SEQXB_COLUNAXB_DESCRIXB_CONTEM
S151CB101RECódigo do Benefício
S151CB20101
GPS151CB()
S151CB501

VAR_IXB
S151TB101RETipo do Benefício
S151TB20101
GPS151TB()
S151TB501

VAR_IXB
S151TD101RETipo do Dia
S151TD20101
GPS151TD()
S151TD501

VAR_IXB


Foi efetuado a alteração da consulta padrão SWY no dicionário SXB, conforme estrutura abaixo:

XB_ALIASValor antigo XB_CONTEM Valor novo XB_CONTEM 
SWYWY_CODIGOSWY->WY_CODIGO


Ao efetuar o cálculo de benefícios (VA, VR e VT), será efetuado gravação analítica dos dias que foram considerados para o cálculo, incluindo a quantidade de vales calculadas para o dia, conforme tabela abaixo:

CampoConteúdo
RU1_FILIALR0_FILIAL
RU1_MATR0_MAT
RU1_TPVALER0_TPVALE
RU1_TPBENR0_TPBEN
RU1_CODIGOR0_CODIGO
RU1_CCR0_CC
RU1_DATAData
RU1_TPDIATipo do dia (S=Trabalhado;C=Compensado;D=D.S.R.;N=Não Trabalhado;F=Feriado).
RU1_VALDIAValor calculado para o dia, conforme custo unitário (gravado em R0_VLRVALE) e a quantidade de vales para o dia
RU1_QTDDIAQuantidade de vales calculadas para o dia
RU1_PERIODR0_PERIOD
RU1_NROPGTR0_NROPGT
RU1_ROTEIRR0_ROTEIR
RU1_PEDIDOR0_PEDIDO
RU1_NROPEDR0_NROPED
RU1_CODCCTR0_CODCCT


Para o cálculo do complemento de benefícios (VA, VR e VT) por ocasião de hora extra realizada no SIGAPON, deve-se efetuar previamente a configuração da quantidade mínima de horas extras na tabela auxiliar S151 (complemento de benefícios):


Observação para o preenchimento de cada campo:

CampoObservação
Filial

Código da filial.

Preenchimento não é obrigatório.

Cód. da CCT

Código da CCT.

Preenchimento não é obrigatório.

Cód. do Sindicato

Código do sindicato.

Preenchimento não é obrigatório.

Tipo do Benefício

Tipo do benefício (0=Vale Transporte;1=Vale Refeição;2=Vale Alimentação).

Preenchimento é obrigatório.

Código do Benefício

Código do benefício.

Preenchimento não é obrigatório.

Tipo do Dia

Tipo do dia (S=Trabalhado;C=Compensado;D=D.S.R.;N=Não Trabalhado;F=Feriado).

Preenchimento é obrigatório.

Qtde. Min H.E.

Quantidade mínima de horas extras para ter direito ao complemento no dia.

Preenchimento é obrigatório.


Note que os campos "Filial", "Cód. da CCT", "Cód. do Sindicato" e "Código do Benefício" não possuem preenchimento obrigatório, isto é, no caso de não estarem preenchidos serão válidos para mais de uma filial, para mais de uma CCT, para mais de um sindicato e/ou para mais de um benefício.

Esta implementação é válida tanto para clientes que possuem a parametrização para o cálculo de benefícios verificar a escala de horário do Ponto (parâmetro MV_USACPER com .F.) quanto para os clientes que não verificam a escala de horário do Ponto. Mas no caso de não considerar a escala de horário do Ponto, ou seja, quando considera o período da Folha, deve-se atentar que existirá um "De x Para" entre o tipo do dia do período e o tipo do dia da tabela S151:

Tipo do Dia (Folha)Tipo do Dia (S151)
1 (Trabalhado)S (Trabalhado)
3 (DSR)D (D.S.R.)
2 (Nao trabalhado)N (Não Trabalhado)
4 (Feriado)F (Feriado)


Deve-se efetuar a conclusão do cálculo de benefícios realizado anteriormente, isto é, o campo "Ped. Compra" (R0_PEDIDO) deve estar preenchido com o conteúdo "2" (Concluído) para que seja gerado um novo cálculo sem sobrescrever o anterior:

i


Ao iniciar o cálculo do benefício, a pergunta "Complementar por H.E." deverá estar configurada com "Sim" para que o sistema efetue a validação das horas extras realizadas no SIGAPON e gere o complemento para os dias que tiverem horas extras acima da quantidade mínima de horas extras configurada na tabela auxiliar S151:



O cálculo do complemento do benefício NÃO será realizado caso a quantidade de dias do benefício seja preenchido manualmente no campo "D.Prop.Inf." (M7_DPROPIN), ou se houver configuração para o cálculo com quantidade de vales fixa ou se nas perguntas de cálculo estiver com a pergunta "Calcular periódico" configurada com "Sim", ou se há parametrização para a gravação sintética do período e não é considerado a escala de horário do Ponto, uma vez que o cálculo do complemento irá realizar a apuração analítica das horas extras por dia e não irá calcular um valor fixo de vales.

Cada vale do complemento utilizará o valor unitário configurado no campo "Valor Unit." (RN_VUNIATU), no caso de vale transporte, e "Valor" (RFO_VALOR), no caso de vale alimentação e vale refeição, ou seja, o valor do vale de complemento por hora extra terá o mesmo valor do vale recebido no cálculo comum.

O sistema irá efetuar busca nas tabelas de apontamento (SPC e SPH) do SIGAPON pelos apontamentos realizados nas datas compreendidas entre a data de início e de fim do período do roteiro que será calculado, cujos eventos no Ponto estejam classificados como hora extra, isto é, cujo campo "Classific." (P9_CLASEV) estejam configurados com "01" (Hora Extra). Em seguida, o sistema irá verificar se a quantidade de horas extras realizadas no dia são superiores a quantidade mínima configurada para o tipo do dia (trabalhado, não trabalhado, etc..) em questão. Caso seja superior, será gerado complemento para o dia em questão com a mesma quantidade de vales que seriam calculados para o respectivo tipo do dia: no caso de não se verificar a escala do Ponto ou quando é verificado a escala do ponto mas não é preenchido a quantidade de vales para cada dia da semana, será utilizado a quantidade de vales configurada no campo "Qt.Vale DUt." (R0_QDIAINF) para os dias trabalhados e no campo "Qt.Vale NUt." (R0_QDNUTIL) para os dias não trabalhados, cpmensado, feriados e D.S.R., mas na situação desse campo não estar preenchido será utilizado a quantidade de vales configurada no campo "Qt.Vale DUt." (R0_QDIAINF); quando é verificado a escala do Ponto e é preenchido a quantidade de vales para cada dia da semana, será utilizado a quantidade definida de acordo com o dia da semana, por exemplo, em uma segunda-feira será utilizado a quantidade de vales definida no campo "Qt. Vale Seg" (R0_QVALSEG), mas na situação de ser realizada hora extra em um sábado ou domingo e não haver preenchimento da quantidade nos campos "Qt. Vale Sáb" (R0_QVALSAB) e "Qt.Vale Dom" (R0_QVALDOM), será utilizada a quantidade de vales configurada no campo "Qt.Vale NUt." (R0_QDNUTIL), e caso este também não esteja preenchido, será utilizado a quantidade de vales configurada no campo "Qt.Vale DUt." (R0_QDIAINF).


04. DEMAIS INFORMAÇÕES

Atualizador de dicionário e base de dados - UPDDISTR.


05. ASSUNTOS RELACIONADOS

Atualização e Cálculo de Benefícios - VT, VR e VA.

TSJTNY_DT_Verificação_Escala_Horário_Ponto_Cálculo_Benefícios.




<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>