Page tree

Validação das ordens de serviço, insumos previstos e realizados na rotina de Retorno Mod. 2

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

MNTA435

Retorno Mod. 2

Rotina(s) envolvida(s)

Nome Técnico

MNTA435

Retorno Mod. 2

País(es):

Todos.

Banco(s) de Dados:

Todos.

Sistema(s) Operacional(is):

Todos.

Ponto de Entrada

Descrição:

O ponto de entrada tem como finalidade validar serviços e insumos de ordens de serviço ao salvar na rotina de Retorno de O.S. Modelo 2.

Localização:

SIGAMNT: Atualizações/Controle de Oficina/Retorno O.S./Retorno Mod. 2(MNTA435).

Programa Fonte:

MNTA435.prw

Função:

fGrava435()

Parametros:
NomeTipoDescrição
PARAMIXB[1]ArrayArray contendo informações da ordem de serviço.
PARAMIXB[1]NuméricoLinha da OS posicionada
Retorno:
Nome
Tipo
Descrição

aDadosOS

Array

Informações da ordem de serviço

Nome
Tipo
Descrição
aDadosOS[1][1]CaracterNúmero da O.S.
aDadosOS[1][2]CaracterPlano
aDadosOS[1][3]ArrayInsumos Previstos
aDadosOS[1][4]NuméricoInsumos Realizados
Exemplo 1
#include 'protheus.ch'


//-------------------------------------------------------------------
/*/{Protheus.doc} MNTA4357
Validação das ordens de serviço, insumos previstos e realizados
na rotina de Retorno Mod. 2

@author  NG Informática
@since   09/07/2014
@version P11/P12
@return  lRet, Lógico, .F. - Caso encontre inconsistências, se não .T.
/*/
//-------------------------------------------------------------------
User Function MNTA4357()

    Local aArea     := GetArea()
    Local nY        := 0
    Local nX        := 0
    Local nLineOS   := 0
    Local lRet      := .T.
    Local aDadosOS  := {}

    aDadosOS := ParamIXB[1]
    nLineOS  := ParamIXB[2]

    dbSelectArea( "STL" )
    dbSetOrder( 01 )

    // Verifica a quantidade de insumos realizados.
    For nX := 1 to Len( aDadosOS[nLineOS,5] )

        //Se a linha não estiver deletada e o Tipo de Registro for igual a Mão de Obra.
        If !aDadosOS[nLineOS][5][nX][Len(aCols[1])] .And. aDadosOS[nLineOS,5,nX,3] == "M"

            // Verifica a quantidade de insumos realizados.
            For nY := 1 to Len( aDadosOS[nLineOS][5] )

                // Se a Tarefa, Tipo Insumo ou Nome não estiver preenchido.
                If Empty(aDadosOS[nLineOS,5,nY,1]) .Or.;
                    Empty(aDadosOS[nLineOS,5,nY,3]).Or. Empty( aDadosOS[nLineOS,5,nY,5] )
                    MsgAlert("Campos obrigatórios não preenchidos.")
                    lRet := .F. //Retorna falso.
                    Exit
                EndIf

            Next nY

        EndIf
        
    Next nX

    RestArea(aArea)

Return lRet