Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

RH - Linha Protheus - MEU RH - É possível limitar a quantidade de Demonstrativos de Pagamento (recibos/holerites)

time.png Tempo aproximado para leitura: 00:01:00 min

Dúvida

É possível limitar a quantidade de Demonstrativos de Pagamento exibidos para o usuário?

Ambiente
TOTVS RH (Linha Protheus) - Meu RH – todas as versões

Solução
No padrão Não é possível limitar a quantidade através do MEU RH, será apresentado todos demonstrativos de pagamento utilizando a opção "Ver mais períodos".
mceclip0.png
Nesse caso, sugerimos que registre um pedido de melhoria ou vote em alguma das existentes em nossa Central Colaborativa TOTVS

Porem, existe um ponto de entrada LIBRECPAG onde pode ser desenvolvido essa opção.

Saiba Mais
CLIQUE AQUI para acessar mais artigos e FAQs sobre o MEU RH
CLIQUE AQUI para acessar a documentação de referências sobre o MEU RH

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

11 Comentários

  • Avatar
    IGOR JOSE DE OLIVEIRA COSTA

    Estamos usando o ponto de entrada LIBRECPAG() para controlar a quantidade de recibos a serem exibidos

    0
    Ações de comentário Permalink
  • Avatar
    IGOR JOSE DE OLIVEIRA COSTA

    Esse foi o material que nos foi passado na ocasião.

    Estamos limitando a quantidade de recibos e com quantos dias de antecedencia será exibido o envelope por esse PE, visto que o Protheus não estava respeitando o parâmetro de dias de antecedencia também.

     

    https://tdn.totvs.com/display/public/PROT/2500231+DRHGCH-405+DT+Demonstrativo+de+pagamento+ponto+de+entrada

    0
    Ações de comentário Permalink
  • Avatar
    Wellington de Paula

    Bom dia, estou tentando realizar este ponto de entrada, mostrar Envelope de pagamento de março/24 para frente    e  o folha de pagamento mostrar no dia 05 e o adiantamento no dia 20. Porém  esta dando erro. Segue meu IF.  

    If aParam[5] < 2024 .AND. aParam[6] < 03 //Se ANO menor QUE 2024 E MES menor que 03: não mostrar no app
    lRet := .F.
    endif

    if aParam[4] == 2 .AND. aParam[1] < 05  //FOL. Se (tipo de recibo) igual 2 = Folha e (data de pagamento) menor que 5 não mostrar app
    lRet := .F.
    endif

    if aParam[4] == 1 .AND. aParam[1] < 20  //ADIAN. Se (tipo de recibo) igual 1 = ADIANTAMENTO e (data de pagamento) menor que 20 não mostrar app
    lRet := .F.  
    endif    
     
    alguém conseguiria me ajudar??
    0
    Ações de comentário Permalink
  • Avatar
    IGOR JOSE DE OLIVEIRA COSTA

    Esse é o código que usamos atualmente, ele controla também a quantidade de holerites a serem exibidos, somente do ano vigente e também a partir de qual dia pode exibir pois o parâmetro que fazia esse ultimo controle não estava funcionando na época que implementamos.

    // Facility
    #define FAC_FRAME_ 22
    #define FAC_SEGMENTS_ 23

    // Severity
    #define SEV_EMG_ 0
    #define SEV_ALERT_ 1
    #define SEV_CRITICAL_ 2
    #define SEV_ERROR_ 3
    #define SEV_WARN_ 4
    #define SEV_NOTICE_ 5
    #define SEV_INFORM_ 6
    #define SEV_DEBUG_ 7

    User Function LIBRECPAG()
        Local aParam := PARAMIXB
        Local lRet := .T.

        //aParam[1] - Data de pagamento
        //aParam[2] - Filial do Funcionario
        //aParam[3] - matricula do Funcionario
        //aParam[4] - Tipo de Recibo
        //aParam[5] - Ano do Recibo(periodo)
        //aParam[6] - Mes do Recibo(Periodo)

        /*
        Tipo de Recibo :
        0 = Ferias
        1 = Adiantamento
        2 = Folha
        3 = Primeira Parcela 13
        4 = Segunda Parcela 13
        5 = PLR
        6 = Autonomo
        */

        // LogMsg('LIBRECPAG', FAC_FRAME_, SEV_NOTICE_, 1, '', '', '(cValToChar(aParam[5]) + StrZero(aParam[6], 2)): ' + (cValToChar(aParam[5]) + StrZero(aParam[6], 2)))
        // LogMsg('LIBRECPAG', FAC_FRAME_, SEV_NOTICE_, 1, '', '', 'LEFT(DtoS(MonthSub(Date(), 12)),6): ' + LEFT(DtoS(MonthSub(Date(), 12)),6))
       
        If ((cValToChar(aParam[5]) + StrZero(aParam[6], 2)) < LEFT(DtoS(MonthSub(Date(), 6)),6)) .OR. (sToD(aParam[1]) > Date())
            //Somente mostra os 6 ultimos recibos
            //Somente mostra os recibos com data de pagamento MENOR ou igual a HOJE
            lRet := .F.
        EndIf
    Return lRet
    0
    Ações de comentário Permalink
  • Avatar
    IGOR JOSE DE OLIVEIRA COSTA

    Quanto ao seu código...

    If aParam[5] < 2024 .AND. aParam[6] < 03 //Se ANO menor QUE 2024 E MES menor que 03: não mostrar no app
    // - NÃO vai mostrar nenhum holerite do ano de 2024... NÃO vai mostrar nenhum mês >= 03... vai mostrar ano 202102, 202202, 202302... não vai mostrar 202403, 202303, 202203 e etc...
    lRet := .F.
    endif
     
     
    if aParam[4] == 2 .AND. aParam[1] < 05  //FOL. Se (tipo de recibo) igual 2 = Folha e (data de pagamento) menor que 5 não mostrar app
    //O aParam[1] é uma string com uma "data" completa por exemplo '20240405'
    lRet := .F.
    endif

     

    if aParam[4] == 1 .AND. aParam[1] < 20  //ADIAN. Se (tipo de recibo) igual 1 = ADIANTAMENTO e (data de pagamento) menor que 20 não mostrar app
    //O parâmetro 1 é uma string com uma "data" completa '20240405'
    lRet := .F.  
    endif    
    0
    Ações de comentário Permalink
  • Avatar
    Wellington de Paula

    ok Obrigado pelas dicas, é que precisamos mostrar o holerith de março/24  para frente !!! e o historico para trás não mostrar!!!   Porém quando criamos o ponto de entrada  para restringir os holrith, ele para de respeitar os parametros de dia do pagamento!! Então creio eu que tem que criar os parametros de PAGAMENTO, ADIANTAMENTO, 13º. O que conseguimos foi só fazer aparecer de março/24 para frente  desta forma abaixo.

    If aParam[5] < 2024  
    lRet := .F.
    EndIf
        If  aParam[6] = 01 .OR. aParam[6] = 02 
    lRet := .F.
        EndIf

     

    tem alguma dica de como fazer??

     

    0
    Ações de comentário Permalink
  • Avatar
    IGOR JOSE DE OLIVEIRA COSTA
        If ((cValToChar(aParam[5]) + StrZero(aParam[6], 2)) < '202403')
            lRet := .F.
        EndIf

    Eu acho que dessa forma aí vai funcionar

    Nessa linha estou comparando a concatenação dos parâmetros aParam[5] (Ano) e aParam[6] (mês) e vendo se é MENOR que '202403', se for menor não exibe

    Obs: Eu faço um ajuste no parâmetro de mês pra ficar com dois caracteres StrZero(aParam[6], 2)
    0
    Ações de comentário Permalink
  • Avatar
    Wellington de Paula

    Igor, funcionou seu codigo!!!! desde já lhe agradeço. Agora falta saber se agora irá respeitar os parametros

    MV_TCFDADT (PARAMATRO DO ADIANTAMENTO) que está setado para aparecer no dia do VALE no dia 20.

    MV_TCFDFOL (PARAMETRO DO PAGAMENTO) que está setado para aparecer no dia do pagamento no dia 05.

    ou você acha que terá que colocar isto no ponto de entrada tbm, sobre o pagamento aparecer no dia 05 e o vale no dia 20 ???

     

    0
    Ações de comentário Permalink
  • Avatar
    IGOR JOSE DE OLIVEIRA COSTA

    Wellington,

     

    Que bom que deu certo o ponto de entrada aí com vcs.

    Quanto aos parâmetros, o MV_TCFDFOL  eu testei esses dias e estava funcionando, não tirei do meu código pq já estava funcionando E pq não temos adiantamento aqui.

    Já o MV_TCFDADT eu nunca testei pq não temos adiantamento aqui, então não sei te dizer se funciona. Faz o seguinte, assim que seu RH fizer o primeiro cálculo de adiantamento (imagino que semana que vem) vc já entra no aplicativo e vê se aparece alguma coisa lá, se aparecer aí é pq não está respeitando o parêmetro.

    Se não estiver respeitando o parâmetro, aí vc ajusta o ponto de entrada.

    0
    Ações de comentário Permalink
  • Avatar
    Wellington de Paula

    Bom dia Igor, tudo bem?  Só dando um retono hoje foi feito o calculo de adiantamento e não respeitou o parametro em MV_TCFDADT !! 

    0
    Ações de comentário Permalink
  • Avatar
    Wellington de Paula

    criei este IF

     //dtos convert data atual em aaaammdd  e compara com data do pagamento do tipo do recibo.
    if  DTOS(dDtAtual) < cValToChar(aParam[1])
    lRet := .F.
    EndIf
     
    Parece que deu certo, vou ir acompanhando....
    0
    Ações de comentário Permalink
Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _