Árvore de páginas

Ponto de entrada que permite adicionar validações para os semáforos da rotina de Manutenção (MNTA120)

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Manufatura

Módulo:

SIGAMNT - Manuteção de Ativos e Gestão de Frotas

Rotina:

Rotina

Nome Técnico

MNTA120

Manutenção

Rotina(s) envolvida(s)

Nome Técnico

MNTA120L

Ponto de Entrada

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos




Ponto de Entrada

Descrição:

Ponto de entrada executado na rotina de Manutenção (MNTA120) que permite desenvolver validações específicas para os semáforos da rotina 

Localização:

SIGAMNT: Atualizações/Controle de Oficina/Manutenção/Manutenção

Programa Fonte:

MNTA120.prx

Função:

MNTA120L()

Parâmetros:
NomeTipoDescrição
ParamIXB[1]Caracter

Indica o tipo do semáforo da seguinte maneira:

"A" = Atrasar

"V" =  A vencer

Retorno:

Nome

Tipo

Descrição

Obrigatório

 lRet

Lógico

Confirma se a validação foi feita corretamente

X

 

Exemplo do Ponto de Entrada MNTA120L()
#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