User Function Inc381Auto()
Local aCab := {}
Local aLine := {}
Local aItens := {}
Local aEnder := {}
Local aLineEnder := {}
PRIVATE lMsErroAuto := .F.
//Monta o cabeçalho com o número da OP que será utilizada para inclusão dos empenhos.
aCab := {{"D4_OP","00130301001",NIL}}
//Adiciona novo empenho
aLine := {}
aAdd(aLine,{"D4_OP" ,"00130301001" ,NIL})
aAdd(aLine,{"D4_COD" ,"MP01" ,NIL})
aAdd(aLine,{"D4_LOCAL" ,"01" ,NIL})
aAdd(aLine,{"D4_DATA" ,CtoD("18/09/2018"),NIL})
aAdd(aLine,{"D4_QTDEORI",10 ,NIL})
aAdd(aLine,{"D4_QUANT" ,10 ,NIL})
aAdd(aLine,{"D4_TRT" ,"001" ,NIL})
//Adiciona a linha do empenho no array de itens.
aAdd(aItens,aLine)
//Adiciona novo empenho com utilização de Lote.
//A data de validade do lote é preenchida automaticamente pelo programa e não precisa ser enviada no array.
aLine := {}
aAdd(aLine,{"D4_OP" ,"00130301001" ,NIL})
aAdd(aLine,{"D4_COD" ,"MP02" ,NIL})
aAdd(aLine,{"D4_LOCAL" ,"01" ,NIL})
aAdd(aLine,{"D4_DATA" ,CtoD("18/09/2018"),NIL})
aAdd(aLine,{"D4_QTDEORI",3 ,NIL})
aAdd(aLine,{"D4_QUANT" ,3 ,NIL})
aAdd(aLine,{"D4_LOTECTL","L1" ,NIL})
aAdd(aLine,{"D4_TRT" ,"002" ,NIL})
//Adiciona a linha do empenho no array de itens.
aAdd(aItens,aLine)
//Adiciona novo empenho com endereço e lote
aLine := {}
aAdd(aLine,{"D4_OP" ,"00130301001" ,NIL})
aAdd(aLine,{"D4_COD" ,"MP03" ,NIL})
aAdd(aLine,{"D4_LOCAL" ,"01" ,NIL})
aAdd(aLine,{"D4_DATA" ,CtoD("17/09/2018"),NIL})
aAdd(aLine,{"D4_QTDEORI",10 ,NIL})
aAdd(aLine,{"D4_QUANT" ,10 ,NIL})
aAdd(aLine,{"D4_LOTECTL","L1" ,NIL})
aAdd(aLine,{"D4_TRT" ,"003" ,NIL})
aAdd(aLine,{"D4_ROTEIRO","01" ,NIL})
//Informações do endereço
aEnder := {}
aLineEnder := {}
aAdd(aLineEnder,{"DC_LOCALIZ","END01",Nil})
aAdd(aLineEnder,{"DC_QUANT" ,5 ,Nil})
//Primeiro endereço que será utilizado
aAdd(aEnder,aLineEnder)
aLineEnder := {}
aAdd(aLineEnder,{"DC_LOCALIZ","END02",Nil})
aAdd(aLineEnder,{"DC_QUANT" ,5 ,Nil})
//Segundo endereço que será utilizado
aAdd(aEnder,aLineEnder)
//Adiciona os endereços na linha do empenho
aAdd(aLine,{"AUT_D4_END",aEnder,Nil})
//Adiciona a linha do empenho no array de itens.
aAdd(aItens,aLine)
//Executa o MATA381, com a operação de Inclusão.
MSExecAuto({|x,y,z| mata381(x,y,z)},aCab,aItens,3)
If lMsErroAuto
//Se ocorrer erro.
MostraErro()
Else
Alert("Incluído com sucesso.")
EndIf
Return |