Tempo aproximado para leitura: 00:10:00 min
Dúvida
Como posso criar Rotina Automática MATA103 para documento de Cobertura?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Protheus) - Gestão de Compras- Versão 12
Solução
Siga o exemplo abaixo:
//DOCUMENTO COBERTURA
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
#Include "Coverege.ch"
User Function EXECCOB()
Local cDocDef := "200001 "
Local cSerDef := "1 "
Local cForn := "001 "
Local cLoja := "01"
Local cProduto := "0001"
Local nQuantidad:= 2
Local cDocOri := "000130 "
Local cSerOri := "1 "
Local cSeqOri := ""
Local cTpMov := "1"
Local cCodCli := ""
Local cLojCli := ""
Local cDHOper := "1"
Local aCab103 := {}
Local aDadosCob := {}
Local cTes := "001"
Local nOpcX := 3 //3-Inclui / 5-Exclui
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM" FUNNAME "MATA103"
cDocDef := Padr(cDocDef,TamSX3("DH_DOC")[1])
cSerDef := Padr(cSerDef,TamSX3("DH_SERIE")[1])
cForn := Padr(cForn,TamSX3("DH_FORNECE")[1])
cLoja := Padr(cLoja,TamSX3("DH_LOJAFOR")[1])
cProduto := Padr(cProduto,TamSX3("DH_PRODUTO")[1])
cDocOri := Padr(cDocOri,TamSX3("DH_DOC")[1])
cSerOri := Padr(cSerOri,TamSX3("DH_SERIE")[1])
cSeqOri := Padr("0001",TamSX3("DH_ITEM")[1])
cCodCli := Padr(cCodCli,TamSX3("DH_CLIENTE")[1])
cLojCli := Padr(cLojCli,TamSX3("DH_LOJACLI")[1])
cTpMov := Padr('1',TamSX3("DH_TPMOV")[1])
cDHOper := Padr( cDHOper, TamSX3("DH_OPER")[1] )
DbSelectArea("SDH")
SDH->(DbSetOrder(2))
If SDH->(DbSeek(xFilial('SDH')+cTpMov+cSerDef+cDocDef+cSeqOri+cCodCli+cLojCli+cForn+cLoja+cDHOper))
aAdd(aCab103,{"F1_DOC" , cDocDef , Nil})
aAdd(aCab103,{"F1_SERIE" , cSerDef , Nil})
aAdd(aCab103,{"F1_TIPO" , "N" , Nil})
aAdd(aCab103,{"F1_FORNECE", cForn , Nil})
aAdd(aCab103,{"F1_LOJA" , cLoja , Nil})
aAdd(aCab103,{"F1_EMISSAO", dDataBase, Nil})
aAdd(aCab103,{"F1_DTDIGIT", dDataBase, Nil})
aAdd(aCab103,{"F1_FORMUL" , "N" , Nil})
aAdd(aCab103,{"F1_ESPECIE", "NFE" , Nil})
aAdd(aCab103,{"F1_COND" , "001" , Nil})
aAdd(aDadosCob,Array(CB_MAXCOL))
aTail(aDadosCob)[CB_DOC] := cDocOri
aTail(aDadosCob)[CB_SERIE] := cSerOri
aTail(aDadosCob)[CB_SEQ] := cSeqOri
aTail(aDadosCob)[CB_VLRUNIT] := 1000
aTail(aDadosCob)[CB_TES] := cTes
aTail(aDadosCob)[CB_REGSDH] := SDH->(Recno())
aTail(aDadosCob)[CB_PRODUTO] := cProduto
aTail(aDadosCob)[CB_QUANT] := nQuantidad
aTail(aDadosCob)[CB_BASIPI] := 0
aTail(aDadosCob)[CB_TAXIPI] := 0
aTail(aDadosCob)[CB_VALIPI] := 0
aTail(aDadosCob)[CB_BASICM] := 0
aTail(aDadosCob)[CB_TAXICM] := 0
aTail(aDadosCob)[CB_VALICM] := 0
aTail(aDadosCob)[CB_VALDES] := 0
aTail(aDadosCob)[CB_CFOP] := GetAdvFVal("SF4","F4_CF",xFilial("SF4") + cTes)
aTail(aDadosCob)[CB_LOCAL] := GetAdvFVal("SB1","B1_LOCPAD",xFilial("SB1") + cProduto)
MSExecAuto({|a,b,c,d,e,f,g| NfeNfeCob(a,b,c,d,e,f,g)},,,nOpcX,,aCab103,aDadosCob)
If lMsErroAuto
MostraErro()
Else
Conout("Inserido Cobertura: " + cDocDef)
Endif
Endif
RESET ENVIRONMENT
Return
Saiba Mais:
PCOM12003 - Documento de Entrada (Rotina Automática MATA103 - EXECAUTO)
0 Comentários