Histórico da Página
Ponto de entrada para utilização no Retorno Mod2
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Manufatura | ||||
Módulo: | SIGAMNT - Manutenção de Ativos e Gestão de Frotas | ||||
Rotina: |
| ||||
Chamados Relacionados | DNG-3844 | ||||
País(es): | Todos | ||||
Banco(s) de Dados: | Todos | ||||
Sistema(s) Operacional(is): | Todos |
Ponto de Entrada
Descrição: | Ponto de entrada acionado na validação do Retorno Mod2 | ||||||||||||||||||||||||||||||||||
Localização: | SIGAMNT: Atualizações/Controle de Oficina/Retorno de OS/Retorno Mod2 (MNTA435) | ||||||||||||||||||||||||||||||||||
Eventos: | Retorno Mod2 (MNTA435) | ||||||||||||||||||||||||||||||||||
Programa Fonte: | MNTA435.PRW | ||||||||||||||||||||||||||||||||||
Funções |
| ||||||||||||||||||||||||||||||||||
Parâmetros: |
A partir da 2ª posição os parâmetros podem ser diferentes de acordo com o ID, como citado na tabela abaixo:
| ||||||||||||||||||||||||||||||||||
Retorno: | O ponto de entrada pode ser chamado em vários momentos dentro do fonte, na 1ª posição da estrutura do vetor é passado um ID que identifica qual é este momento. De acordo com o ID o retorno pode ser diferente, como citado na tabela abaixo:
|
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#include 'protheus.ch' //------------------------------------------------------------------- /*/{Protheus.doc} U_MNTA435 Exemplo da utilização do ponto de entrada MNTA435, ID "VALID_CONFIRM" Neste exemplo o objetivo é não permitir incluir um insumo de MDO com data menor que a data atual @obs @author NG Informática @since 12/02/2019 @return lógico, se obteve sucesso nas validações @obs neste exemplo é utilizado o retorno lógico utilizado para o ID "VALID_CONFIRM" /*/ //------------------------------------------------------------------- User Function MNTA435MNTA435N() Local aArea := GetArea() Local cId := PARAMIXB[1] //Indica o momento da chamada do PE Local aDadosOS := {} Local aInsumos := {} //Array de insumos realizados Local nOrdem Local nInsumo Local nPosTipReg := aScan(aHoBrw2,{|x| Trim(Upper(x[2])) == "TL_TIPOREG"}) Local nPosDtInic := aScan(aHoBrw2,{|x| Trim(Upper(x[2])) == "TL_DTINICI"}) If cId == "VALID_CONFIRM" //Array com os dados das ordens de serviço aDadosOS := ParamIXB[2] //Percorre o array de ordens For nOrdem := 1 To Len( aDadosOS ) //Verifica se há insumos realizados If ValType( aDadosOS[ nOrdem, 5 ] ) == "A" aInsumos := aClone( aDadosOS[ nOrdem, 5 ] ) //Percorre o array de insumos realizados For nInsumo := 1 to Len( aInsumos ) If !aTail( aInsumos[ nInsumo ] ); //Verifica se não está deletado .And. aInsumos[ nInsumo, nPosTipReg ] == "M"; //Verifica se é insumo do tipo MDO .And. aInsumos[ nInsumo, nPosDtInic ] < dDatabase // Verifica se a data é menor que a data atual //Apresenta para o usuário o número da OS que há uma inconsistência MsgAlert( "Ordem " + aDadosOS[ nOrdem, 1 ] + ": a data dos insumos tipo mão de obra não pode ser menor que a data atual.") //Quando há problema, deve retornar falso RestArea( aArea ) Return .F. EndIf Next nInsumo EndIf Next nOrdem //Quando não houver problema retorna sucesso na validação RestArea( aArea ) Return .T. EndIf Return |