AT450AGE_Gravação da agenda do técnico na alocação automática
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Serviços | ||||
Módulo: | Gestão de Serviços | ||||
Rotina: |
|
Ponto de Entrada
Descrição: | AT450AGE - Permite gerar a agenda do técnico conforme regra especifica | ||||||||
Eventos: | AT450AGE(aBestTec,aBestHor,nTecnico,cNumOS)->lRet PARAMIXB[1] - aBestTec - Array com a lista de técnicos a serem considerados PARAMIXB[2] - aBestHor - Array com os melhores horários PARAMIXB[3] - Posição do técnico escolhida para a melhor alocação PARAMIXB[4] - Número da Ordem de serviço a ser criada | ||||||||
Programa Fonte: | TECXFUN.PRW | ||||||||
Função: | AtAlocTec() | ||||||||
Retorno: |
|
Importante
Ao utilizar o ponto de entrada a responsabilidade da gravação da agenda do técnico será totalmente feita pelo ponto de entrada, não havendo mais ação de gravação da parte do produto padrão.
Exemplo:
#Include 'Protheus.ch'
User Function AT450AGE()
Local aBestTec := PARAMIXB[1]
Local aBestHor := PARAMIXB[2]
Local nTecnico := PARAMIXB[3]
Local cNumOs := PARAMIXB[4]
Local lRet := .F.
Local nCntFor := 0
Local nCntFor1 := 0
If ( nTecnico <> 0 )
For nCntFor := 1 To Len(aBestTec[nTecnico])
For nCntFor1 := 1 To Len(aBestHor[nTecnico][nCntFor])
RecLock("ABB",.T.)
ABB->ABB_FILIAL := xFilial("ABB")
ABB->ABB_CODTEC := aBestTec[nTecnico][nCntFor][1]
ABB->ABB_NUMOS := cNumOs
ABB->ABB_DTINI := aBestHor[nTecnico][nCntFor][nCntFor1][1]
ABB->ABB_HRINI := aBestHor[nTecnico][nCntFor][nCntFor1][2]
ABB->ABB_DTFIM := aBestHor[nTecnico][nCntFor][nCntFor1][3]
ABB->ABB_HRFIM := aBestHor[nTecnico][nCntFor][nCntFor1][4]
ABB->ABB_HRTOT := AtTotHora(ABB->ABB_DTINI,ABB->ABB_HRINI,ABB->ABB_DTFIM,ABB->ABB_HRFIM)
ABB->ABB_OBSERV := "ALOCADO AUTOMATICAMENTE"
ABB->ABB_SACRA := "N"
ABB->ABB_CODIGO := AtABBNumCd()
ABB->ABB_ENTIDA := "AB6"
ABB->ABB_CHAVE := cNumOs
ABB->ABB_CHEGOU := "N"
ABB->ABB_ATENDE := "2"
Next nCntFor1
Next nCntFor
lRet := .T.
EndIf
Return lRet