Árvore de páginas

Ponto-de-Entrada: MNTA120L - Validação dos semáforos
Abrangências: Microsiga Protheus 10 , Microsiga Protheus 11
Versões: Microsiga Protheus 10 , Microsiga Protheus 11
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Idiomas: Espanhol , Inglês
Descrição:
Ponto de entrada que permite desenvolver validação específica para os semáforos da rotina de Manutenção (MNTA120).
Programa Fonte
MNTA120.PRX
Sintaxe

MNTA120L - Validação dos semáforos ( [ ] )

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
Array of Record
Retorno
    ()
Exemplos
#INCLUDE "PROTHEUS.CH"User Function MNTA120L()        Local cTipo := ParamIXB[1]        Local lRet  := .F.        Local nCont := 0        Local nVarD := 0        Local dProxManu                If STF->TF_ATIVO <> "N"               If cTipo = "A" //Atrasar                       If STF->TF_TIPACOM $ "T/A"                               dProxManu := NGPROXMANT(STF->TF_DTULTMA,STF->TF_TEENMAN,STF->TF_UNENMAN)                               If !Empty(dProxManu) .And. dProxManu < dDATABASE                                      If !lTolera                                              lRet := .t.                                      Else                                              If STF->TF_TOLERA > 0                                                     If (dProxManu + STF->TF_TOLERA) < dDATABASE                                                             lRet := .t.                                                     EndIf                                              Else                                                     lRet := .t.                                              EndIf                                      EndIf                               Endif                       EndIf                                              If STF->TF_TIPACOM != "T" .And. !lRet                               If STF->TF_TIPACOM == 'S' //Segundo Contador                                      NGIFDICIONA("TPE",xFilial("TPE")+STF->TF_CODBEM,1)                                      nCont := TPE->TPE_CONTAC                                      nVarD := TPE->TPE_VARDIA                               Else                                      NGIFDICIONA("ST9",xFilial("ST9")+STF->TF_CODBEM,1)                                      nCont := ST9->T9_CONTACU                                      nVarD := ST9->T9_VARDIA                               EndIf                               If lTolera                                      If !lTolConE                                              If (STF->TF_CONMANU + STF->TF_INENMAN + STF->TF_TOLECON) < nCont                                                     lRet := .t.                                              EndIf                                      Else                                              If (STF->TF_CONMANU + STF->TF_INENMAN+ (nVarD * STF->TF_TOLERA)) < nCont                                                     lRet := .t.                                              EndIf                                      EndIf                               Else                                      If (STF->TF_CONMANU + STF->TF_INENMAN) < nCont                                              lRet := .t.                                      EndIf                               EndIf                       EndIf                                      ElseIf cTipo = "V" //A Vencer                       dProxManu := PROXMANU(STF->TF_CODBEM,STF->TF_SERVICO,STF->TF_SEQRELA,nPERFIXO)                       If lTolera                               If STF->TF_TIPACOM $ "T/A"                                      If !Empty(dProxManu)                                              If (dProxManu + STF->TF_TOLERA >= dDATABASE)  .And.  ((dProxManu - STF->TF_TOLERA) <= dDATABASE)                                                     lRet := .T.                                              Endif                                      Endif                               EndIf                               If STF->TF_TIPACOM != "T" .And. !lRet                                      If STF->TF_TIPACOM == 'S' //Segundo Contador                                              NGIFDICIONA("TPE",xFilial("TPE")+STF->TF_CODBEM,1)                                              nCont := TPE->TPE_CONTAC                                              nVarD := TPE->TPE_VARDIA                                      Else                                              NGIFDICIONA("ST9",xFilial("ST9")+STF->TF_CODBEM,1)                                              nCont := ST9->T9_CONTACU                                              nVarD := ST9->T9_VARDIA                                      EndIf                                                                            If !lTolConE                                              If STF->TF_CONMANU + STF->TF_INENMAN + STF->TF_TOLECON >= nCont .And.  (STF->TF_CONMANU + STF->TF_INENMAN) - STF->TF_TOLECON <= nCont                                                     lRet := .t.                                              EndIf                                      Else                                              nTolEsp := nVarD * STF->TF_TOLERA                                              If STF->TF_CONMANU + STF->TF_INENMAN+nTolEsp >= nCont .And.  (STF->TF_CONMANU + STF->TF_INENMAN) - nTolEsp <= nCont                                                     lRet := .t.                                              EndIf                                      EndIf                               EndIf                       EndIf               EndIf        Endif                dbSelectArea("STF")Return lRet
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não