Árvore de páginas

Ponto de entrada que permite realizar operações após gravação na rotina de parte diária (MNTA851)

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

MNTA851

Parte Diária

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 Parte Diária (MNTA851) que permite realizar operações após gravação de dados.

Programa Fonte:

MNTA851.prw

Função:

MNTA851B()

Parâmetros
PosiçãoTipoDescrição
1N

Operação: 3=Inclusão; 4=Alteração; 5=Exclusão

2CConteúdo do campo TV1_FILIAL
CConteúdo do campo TV1_EMPRES
4CConteúdo do campo TV1_CODBEM
5CConteúdo do campo TV1_DTSERV
6AaHeader da tabela TV2
7AaCols da tabela TV2

Retorno:

Nulo

 

Exemplo do Ponto de Entrada MNTA851B()
#include 'protheus.ch'

User Function MNTA851B()

    Local nOperat := PARAMIXB[1] // nOpcx
    Local cFilTV1 := PARAMIXB[2] // M->TV1_FILIAL
    Local cEmpTv1 := PARAMIXB[3] // M->TV1_EMPRES
    Local cBemTv1 := PARAMIXB[4] // M->TV1_CODBEM
    Local dDtTv1  := PARAMIXB[5] // M->TV1_DTSERV
    Local aHeader := PARAMIXB[6] // oGet:aHeader
    Local aCols   := PARAMIXB[7] // oGet:aCols
    Local cKey    := cFilTV1 + cEmpTv1 + cBemTv1 + dtos( dDtTv1 )
    Local cMesage := ''
    Local nIndex  := 0
    Local nCodati := aScan( aHeader ,{ |x| AllTrim( Upper( X[2] ) ) == "TV2_CODATI" } )
    Local nHrini  := aScan( aHeader ,{ |x| AllTrim( Upper( X[2] ) ) == "TV2_HRINI" } )
    Local nHrFim  := aScan( aHeader ,{ |x| AllTrim( Upper( X[2] ) ) == "TV2_HRFIM" } )

    If nOperat == 3
        cMesage += 'INCLUSÃO DE PARTE DIÁRIA'
    ElseIf nOperat == 4
        cMesage += 'ALTERAÇÃO DE PARTE DIÁRIA'
    ElseIf nOperat == 5
        cMesage += 'EXCLUSÃO DE PARTE DIÁRIA'
    EndIf

    If IsInCallStack("MNTA852")
        cMesage += ' - Rotina MNTA852' + CRLF + CRLF
    Else
        cMesage += ' - Rotina MNTA851' + CRLF + CRLF
    EndIf

    cMesage += 'Bem: ' + Alltrim( cBemTv1 ) + ' - data: ' + DToC( dDtTv1 )  + CRLF

    If nOperat == 3 .Or. nOperat == 4

        dbSelectArea('TV2')
        dbSetOrder(1)
        If dbSeek( cKey )

            While TV2->( !Eof() ) .And. cKey == TV2->TV2_FILIAL + TV2->TV2_EMPRES + TV2->TV2_CODBEM + DToS( TV2->TV2_DTSERV )
                
                cMesage += 'Atividade: ' + TV2->TV2_CODATI + ' / ' + TV2->TV2_HRINI + ' - ' + TV2->TV2_HRFIM + CRLF
                
                TV2->( dbSkip() )
            End

        EndIf

        If nOperat == 4
            
            For nIndex := 1 to Len( aCols )

                If GDDeleted( nIndex, aHeader, aCols ) .And.;
                    nCodati > 0 .And. !Empty( aCols[nIndex, nCodati ] ) .And.;
                    nHrini > 0 .And. !Empty( aCols[nIndex, nHrini ] ) .And.;
                    nHrFim > 0 .And. !Empty( aCols[nIndex, nHrFim ] )

                    cMesage += 'Item excluído: Atividade ' + aCols[nIndex, nCodati ] + ' - '
                    cMesage += aCols[nIndex, nHrini ] + '/' + aCols[nIndex, nHrFim ] + CRLF

                EndIf

            Next

        EndIf
       
    EndIf

    If Isblind() // sem interface
        Conout( cMesage )
    Else
        MsgInfo( cMesage, 'Parte diária')
    EndIf

Return