Árvore de páginas

MT680FINAL - Alteração dos Lotes dos Empenhos

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Idiomas:

Português(Brasil)

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:

O ponto de entrada MT680FINAL foi criado para que seja possível a alteração dos lotes dos empenhos a partir da tela do programa de Empenho Múltiplo - MATA381

Se o programa MATA681 for executado via Rotina Automática (EXECAUTO), esse ponto de entrada não tem validade, porque mesmo que retorne .T. (true), não será aberta a tela de empenho múltiplo. Porém, é possível efetuar a abertura da tela do Empenho Múltiplo - MATA381, antes/depois da chamada do execauto (conforme exemplo 2).

Localização:

Função A680TudoOk - A função faz as consistências padrões após a digitação da tela.

Programa Fonte:MATA680.PRX
Retorno:

lAbre381 - Retorna uma variável lógica, que indicará se será aberta ( .T. ) a tela de Empenho Múltiplo ou não ( .F. ).


Exemplo 1

Exemplo
#INCLUDE "Protheus.ch"   

User Function MT680FINAL()
Local lAbre381 := .f.

If !Inclui
   Return lAbre381
EndIf

cH6_OP := M->H6_OP

dbSelectArea("SD4")
dbSetOrder(2)
If dbSeek(xFilial("SD4")+cH6_OP)
   While SD4->(!Eof()) .AND. SD4->D4_FILIAL == xFilial("SD4") .AND. SD4->D4_OP == cH6_OP

      If Empty(SD4->D4_LOTECTL)
         lAbre381 := .t. //Alimenta a variavel para chamar a tela de empenhos
         Exit
      EndIf

      SD4->(dbSkip())
   End
EndIf

Return lAbre381


Exemplo 2

Exemplo
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
 
User Function RMATA681()
Local aVetor := {}
Local dData
Local nOpc   := 3

//definição de variáveis private necessárias para funcionamento do MATA381
PRIVATE INCLUI    := .F.
PRIVATE ALTERA    := .T.
 
lMsErroAuto := .F.
 
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" TABLES "SH6"
 
dData:=dDataBase
aVetor := {;
           {"H6_OP"      ,"00000101001 " ,NIL},;
           {"H6_PRODUTO" ,"PA01 "        ,NIL},;
           {"H6_OPERAC"  ,"01"           ,NIL},;
           {"H6_RECURSO" ,"1"            ,NIL},;
           {"H6_DTAPONT" ,dData          ,NIL},;
           {"H6_DATAINI" ,dData          ,NIL},;
           {"H6_HORAINI" ,"19:11"        ,NIL},;
           {"H6_DATAFIN" ,dData          ,NIL},;
           {"H6_HORAFIN" ,"19:20"        ,NIL},;
           {"H6_PT"      ,'P'            ,NIL},;
           {"H6_LOCAL"   ,"01"           ,NIL},;
           {"H6_QTDPROD" ,7              ,NIL}}
 
MSExecAuto({|x| mata681(x)},aVetor, nOpc)

//No retorno do execauto do MATA681 a SC2 está posicionada na OP apontada
//deverá ser posicionada a SD4 antes de chamar o MATA381
dbSelectArea("SD4")
dbSetOrder(2)
dbSeek(xFilial("SD4")+SC2->C2_NUM+SC2->C2_ITEM+SC2->C2_SEQUEN+SC2->C2_ITEMGRD)

//Chamada da tela MATA381 passando os dois primeiros parâmetros em branco (que são os parâmetros 
//utilizados quando o MATA381 é executado via rotina automática), 4 (indicando tratar-se de modificação),
//e .T. indicando que deve abrir a tela já na grid de manutenção 
MATA381(,,4,.T.) 
 
If lMsErroAuto
    Mostraerro()
Else
    Alert("ok")
EndIf
 
Return