Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Ponto de entrada que valida a sobreposição de insumos no GetDados na rotina de Retorno Simplificado (MNTA415)

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

MNTA415

Simplificado

Rotina(s) envolvida(s)

Nome Técnico

MNT41507

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 Retorno Simplificado (MNTA415) para validação de sobreposição de insumo considerando as informações digitadas do aCols

Localização:

SIGAMNT: Atualizações/Controle de Oficina/Retorno de O.S./Simplificado

Programa Fonte:

MNTA415.prx

Função:

MNT41507()

Parâmetros:
NomeTipoDescrição
nParamIXB[1]NuméricoPosição no aCols do Tipo Insumo
nParamIXB[2]NuméricoPosição no aCols do Código do Insumo
nParamIXB[3]NuméricoPosição no aCols da Data Inicio
nParamIXB[4]NuméricoPosição no aCols da Hora Inicio
nParamIXB[5]NuméricoPosição no aCols da Data Fim
nParamIXB[6]NuméricoPosição no aCols da Hora Fim

Retorno:


.T.


 

Bloco de código
titleExemplo do Ponto de Entrada MNT41507()
#Include 'Protheus.ch'

User Function MNT41507()
Local nPosTP  := ParamIXB[1]
Local nY,cTpIns := aCols[n][nPosTP]
Local nPosCod := ParamIXB[2]
Local nPosDtI := ParamIXB[3]
Local nPosHrI := ParamIXB[4]
Local nPosDtF := ParamIXB[5]
Local nPosHrF := ParamIXB[6]

For nY := 1 to Len(aCols)
	If n <> nY .and. !aCols[nY][LEN(aCOLS[nY])]
		If aCols[n][nPosCod] == aCols[nY][nPosCod] .And. aCols[nY][nPosTP] == cTpIns
			If ((DtoS(aCols[n][nPosDtI])+aCols[n][nPosHrI] > DtoS(aCols[nY][nPosDtI])+aCols[nY][nPosHrI] .And.;
				DtoS(aCols[n][nPosDtI])+aCols[n][nPosHrI] < DtoS(aCols[nY][nPosDtF])+aCols[nY][nPosHrF]) .Or.;
				(DtoS(aCols[n][nPosDtF])+aCols[n][nPosHrF] > DtoS(aCols[nY][nPosDtI])+aCols[nY][nPosHrI] .And.;
				DtoS(aCols[n][nPosDtF])+aCols[n][nPosHrF] <  DtoS(aCols[nY][nPosDtF])+aCols[nY][nPosHrF])) .Or.;
				((DtoS(aCols[nY][nPosDtI])+aCols[nY][nPosHrI] > DtoS(aCols[n][nPosDtI])+aCols[n][nPosHrI] .And.;
				DtoS(aCols[nY][nPosDtI])+aCols[nY][nPosHrI] < DtoS(aCols[n][nPosDtF])+aCols[n][nPosHrF]) .Or.;
				(DtoS(aCols[nY][nPosDtF])+aCols[nY][nPosHrF] > DtoS(aCols[n][nPosDtI])+aCols[n][nPosHrI] .And.;
				DtoS(aCols[nY][nPosDtF])+aCols[nY][nPosHrF] < DtoS(aCols[n][nPosDtF])+aCols[n][nPosHrF] )) .Or. ;
				((DtoS(aCols[n][nPosDtI])+aCols[n][nPosHrI] == DtoS(aCols[nY][nPosDtI])+aCols[nY][nPosHrI] .And.;
				DtoS(aCols[n][nPosDtF])+aCols[n][nPosHrF] == DtoS(aCols[nY][nPosDtF])+aCols[nY][nPosHrF]))
					MsgInfo("Existe sobreposição de horas lançadas para o Insumo: "+aCols[n][nPosCod]+chr(13)+;
					" Lançamento existente na linha: "+AllTrim(Str(nY))+Chr(13)+; 
					" Data Inicio: "+Substr(DtoS(aCols[nY][nPosDtI]),7,2)+"/"+Substr(DtoS(aCols[nY][nPosDtI]),5,2)+"/"+Substr(DtoS(aCols[nY][nPosDtI]),1,4)+Chr(13)+; 
					" Hora Inicio: "+aCols[nY][nPosHrI]+Chr(13)+; //
					" Data Fim: "+Substr(DtoS(aCols[nY][nPosDtF]),7,2)+"/"+Substr(DtoS(aCols[nY][nPosDtF]),5,2)+"/"+Substr(DtoS(aCols[nY][nPosDtF]),1,4)+Chr(13)+; 
					'ATENCAO' +aCols[nY][nPosHrF]+Chr(13)," Hora Fim: ")
					Return .f.
			EndIf
		EndIf
	EndIf
Next nY

Return .T.