Ponto de entrada que realiza tratamento de variáveis de montagem de tela na rotina de Controle de Portaria (MNTA985)

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Manufatura

Módulo:

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

Rotina:

Rotina

Nome Técnico

MNTA985

Portaria

Rotina(s) envolvida(s)

Nome Técnico

MNTA9852

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 Controle de Portaria (MNTA985) que permite que seja realizado tratamento de variáveis de montagem de tela de entrada e saída. (Ex.: aRelac, aVarNao)

Programa Fonte:

MNTA985.prw
Localização:SIGAMNT: Atualizações/Controle de Oficina/Controle de Portaria/Portaria

Função:

MNTA9852()
Parâmetros:
NomeTipoDescrição
ParamIXB[1]LógicoIndica se é entrada (.T.)
ParamIXB[2]LógicoIndica se é saída (.T.)
ParamIXB[3]Array

Informações referentes ao veículo selecionado, sendo:

[1] - Empresa;

[2] - Filial;

[3] - Código.

#Include 'Protheus.ch'
#Include 'RwMake.ch'

/*
Função MNTA9852
Autor Felipe Nathan Welter
Data 16/02/10
Descrição PE para tratamento de variaveis de montagem da tela ( ex.: aRELAC, aVARNAO)
Parametros aParamIxb [1] - lEnt (indica se é entrada)
					 [2] - lSai (indica se é saida)
					 [3] - aInf (vetor com informacoes do veiculo)
					 [3][1] - Empresa
					 [3][2] - Filial
					 [3][3] - Codigo Veiculo
Retorno Nil
Uso MNTA985
*/

User Function MNTA9852()

	Local aArea := GetArea()
	Local lENT := lSAI := .F.
	Local aInf := Array(3)
	Local lIntTMS := If(GetNewPar("MV_NGMNTMS","N") == "S",.T.,.F.)

	//Integracao com TMS
	//Carrega variaveis de Entrada e Saida
	If ValType(ParamIxb) == "A"
		lENT  := ParamIXB[1]
		lSAI  := ParamIXB[2]
		aInf  := aClone(ParamIXB[3])
	EndIf

	//Prepara campos de usuario para apresentacao em tela (Entrada/Saida)
	If lENT	aAdd(aVARNAO,'TTI_SITSAI')
		aAdd(aVARNAO,'TTI_MTVSAI')
		aAdd(aVARNAO,'TTI_DESMTV')
	ElseIf lSAI
		aAdd(aVARNAO,'TTI_SITENT')
	EndIf

	//Carrega o campo motorista
	If lIntTMS
		If aInf[1] == SM0->M0_CODIGO
			dbSelectArea("ST9")
			dbSetOrder(01)
			If dbSeek(aInf[2]+aInf[3]) .And. ST9->T9_CATBEM == "2"
				dbSelectArea("DA3")
				dbSetOrder(01)
				If dbSeek(NGTROCAFILI("DA3",aInf[2],aInf[1])+ST9->T9_CODTMS)
					If !Empty(DA3->DA3_MOTORI) .And. ((NGSX2MODO("DA3") == "C") .Or. (NGSX2MODO("DA3") == "E" .And. DA3->DA3_FILIAL == SM0->M0_CODFIL))
						If lENT
							aAdd(aRELAC,{"TTI_MOTENT",'"'+DA3->DA3_MOTORI+'"'})
						ElseIf lSAI
							aAdd(aRELAC,{"TTI_MOTSAI",'"'+DA3->DA3_MOTORI+'"'})
						EndIf
							aAdd(aRELAC,{"TTI_NOMMOT",'"'+NGSEEK("DA4",DA3->DA3_MOTORI,01,"DA4_NOME",SM0->M0_CODFIL,SM0->M0_CODIGO)+'"'})
					EndIf
				EndIf
			EndIf
		EndIf
	EndIf

	RestArea(aArea)

Return

Nesse caso, os parâmetros são passados pelo argumento da User Function. Ao contrário do código Atual, que faz utilização do Array de parâmetros ParamIXB.

Ponto de Entrada

Descrição:

Ponto de entrada executado na rotina de Controle de Portaria (MNTA985) que permite que seja realizado tratamento de variáveis de montagem de tela de entrada e saída. (Ex.: aRelac, aVarNao)

Programa Fonte:

MNTA985.prw
Localização:SIGAMNT: Atualizações/Controle de Oficina/Controle de Portaria/Portaria

Função:

MNTA9852()
Parâmetros:
NomeTipoDescrição
ParamIXB[1]LógicoIndica se é entrada (.T.)
ParamIXB[2]LógicoIndica se é saída (.T.)
ParamIXB[3]Array

Informações referentes ao veículo selecionado, sendo:

[1] - Empresa;

[2] - Filial;

[3] - Código.

#Include 'Protheus.ch'
#Include 'RwMake.ch'

/*
Função MNTA9852
Autor Felipe Nathan Welter
Data 16/02/10
Descrição PE para tratamento de variaveis de montagem da tela ( ex.: aRELAC, aVARNAO)
Parametros aParamIxb [1] - lEnt (indica se é entrada)
					 [2] - lSai (indica se é saida)
					 [3] - aInf (vetor com informacoes do veiculo)
					 [3][1] - Empresa
					 [3][2] - Filial
					 [3][3] - Codigo Veiculo
Retorno Nil
Uso MNTA985
*/

User Function MNTA9852()

	Local aArea := GetArea(ParamIXB)
	Local lENT := lSAI := .F.
	Local aInf := Array(3)
	Local lIntTMS := If(GetNewPar("MV_NGMNTMS","N") == "S",.T.,.F.)

	//Integracao com TMS
	//Carrega variaveis de Entrada e Saida
	If ValType(ParamIxb) == "A"
		lENT  := ParamIXB[1]
		lSAI  := ParamIXB[2]
		aInf  := aClone(ParamIXB[3])
	EndIf

	//Prepara campos de usuario para apresentacao em tela (Entrada/Saida)
	If lENT	aAdd(aVARNAO,'TTI_SITSAI')
		aAdd(aVARNAO,'TTI_MTVSAI')
		aAdd(aVARNAO,'TTI_DESMTV')
	ElseIf lSAI
		aAdd(aVARNAO,'TTI_SITENT')
	EndIf

	//Carrega o campo motorista
	If lIntTMS
		If aInf[1] == SM0->M0_CODIGO
			dbSelectArea("ST9")
			dbSetOrder(01)
			If dbSeek(aInf[2]+aInf[3]) .And. ST9->T9_CATBEM == "2"
				dbSelectArea("DA3")
				dbSetOrder(01)
				If dbSeek(NGTROCAFILI("DA3",aInf[2],aInf[1])+ST9->T9_CODTMS)
					If !Empty(DA3->DA3_MOTORI) .And. ((NGSX2MODO("DA3") == "C") .Or. (NGSX2MODO("DA3") == "E" .And. DA3->DA3_FILIAL == SM0->M0_CODFIL))
						If lENT
							aAdd(aRELAC,{"TTI_MOTENT",'"'+DA3->DA3_MOTORI+'"'})
						ElseIf lSAI
							aAdd(aRELAC,{"TTI_MOTSAI",'"'+DA3->DA3_MOTORI+'"'})
						EndIf
							aAdd(aRELAC,{"TTI_NOMMOT",'"'+NGSEEK("DA4",DA3->DA3_MOTORI,01,"DA4_NOME",SM0->M0_CODFIL,SM0->M0_CODIGO)+'"'})
					EndIf
				EndIf
			EndIf
		EndIf
	EndIf

	RestArea(aArea)

Return