Produto: | |
---|---|
Linha de Produto: | |
Segmento: | |
Módulo: | SIGAGPE |
Função: | PTSREPOBJ |
Ticket: | 10204462 |
Requisito/Story/Issue (informe o requisito relacionado) : | DRHPAG-41543 |
Pacote: | 12.1.27:https://r.totvs.io/p/1001646 ; 12.1.25:https://r.totvs.io/p/1001645 ; 12.1.23:https://r.totvs.io/p/1001644 ; 12.1.17:https://r.totvs.io/p/1001643 ; |
Há situação em que dois funcionários diferentes (CPFs distintos) estão com o campo RA_CODUNIC por um motivo não identificado. Dessa forma, ao efetuar a integração do funcionário no Suricato, o colaborador fica amarrado ao último funcionário integrado.
Como a chave do campo RA_CODUNIC também é utilizada no eSocial para identificar a matrícula do trabalhador, não é possível realizar a alteração da chave no cadastro do funcionário pois isso ocasionaria inúmeras inconsistências no eSocial, ou ainda, haveria a necessidade de reabrir e reenviar a movimentação do funcionário de vários períodos.
Dessa forma, houve a criação o ponto de entrada PTSACODU que permitirá alterar a chave de identificação da pessoa física enviada na integração com o Suricato, sem alterar o envio da matrícula ao eSocial.
Segue abaixo um exemplo de implementação do ponto de entrada que irá verificar se a chave de identificação (RA_CODUNIC) do funcionário está duplicada, isto é, se é utilizada por CPFs diferentes:
#INCLUDE "PROTHEUS.CH" User Function PTSACODU() Local cChaveExt := SRA->RA_CODUNIC Local cQueryCont := "" Local cSRAAliasC := GetNextAlias() Local nContCPF := 0 //Objetivo da query abaixo é verificar se existe mais de um CPF com o mesmo RA_CODUNIC do funcionário posicionado cQueryCont := "SELECT RA_CIC, COUNT(*) as TOTAL " cQueryCont += "FROM " + RetSqlName('SRA') + " SRA " cQueryCont += "WHERE RA_CODUNIC = '" + SRA->RA_CODUNIC + "' " cQueryCont += "AND SRA.D_E_L_E_T_ <> '*' " cQueryCont += "GROUP BY SRA.RA_CIC" cQueryCont := ChangeQuery(cQueryCont) dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQueryCont), cSRAAliasC,.T.,.T.) //Faz a contagem de CPFs do A_CODUNIC do funcionário posicionado While (cSRAAliasC)->( !EoF() ) nContCPF++ (cSRAAliasC)->( dbSkip() ) End (cSRAAliasC)->( dbCloseArea() ) //Se houver mais de um CPF, altera a chave de identificação do colaborador para o número do CPF If nContCPF > 1 cChaveExt := SRA->RA_CIC EndIf Return cChaveExt |
No exemplo acima do ponto de entrada, na situação de haver duplicidade da chave foi enviado o número do CPF do funcionário como chave de identificação ao Suricato, mas cada empresa deve escolher a chave que julgar melhor para o envio, alterando o ponto de entrada conforme necessidade. Observar que o ponto de entrada apenas é executado quando ocorre integração do funcionário com o Suricato, ou seja, apenas a implementação do ponto de entrada não irá corrigir as informações no Suricato. Para a correção do vínculo do Colaborador com a Pessoa Física, será necessário "forçar" alguma alteração no cadastro dos funcionários que estão com a chave duplicada (por exemplo: o nome, que depois pode ser retornado ao seu valor original) para que seja iniciado a integração com o Suricato. Observar que o ponto de entrada só deve ser utilizado se houver a situação de duplicidade da chave. |
Não há.
Não há.
<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> |