Tempo aproximado para leitura: 00:10:00 min
Dúvida
Como posso criar Rotina Automática MATA103 para documento do Tipo Normal Vincualdo ao Pedido de Compras?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - SIGACOM - Versão 12
Solução
Siga o exemplo abaixo:
//DOCUMENTO TIPO NORMAL VINCULADO AO PEDIDO DE COMPRAS
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function EXEC103()
Local aCab := {}
Local aItem := {}
Local aItens := {}
Local aAutoImp := {}
Local aItensRat := {}
Local aCodRet := {}
Local aParamAux := {}
Local nOpc := 3
Local cNum := ""
Local nI := 0
Local nX := 0
Local nReg := 1
Conout("Inicio: " + Time())
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
PREPARE ENVIRONMENT EMPRESA "32" FILIAL "6597" MODULO "COM" FUNNAME "MATA103"
cNum := GetSxeNum("SF1","F1_DOC")
SF1->(dbSetOrder(1))
While SF1->(dbSeek(xFilial("SF1")+cNum))
ConfirmSX8()
cNum := GetSxeNum("SF1","F1_DOC")
EndDo
//Cabeçalho
aadd(aCab,{"F1_TIPO" ,"N" ,NIL})
aadd(aCab,{"F1_FORMUL" ,"N" ,NIL})
aadd(aCab,{"F1_DOC" ,cNum ,NIL})
aadd(aCab,{"F1_SERIE" ,"1 " ,NIL})
aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL})
aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL})
aadd(aCab,{"F1_FORNECE" ,"001 " ,NIL})
aadd(aCab,{"F1_LOJA" ,"01" ,NIL})
aadd(aCab,{"F1_ESPECIE" ,"CTE" ,NIL})
aadd(aCab,{"F1_COND" ,"001" ,NIL})
aadd(aCab,{"F1_DESPESA" ,10 ,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})
//Itens
For nX := 1 To 1
aItem := {}
aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL})
aadd(aItem,{"D1_COD" ,PadR("0001",TamSx3("D1_COD")[1]) ,NIL})
aadd(aItem,{"D1_UM" ,"UN" ,NIL})
aadd(aItem,{"D1_LOCAL" ,"01" ,NIL})
aadd(aItem,{"D1_QUANT" ,1 ,NIL})
aadd(aItem,{"D1_VUNIT" ,7508.33 ,NIL})
aadd(aItem,{"D1_TOTAL" ,7508.33 ,NIL})
aadd(aItem,{"D1_TES" ,"001" ,NIL})
aadd(aItens,aItem)
aadd(aItens[Len(aItens)], {'D1_PEDIDO ', '000034' ,}) // Número do Pedido de Compras
aadd(aItens[Len(aItens)], {'D1_ITEMPC ', '0001' ,}) // Item do Pedido de Compras
if(nOpc == 4)//Se for classificação deve informar a variável LINPOS
aAdd(aItem, {"LINPOS" , "D1_ITEM", StrZero(nX,4)}) //ou SD1->D1_ITEM se estiver posicionado.
endIf
Next nX
//3-Inclusão / 4-Classificação / 5-Exclusão
MSExecAuto({|x,y,z,k,a,b| MATA103(x,y,z,,,,k,a,,,b)},aCab,aItens,nOpc,aParamAux,aItensRat,aCodRet)
If !lMsErroAuto
ConOut(" Incluido NF: " + cNum)
Else
MostraErro()
ConOut("Erro na inclusao!")
EndIf
ConOut("Fim: " + Time())
RESET ENVIRONMENT
Return
Saiba Mais:
PCOM12003 - Documento de Entrada (Rotina Automática MATA103 - EXECAUTO)
0 Comentários