Histórico da Página
...
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:
aVetor | Array of records | Array 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 | |
aEmpen | Array of records | Array 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".