Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

...

MATA380 - Ajuste de Empenhos

Linha de Produto:Protheus
Segmento:Manufatura
Módulo:SIGAPCP

Rotina:

MATA380 - Ajuste de Empenhos

Versões:

Protheus 11

Compatível Países:

Todos

Sistemas Operacionais:

Todos

Compatível às Bases de Dados:

Todos

Nível de Acesso:

Nível 1 (Acesso Clientes)

Idiomas:Espanhol, Inglês

...


Descrição:

Esta rotina possui a finalidade de ajustar os empenhos de produtos solicitados nas OPs.

Os empenhos devem ser ajustados sempre que houver houverem diferenças entre o material que foi empenhado para uma determinada ordem de produção e a quantidade realmente utilizada para a execução desta ordem ou substituição de um componente por outro antes da produção. Essas diferenças podem ocorrer, por exemplo, devido ao índice de perda de material utilizado ou seu aproveitamento na fabricação do produto final.

...

Em Ajuste de Empenho é possível efetuar: Inclusão de Ajuste de Empenho; Alteração de Ajuste de Empenho; Exclusão de Ajuste de Empenho.

ATENÇÃO: Para alteração do campo "Lote" (D4_LOTECTL) deverá ser utilizado o MsExecAuto do MATA381 conforme documentação a seguir: PSIGAPCP0301 - Exemplo de ExecAuto da rotina Empenhos Múltiplos (MATA381)


Programa Fonte:

                    MATA380.PRX

...

                    Nulo()

Parâmetros:

aVetorArray of recordsArray com os campos da tabela SD4 para execução do ajuste.X
 


nOpc

 


numérico

Número da opção a executar

3 = Incluir

4 = Alterar

5 = Excluir

X
aEmpenArray of recordsArray com quantidade, localização (endereço) e número de série
 


Exemplo:


 

#INCLUDE "PROTHEUS.CH"
#include "rwmake.ch"
#include "TbiConn.ch"
 

User Function auto380()
 

Local aVetor := {}
Local aEmpen := {}
Local nOpc   := 3 //Inclusao
 

PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" MODULO "EST"
 

lMsErroAuto := .F.
 

aVetor:={   {"D4_COD"     ,"PROD113        ",Nil},; //COM O TAMANHO EXATO DO CAMPO
            {"D4_LOCAL"   ,"01"             ,Nil},;
            {"D4_OP"      ,"00005201001  "  ,Nil},;
            {"D4_DATA"    ,dDatabase        ,Nil},;
            {"D4_QTDEORI" ,30               ,Nil},;
            {"D4_QUANT"   ,30               ,Nil},;
            {"D4_TRT"     ,"   "            ,Nil},;
            {"D4_QTSEGUM" ,0                ,Nil}}
             
AADD(aEmpen,{   30                 ,;   // SD4->D4_QUANT
                "END01          ",;  // DC_LOCALIZ
                ""                   ,;  // DC_NUMSERI
                0                  ,;  // D4_QTSEGUM
                .F.}
 

MSExecAuto({|x,y,z| mata380(x,y,z)},aVetor,nOpc,aEmpen)
 
 

If lMsErroAuto
    Alert("Erro")
    MostraErro()
EndIf
 

Return
 


Observações:

A mensagem de help "A380QTDORI" é apresentada quando a quantidade informada no campo D4_QTDORI, na alteração do empenho, é menor que a quantidade do campo D4_QUANT. Essa situação também ocorre na inclusão manual, não é uma questão de específica do ExecAuto. Quando a quantidade informada é menor, a ordem de alteração é D4_QUANT, D4_QTDORI.

Quando a quantidade é maior a ordem de alteração é exatamente o contrário, primeiro o D4_QTDORI depois o D4_QUANT, nesse caso se o usuário digitar fora dessa ordem a rotina apresenta o help "A380QUANT".

Na rotina manual o usuário tem o controle e consegue informar na ordem correta, já no ExecAuto é necessário montar o array dinamicamente, de acordo com a situação utilizando a condição "If".