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: INDICE | ORDEM | CHAVE | DESCRICAO | PROPRI | F3 | NICKNAME | SHOWPES | IX_VIRTUAL | IX_VIRCUST |
---|
RU1 | 1 | RU1_FILIAL+RU1_MAT+RU1_TPVALE+RU1_CODIGO+RU1_NROPED+DTOS(RU1_DATA) | Matricula + Tipo Vale + Código + Nro pedido + Data | S |
|
| S | 2 | 3 | RU1 | 2 | RU1_FILIAL+RU1_MAT+RU1_TPVALE+RU1_PERIOD | Matricula + Tipo Vale + Código + Cód. Per. | S |
|
| S | 2 | 3 | RU3 | 1 | RU3_FILIAL+RU3_MAT+RU3_TPVALE+RU3_CODIGO+RU3_NROPED+DTOS(RU3_DATA) | Matricula + Tipo Vale + Código + Nro pedido + Data | S |
|
| S | 2 | 3 | RU3 | 2 | RU3_FILIAL+RU3_MAT+RU3_TPVALE+RU3_PERIOD | Matricula + Tipo Vale + Código + Cód. Per. | S |
|
| S | 2 | 3 |
Foi efetuado a criação de perguntas no dicionário SX1, conforme estrutura abaixo: X1_GRUPO | X1_ORDEM | X1_PERGUNT | X1_TIPO | X1_TAMANHO | X1_GSC | X1_PRESEL | X1_VAR01 | X1_DEF01 | X1_DEF02 | X1_HELP |
---|
GP021VAL | 08 | Complemento por H.E. ? | N | 1 | C | 2 | MV_PAR08 | Sim | Nã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. | GP021VRF | 08 | Complemento por H.E. ? | N | 1 | C | 2 | MV_PAR08 | Sim | Nã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. | GP021VTR | 12 | Complemento por H.E. ? | N | 1 | C | 2 | MV_PAR12 | Sim | Nã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. |
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 |
| E | E | E | RU1_FILIAL+RU1_MAT+RU1_TPVALE+RU1_CODIGO+RU1_NROPED+DTOS(RU1_DATA) | 7 | RU3 |
| Histórico Detalhe Benefícios |
| E | E | E | RU3_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_ARQUIVO | X3_ORDEM | X3_CAMPO | X3_TIPO | X3_TAMANHO | X3_DECIMAL | X3_TITULO | X3_DESCRIC | X3_VALID | X3_BROWSE | X3_VISUAL | X3_CONTEXT | X3_CBOX | HELP |
---|
RU1 | 01 | RU1_FILIAL | C | 2 | 0 | Filial | Filial |
| S | V | R |
| Código da filial | RU1 | 02 | RU1_MAT | C | 6 | 0 | Matricula | Numero da Matricula |
| S | V | R |
| Número da Matricula | RU1 | 03 | RU1_TPVALE | C | 1 | 0 | Tipo Vale | Tipo de Vale | Pertence('012') | S | V | R | 0=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 | RU1 | 04 | RU1_TPBEN | C | 2 | 0 | Tipo Benef. | Tipo do benefício |
| S | V | R |
| Tipo do benefício, relacionado com a tabela auxiliar S011. | RU1 | 05 | RU1_CODIGO | C | 3 | 0 | Código | Código do Beneficio | NaoVazio() .And. Gp131AltVT() | S | V | R | #CodigoBenef() | Código do benefício | RU1 | 06 | RU1_CC | C | 9 | 0 | Centro Custo | Codigo Centro de Custo |
| S | V | R |
| Código do centro de custo | RU1 | 07 | RU1_DATA | D | 8 | 0 | Data | Data |
| S | V | R |
| Data do benefício | RU1 | 08 | RU1_TPDIA | C | 1 | 0 | Tipo Dia | Tipo do Dia | Pertence("SCDNF") | S | V | R | #PonRetOpcBox(1) | Tipo Dia | RU1 | 09 | RU1_VALDIA | N | 6 | 2 | Valor Dia | Valor do dia | Positivo() | S | V | R |
| Valor calculado para o benefício no dia. | RU1 | 10 | RU1_QTDDIA | N | 2 | 0 | Qtde Dia | Quantidade de vales dia | Positivo() | S | V | R |
| Quantidade de vales calculada no dia | RU1 | 11 | RU1_PERIOD | C | 6 | 0 | Cód. Per. | Código do período |
| S | V | R |
| Código do período do cálculo do benefício. | RU1 | 12 | RU1_NROPGT | C | 2 | 0 | Nro pagto | Número de pagamento |
| S | V | R |
| Número do pagamento | RU1 | 13 | RU1_ROTEIR | C | 3 | 0 | Roteiro | Roteiro de cálculo |
| S | V | R |
| Roteiro de cálculo do benefício. | RU1 | 14 | RU1_PEDIDO | C | 1 | 0 | Ped. Compra | Pedido de compra | Pertence("12") | S | V | R | 1=Em aberto;2=Concluído | Neste campo é apresentado o status do pedido de compra do benefício: 1=Em aberto; 2=Concluído. | RU1 | 15 | RU1_NROPED | C | 10 | 0 | Nro pedido | Número do pedido |
| S | V | R |
| Número de pedido do benefício, gerado automaticamente pelo sistema. | RU1 | 16 | RU1_CODCCT | C | 8 | 0 | Cód. CCT |
| Código CCT | S | V | R |
| Código da Convenção Coletiva de Trabalho associada ao sindicato do funcionário | RU3 | 01 | RU3_FILIAL | C | 2 | 0 | Filial | Filial |
| S | V | R |
| Código da filial | RU3 | 02 | RU3_MAT | C | 6 | 0 | Matricula | Numero da Matricula |
| S | V | R |
| Número da Matricula | RU3 | 03 | RU3_TPVALE | C | 1 | 0 | Tipo Vale | Tipo de Vale | Pertence('012') | S | V | R | 0=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 | RU3 | 04 | RU3_TPBEN | C | 2 | 0 | Tipo Benef. | Tipo do benefício |
| S | V | R |
| Tipo do benefício, relacionado com a tabela auxiliar S011. | RU3 | 05 | RU3_CODIGO | C | 3 | 0 | Código | Código do Beneficio | NaoVazio() .And. Gp131AltVT() | S | V | R | #CodigoBenef() | Código do benefício | RU3 | 06 | RU3_CC | C | 9 | 0 | Centro Custo | Codigo Centro de Custo |
| S | V | R |
| Código do centro de custo | RU3 | 07 | RU3_DATA | D | 8 | 0 | Data | Data |
| S | V | R |
| Data do benefício | RU3 | 08 | RU3_TPDIA | C | 1 | 0 | Tipo Dia | Tipo do Dia | Pertence("SCDNF") | S | V | R | #PonRetOpcBox(1) | Tipo Dia | RU3 | 09 | RU3_VALDIA | N | 6 | 2 | Valor Dia | Valor do dia | Positivo() | S | V | R |
| Valor calculado para o benefício no dia. | RU3 | 10 | RU3_QTDDIA | N | 2 | 0 | Qtde Dia | Quantidade de vales dia | Positivo() | S | V | R |
| Quantidade de vales calculada no dia | RU3 | 11 | RU3_PERIOD | C | 6 | 0 | Cód. Per. | Código do período |
| S | V | R |
| Código do período do cálculo do benefício. | RU3 | 12 | RU3_NROPGT | C | 2 | 0 | Nro pagto | Número de pagamento |
| S | V | R |
| Número do pagamento | RU3 | 13 | RU3_ROTEIR | C | 3 | 0 | Roteiro | Roteiro de cálculo |
| S | V | R |
| Roteiro de cálculo do benefício. | RU3 | 14 | RU3_PEDIDO | C | 1 | 0 | Ped. Compra | Pedido de compra | Pertence("12") | S | V | R | 1=Em aberto;2=Concluído | Neste campo é apresentado o status do pedido de compra do benefício: 1=Em aberto; 2=Concluído. | RU3 | 15 | RU3_NROPED | C | 10 | 0 | Nro pedido | Número do pedido |
| S | V | R |
| Número de pedido do benefício, gerado automaticamente pelo sistema. | RU3 | 16 | RU3_CODCCT | C | 8 | 0 | Cód. CCT | Código CCT |
| S | V | R |
| 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_DOM | X9_CDOM | X9_EXPDOM | X9_EXPCDOM | X9_LIGDOM | X9_LIGCDOM | X9_CONDSQL | X9_USEFIL | X9_VINFIL | X9_CHVFOR |
---|
CTT | RU1 | CTT_CUSTO | RU1_CC | 1 | N |
| S | 2 | 2 | RFO | RU1 | RFO_TPVALE+RFO_CODIGO | RU1_TPVALE+RU1_CODIGO | 1 | N | #RU1_TPVALE<>'0' | S | 2 | 2 | SR0 | RU1 | R0_MAT+R0_TPVALE+R0_CODIGO+R0_NROPED | RU1_MAT+RU1_TPVALE+RU1_CODIGO+RU1_NROPED | 1 | N |
| S | 1 | 2 | SRA | RU1 | RA_MAT | RU1_MAT | 1 | N |
| S | 1 | 2 | SRN | RU1 | RN_COD | RU1_CODIGO | 1 | N | #RU1_TPVALE='0' | S | 2 | 2 | SWY | RU1 | WY_CODIGO | RU1_CODCCT | 1 | N |
| S | 2 | 2 | CTT | RU3 | CTT_CUSTO | RU3_CC | 1 | N |
| S | 2 | 2 | RFO | RU3 | RFO_TPVALE+RFO_CODIGO | RU3_TPVALE+RU4_CODIGO | 1 | N | #RU3_TPVALE<>'0' | S | 2 | 2 | RG2 | RU3 | R0_MAT+R0_TPVALE+R0_CODIGO+R0_NROPED | RU3_MAT+RU3_TPVALE+RU3_CODIGO+RU3_NROPED | 1 | N |
| S | 1 | 2 | SRA | RU3 | RA_MAT | RU3_MAT | 1 | N |
| S | 1 | 2 | SRN | RU3 | RN_COD | RU3_CODIGO | 1 | N | #RU3_TPVALE='0' | S | 2 | 2 | SWY | RU3 | WY_CODIGO | RU3_CODCCT | 1 | N |
| S | 2 | 2 |
Foi efetuado a criação de consultas padrão no dicionário SXB, conforme estrutura abaixo: XB_ALIAS | XB_TIPO | XB_SEQ | XB_COLUNA | XB_DESCRI | XB_CONTEM |
---|
S151CB | 1 | 01 | RE | Código do Benefício |
| S151CB | 2 | 01 | 01 |
| GPS151CB() | S151CB | 5 | 01 |
|
| VAR_IXB | S151TB | 1 | 01 | RE | Tipo do Benefício |
| S151TB | 2 | 01 | 01 |
| GPS151TB() | S151TB | 5 | 01 |
|
| VAR_IXB | S151TD | 1 | 01 | RE | Tipo do Dia |
| S151TD | 2 | 01 | 01 |
| GPS151TD() | S151TD | 5 | 01 |
|
| VAR_IXB |
Foi efetuado a alteração da consulta padrão SWY no dicionário SXB, conforme estrutura abaixo: XB_ALIAS | Valor antigo XB_CONTEM | Valor novo XB_CONTEM |
---|
SWY | WY_CODIGO | SWY->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:
Campo | Conteúdo |
---|
RU1_FILIAL | R0_FILIAL |
RU1_MAT | R0_MAT |
RU1_TPVALE | R0_TPVALE |
RU1_TPBEN | R0_TPBEN |
RU1_CODIGO | R0_CODIGO |
RU1_CC | R0_CC |
RU1_DATA | Data |
RU1_TPDIA | Tipo do dia (S=Trabalhado;C=Compensado;D=D.S.R.;N=Não Trabalhado;F=Feriado). |
RU1_VALDIA | Valor calculado para o dia, conforme custo unitário (gravado em R0_VLRVALE) e a quantidade de vales para o dia |
RU1_QTDDIA | Quantidade de vales calculadas para o dia |
RU1_PERIOD | R0_PERIOD |
RU1_NROPGT | R0_NROPGT |
RU1_ROTEIR | R0_ROTEIR |
RU1_PEDIDO | R0_PEDIDO |
RU1_NROPED | R0_NROPED |
RU1_CODCCT | R0_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: Campo | Observaçã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>
|