Árvore de páginas

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:

Rotina

Nome Técnico

AtAlocTec()
Gravação da agenda do técnico










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:

Nome

Tipo

Descrição

Obrigatório

 lRet

Logico

Indica se a gravação da agenda foi feita com sucesso

Sim

 


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