Árvore de páginas

Tempo aproximado para leitura: 05 min


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus
Segmento:Recursos Humanos
Módulo:Ponto Eletrônico - SIGAPON
Função:PONXFUN.PRX
Requisito/Story/Issue (informe o requisito relacionado) :DRHPONTP-4586
Ticket:6239830
Pacotes:12.1.25:https://suporte.totvs.com/portal/p/10098/download?e=768197 ; 12.1.23:https://suporte.totvs.com/portal/p/10098/download?e=768196 ; 12.1.17:https://suporte.totvs.com/portal/p/10098/download?e=768195 ;


02. SITUAÇÃO/REQUISITO

Necessidade de criação de Ponto de Entrada, para que no momento da montagem do calendário no PONXFUN (criacalend), seja possível considerar a regra para definir se a exceção será ou não considerada.


03. SOLUÇÃO

Disponibilizado o ponto de entrada PNMEXCFI, na função fAddExce, do PONXFUN. 

O cliente poderá criar um campo customizado na tabela SP2 pelo configurador e no ponto de entrada, validar de acordo com a sua necessidade.

Retorno do PE:

.T.A exceção será desprezada.
.F.A exceção será considerada.


04. DEMAIS INFORMAÇÕES

Exemplo de utilização:

No exemplo foi criado o campo P2_XREGRA, que será preenchido com a regra que será considerada:

#include 'protheus.ch'
#include 'parmtype.ch'

User Function PNMEXCFI()

//Parametros recebidos por ParamIXB
//aArray , lArray , aExceper , nPos , dData , cRegra , nRecno, GetArea()[1]

Local aArray := ParamIXB[1] //Array que contera as Excecoes do SP2
Local lArray := ParamIXB[2] //Quando True Carrega Excecao de aExcePer
Local aExceper := ParamIXB[3] //Array com as Excecoes por Periodo
Local nPos := ParamIXB[4] //Posicao da Excecao em aExcePer
Local dData := ParamIXB[5] //Data da Excecao
Local cRegra := ParamIXB[6] //Regra de Apontamento do Cadastro de Funcionarios
Local nRecno := ParamIXB[7] //Recno da SP2 Correspondente a Excecao
Local cArq := ParamIXB[8] //Alias do arquivo temporario que esta com a copia da SP2 em processamento
Local lRet := .F.
Local aTurnosAux := {}
Local nPos1
Local dDtIni, dDtFim

If !lArray .and. !empty((cArq)->P2_XREGRA)

If type("aTurnos")=='U'

If ISINCALLSTACK("GPEM020")
dDtIni := dDataDe
dDtFim := dDataAte
Else
dDtIni := dPerIni
dDtFim := dPerFim
EndIf

fTrocaTno( dDtIni , dDtFim , @aTurnosAux , NIL , NIL , .F. )
Else
aTurnosAux := aClone(aTurnos)
EndIf

If Len(aTurnosAux) > 0
nPos1 := aScan(aTurnosAux,{ |x| (cArq)->P2_DATA < x[2]})
cRegra := Posicione("SPF",1,SRA->(RA_FILIAL+RA_MAT)+dtos(aTurnosAux[nPos1,2]),"PF_REGRADE")
EndIf

If (cArq)->P2_XREGRA <> cRegra
lRet := .T.
EndIf

EndIf

Return(lRet)


05. ASSUNTOS RELACIONADOS

Não há.