Tempo aproximado para leitura: 00:10:00min
Dúvida
Como posso criar Rotina Automática MATA103 para documento de Entrega Futura?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Protheus) - Gestão de Compras - Versão 12
Solução
Siga o exemplo abaixo:
//DOCUMENTO ENTREGA FUTURA (DHQ)
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function EXECFUT()
Local aCab := {}
Local cNum := "COM000"
Local cNum1 := "COM001"
Local aItem := {}
Local aItens := {}
Local cSerie := "100"
Local cFornec := "000005"
Local cLoja := "01"
Local cEspecie := "NFE "
Local cProd1 := "001 "
Local nX := 0
Local cTes := "043"
Local cPedido := "TIR469"
Local nOpc := 3 //3-Inclui / 5-Exclui
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" FUNNAME "MATA103"
If nOpc == 3
// Compra com Entrega Futura (simples faturamento)
aadd(aCab,{"F1_DOC" ,cNum ,NIL})
aadd(aCab,{"F1_SERIE" ,cSerie ,NIL})
aadd(aCab,{"F1_FORNECE" ,cFornec ,NIL})
aadd(aCab,{"F1_LOJA" ,cLoja ,NIL})
aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL})
aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL})
aadd(aCab,{"F1_TIPO" ,"N" ,NIL})
aadd(aCab,{"F1_FORMUL" ,"N" ,NIL})
aadd(aCab,{"F1_ESPECIE" ,cEspecie ,NIL})
aadd(aCab,{"F1_COND" ,"001" ,NIL})
aadd(aCab,{"F1_EST" ,"SP" ,NIL})
aadd(aCab,{"F1_DESPESA" , 0 ,NIL})
aadd(aCab,{"F1_DESCONT" , 0 ,NIL})
aadd(aCab,{"F1_SEGURO" , 0 ,NIL})
aadd(aCab,{"F1_FRETE" , 0 ,NIL})
aadd(aCab,{"F1_MOEDA" , 1 ,NIL})
aadd(aCab,{"F1_TXMOEDA" , 1 ,NIL})
aadd(aCab,{"F1_STATUS" , "A" ,NIL})
aadd(aCab,{"F1_VOLUME1",0 ,NIL})
aadd(aCab,{"F1_PLIQUI",0 ,NIL})
aadd(aCab,{"F1_PBRUTO",0 ,NIL})
For nX := 1 To 1
cProd1 :="001 "
aItem := {}
aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL})
aadd(aItem,{"D1_COD" ,PadR(cProd1,TamSx3("D1_COD")[1]) ,NIL})
aadd(aItem,{"D1_UM" ,"UN" ,NIL})
aadd(aItem,{"D1_LOCAL" ,"01" ,NIL})
aAdd(aItem, {"D1_PEDIDO" ,cPedido,Nil})
aAdd(aItem, {"D1_ITEMPC", "0001",Nil})
aadd(aItem,{"D1_QUANT" ,100 ,NIL})
aadd(aItem,{"D1_VUNIT" ,100 ,NIL})
aadd(aItem,{"D1_TOTAL" ,10000 ,NIL})
aadd(aItem,{"D1_TES" ,cTes ,NIL})
aAdd(aItens,aItem)
Next nX
MSExecAuto({|x,y,z| MATA103(x,y,z)},aCab,aItens,nOpc)
If lMsErroAuto
MostraErro()
Else
Conout("Entrega Futura incluída: " + cNum)
Endif
Endif
/***********************************************************************/
// Documento de Entrada representando a remessa da mercadoria
aCab := {}
aItem := {}
aItens := {}
nX := 0
If nOpc == 3
aadd(aCab,{"F1_DOC" ,cNum1 ,NIL})
aadd(aCab,{"F1_SERIE" ,cSerie ,NIL})
aadd(aCab,{"F1_FORNECE" ,cFornec ,NIL})
aadd(aCab,{"F1_LOJA" ,cLoja ,NIL})
aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL})
aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL})
aadd(aCab,{"F1_TIPO" ,"N" ,NIL})
aadd(aCab,{"F1_FORMUL" ,"N" ,NIL})
aadd(aCab,{"F1_ESPECIE" ,cEspecie ,NIL})
aadd(aCab,{"F1_COND" ,"001" ,NIL})
aadd(aCab,{"F1_EST" ,"SP" ,NIL})
aadd(aCab,{"F1_DESPESA" , 0 , Nil})
aadd(aCab,{"F1_DESCONT" , 0 , Nil})
aadd(aCab,{"F1_SEGURO" , 0 , Nil})
aadd(aCab,{"F1_FRETE" , 0 , Nil})
aadd(aCab,{"F1_MOEDA" , 1 , Nil})
aadd(aCab,{"F1_TXMOEDA" , 1 , Nil})
aadd(aCab,{"F1_STATUS" , "A" , Nil})
aadd(aCab,{"F1_VOLUME1",0, Nil})
aadd(aCab,{"F1_PLIQUI",0, Nil})
aadd(aCab,{"F1_PBRUTO",0, Nil})
For nX := 1 To 1
cProd1 :="001 "
aItem := {}
aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL})
aadd(aItem,{"D1_COD" ,PadR(cProd1,TamSx3("D1_COD")[1]) ,NIL})
aadd(aItem,{"D1_UM" ,"UN" ,NIL})
aadd(aItem,{"D1_LOCAL" ,"01" ,NIL})
aadd(aItem,{"D1_QUANT" ,50 ,NIL})
aadd(aItem,{"D1_VUNIT" ,100 ,NIL})
aadd(aItem,{"D1_TOTAL" ,5000 ,NIL})
aadd(aItem,{"D1_TES" ,"496" ,NIL})
aadd(aItem,{"AUT_ENTFUT", {cNum,"100","0001",0,"0001",cFornec,cLoja},Nil})//Dados para nota fiscal de origem
aAdd(aItens,aItem)
Next nX
MSExecAuto({|x,y,z| MATA103(x,y,z)},aCab,aItens,nOpc)
If lMsErroAuto
MostraErro()
Else
Conout("Remessa Entrega Futura incluida: " + cNum1)
Endif
Endif
RESET ENVIRONMENT
Return
Saiba Mais:
PCOM12003 - Documento de Entrada (Rotina Automática MATA103 - EXECAUTO)
0 Comentários