Árvore de páginas

Carregando...

01. DADOS GERAIS

Produto:

TOTVS Manutenção de Ativos

Linha de Produto:

Linha Protheus

Segmento:

Manufatura

Módulo:

TOTVS Manufatura (Linha Protheus) - Manutenção de ativos (SIGAMNT)

Função:MNTA435N()
País:Brasil


02. DESCRIÇÃO

Descrição:

Ponto de entrada acionado na validação do Retorno Modelo 2 (MNTA435) que permite validação adicional antes da gravação dos insumos.

Localização:

SIGAMNT: Atualizações/Controle de Oficina/Retorno de OS/Retorno Mod. 2

Programa Fonte:

MNTA435.prw

Função:

MNTA435N()

Parâmetros:

NomeTipoDescriçãoObrigatório
ParamIXB[1]Caracter

Id que indica o local da chamada do ponto de entrada

Sim

A partir da 2ª posição os parâmetros podem ser diferentes de acordo com o ID, como citado na tabela abaixo:

NomeTipoDescriçãoObrigatório
ParamIXB[2]

Array

PosiçãoTipoDescrição
1CaracterNúmero da O.S.
2CaracterPlano
3ArrayInsumos previstos já salvos
4ArrayInsumos realizados já salvos
5ArrayTodos os insumos realizados e modificados
Sim

Retorno:

NomeTipoDescriçãoObrigatório
.T. / .F.LógicoDefine se poderá prosseguir após as validaçõesSim

03. DEMAIS INFORMAÇÕES

Exemplo MNTA435N()
#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 MNTA435N()
     
    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


04. ASSUNTOS RELACIONADOS

  • Não se aplica.