Tempo aproximado para leitura: 00:10:00min
Dúvida
Como posso criar Rotina Automática MATA103 para documento de Guarda Fiscal para futura classificação?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Protheus) - Gestão de Compras - Versão 12
Solução
Siga o exemplo abaixo:
//GUARDA FISCAL - GRAVAR DADOS DA CLASSIFICAÇÃO DO DOCUMENTO PARA FUTURA FINALIZAÇÃO DA CLASSIFICAÇÃO
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function EXEC103()
Local aCab := {}
Local aItem := {}
Local aItens := {}
Local nOpc := 3
Local cNum := ""
Local nI := 0
Local nX := 0
Local nReg := 1
Local cInicio := Time()
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
Private lTemF1GFE := .F.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "COM" FUNNAME "MATA103"
Conout( Replicate( '=', 30 ))
Conout("Inicio: " + cInicio)
For nI := 1 To nReg
lMsErroAuto := .F.
aCab := {}
aItem := {}
aItens := {}
nOpc := 3
If nOpc == 3
cNum := GetSxeNum("SF1","F1_DOC")
SF1->(dbSetOrder(1))
While SF1->(dbSeek(xFilial("SF1")+cNum))
ConfirmSX8()
cNum := GetSxeNum("SF1","F1_DOC")
EndDo
ElseIf nOpc == 4 .Or. nOpc == 5
cNum := "COMSP137 "
EndIf
Conout("Documento: " + cNum)
aadd( aCab, { "F1_FORMUL" , "N" ,NIL } )
aadd( aCab, { "F1_DOC" , cNum ,NIL } )
aadd( aCab, { "F1_SERIE" , "1 " ,NIL } )
aadd( aCab, { "F1_FORNECE" , "000001" ,NIL } )
aadd( aCab, { "F1_LOJA" , "01" ,NIL } )
aadd( aCab, { "F1_EMISSAO" , DDATABASE ,NIL } )
aadd( aCab, { "F1_DTDIGIT" , DDATABASE ,NIL } )
aadd( aCab, { "F1_TIPO" , "N" ,NIL } )
aadd( aCab, { "F1_ESPECIE" , "NFE" ,NIL } )
aadd( aCab, { "F1_COND" , "000" ,NIL } )
cProd1 := "000001"
cItem := StrZero(nX,TamSx3("D1_ITEM")[1])
aItem := {}
aadd( aItem, { "D1_ITEM" , cItem , 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" , 10 , NIL } )
aadd( aItem, { "D1_VUNIT" , 1000 , NIL } )
aadd( aItem, { "D1_TOTAL" , 10000 , NIL } )
aAdd(aItens,aItem)
MSExecAuto( { |x,y,z| MATA140( x, y, z ) }, aCab, aItens, nOpc ) // Inclusão Pré Nota
If !lMsErroAuto
ConOut( "Incluido Pre Nota: " + cNum )
aItens := {}
aItem := {}
aadd( aItem, { "D1_ITEM" , cItem , 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" , 10 , NIL } )
aadd( aItem, { "D1_VUNIT" , 1500 , NIL } )
aadd( aItem, { "D1_TOTAL" , 15000 , NIL } )
aadd( aItem, { "D1_TES" , "001" , NIL } )
aAdd(aItens,aItem)
nOpc := 4 //Classificação
lGrvGF := .T.
MSExecAuto( { |a, b, c, d| MATA103( a, b, c, , , , , , , , , , , , , d ) }, aCab, aItens, nOpc, lGrvGF ) // Realiza a gravação dos dados alterados sem finalizar a Classificação
If !lMsErroAuto
ConOut( "Classificado Documento Fiscal: " + cNum )
Else
MostraErro()
ConOut( "Erro na inclusao!" )
Exit
EndIf
Else
MostraErro()
ConOut( "Erro na inclusao!" )
Exit
EndIf
Next nI
ConOut("Fim: " + Time())
Conout( Replicate( '=', 30 ))
RESET ENVIRONMENT
Return .T.
Saiba Mais:
PCOM12003 - Documento de Entrada (Rotina Automática MATA103 - EXECAUTO)
Artigos Materiais - Compras (SIGACOM)
0 Comentários