Tempo aproximado para leitura: 00:02:00 min
Dúvida
Qual exemplo de ExecAuto dos tipos 3, 4 e 7 da nota de débito (tpNFDebito = 06)?
Ambiente
Cross Segmentos - Backoffice Protheus - SIGAFAT - Todas versões
Solução
User Function MyMata600()
Local jFld600 := JsonObject():new()
Private oModelNCND := Nil
Private jDocRef := JsonObject():new()
RpcSetEnv('T1','D MG 01', 'ADMIN','1234')
jFld600["F2_TPCOMPL"] := "7"
jFld600["F2_SERIE"] := "001"
jFld600["A1_COD"] := "FAT001"
jFld600["A1_LOJA"] := "01"
//INICIA AS VARIAVEIS PARA REALIZAR A EXECAUTO DO MATA600
A600IniObj(jFld600)
oModelNCND := FwLoadModel('MATA600')
//SETA A OPERACAO PARA INCLUSAO DA NF
oModelNCND:SetOperation(3)
oModelNCND:Activate()
If oModelNCND:IsActive()
//CABEÇALHO
oModelNCND:SetValue( "CABMASTER" , "F2_TPCOMPL" , jFld600["F2_TPCOMPL"])
oModelNCND:LoadValue( "CABMASTER" , "F2_CLIENTE" , jFld600["A1_COD"]) //**IMPORTANTE ESSE CAMPO DEVE SER UTILIZADO SOMENTE LOADVALUE PARA PREENCHIMENTO
oModelNCND:SetValue( "CABMASTER" , "F2_LOJA" , jFld600["A1_LOJA"])
oModelNCND:SetValue( "CABMASTER" , "F2_COND" , "000")
oModelNCND:SetValue( "CABMASTER" , "F2_CODA1U" , "000001")
//ITENS
oModelNCND:SetValue( "ITENSDETAIL" , "D2_ITEM" , "01")
oModelNCND:SetValue( "ITENSDETAIL" , "D2_COD" , "FAT001 ")
oModelNCND:SetValue( "ITENSDETAIL" , "D2_QUANT" , 1)
oModelNCND:SetValue( "ITENSDETAIL" , "D2_PRCVEN" , 1000)
oModelNCND:SetValue( "ITENSDETAIL" , "D2_TOTAL" , 1000)
oModelNCND:SetValue( "ITENSDETAIL" , "D2_TES" , "999")
oModelNCND:SetValue( "ITENSDETAIL" , "D2_CF" , "5101 ")
oModelNCND:SetValue( "ITENSDETAIL" , "D2_LOCAL" , "01")
//DOCUMENTOS DE REFERENCIA
jDocRef["itens"] := {JsonObject():new()}
jDocRef["itens"][1]["item"] := "01" //Código do item da nota de débito
jDocRef["itens"][1]["produto"] := "FAT001 " //Código do produto da nota de débito
jDocRef["itens"][1]["documentos"] :={JsonObject():new()}
jDocRef["itens"][1]["documentos"][1]["item"] := "0001" //Item da nota referenciada
jDocRef["itens"][1]["documentos"][1]["documento"] := "888888888" //Número da nota referenciada
jDocRef["itens"][1]["documentos"][1]["serie"] := "888" //Série da nota referenciada
jDocRef["itens"][1]["documentos"][1]["cliente"] := "FAT001" //Código do Cliente da nota referenciada
jDocRef["itens"][1]["documentos"][1]["loja"] := "01" //Código da Loja do Cliente da nota referenciada
jDocRef["itens"][1]["documentos"][1]["chave"] := "123 " //Chave NFe do documento referenciado
jDocRef["itens"][1]["documentos"][1]["itemxml"] := "0001" //Item XML utilizado apenas para notas de debito 4 (Campo D2_ITEM) e 7 (Campo D1_ITXML).
If oModelNCND:VldData()
oModelNCND:CommitData()
ConOut('Registros Incluidos com Sucesso !')
Else
MostraErro()
EndIf
EndIf
oModelNCND:Destroy()
FwFreeObj(oModelNCND)
Return
Exclusão:
User Function MyMata600() Local jParam := JsonObject():new()
Local jFld600 := JsonObject():new()
Local cDoc := "FIN216 " //Número da nota de débito
Local cSerie := "001" //Série da nota débito
Local cCli := "FAT001" //Código do Cliente
Local cLoja := "01" //Loja do Cliente
Private oModelNCND := Nil
Private jDocRef := Nil
RpcSetEnv('T1','D MG 01', 'ADMIN','1234')
DbSelectArea("SF2")
SF2->(DbSetOrder(1))
If SF2->(DbSeek(FwxFilial("SF2") + cDoc + cSerie + cCli + cLoja))
jFld600["F2_DOC"] := SF2->F2_DOC
jFld600["F2_SERIE"] := SF2->F2_SERIE
jFld600["F2_CLIENTE"] := SF2->F2_CLIENTE
jFld600["F2_LOJA"] := SF2->F2_LOJA
//INICIA AS VARIAVEIS PARA REALIZAR A EXECAUTO DO MATA600
A600IniObj(jFld600)
jParam['billBranch'] := SF2->F2_FILIAL
jParam['participantCode'] := SF2->F2_CLIENTE
jParam['participantUnit'] := SF2->F2_LOJA
jParam['documentBranch'] := SF2->F2_FILIAL
jParam['documentNumber'] := SF2->F2_DOC
jParam['documentSeries'] := SF2->F2_SERIE
jParam['mainSourceTable'] := "SF2"
jParam['totalTitulos'] := SF2->F2_VALBRUT
jParam['identification'] := {}
AADD(jParam['identification'],"978cd922637740008E3671881293da36" ) // FK7_IDDOC - Identificadores (chave) dos títulos (RA/PA)
//SETA O DOCUMENTOS DE REFERENCIA
SetJVAdt(jParam)
oModelNCND := FwLoadModel('MATA600')
//SETA A OPERACAO PARA EXCLUSAO DA NF
oModelNCND:SetOperation(5)
oModelNCND:Activate()
If oModelNCND:IsActive()
If oModelNCND:VldData()
oModelNCND:CommitData()
ConOut('Registros Deletados com Sucesso !')
Else
MostraErro()
EndIf
EndIf
oModelNCND:Destroy()
FwFreeObj(oModelNCND)
EndIf
Return
Saiba mais:
0 Comentários