Histórico da Página
...
cNF - Tipo: Caractere - Número do Documento de Saída
06. EXEMPLO 1
Bloco de código | ||
---|---|---|
| ||
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" USER Function MyNFS2NFS() Local aCabs := {} Local aItens := {} Local aStruSF2 := {} Local aStruSD2 := {} Local nX := 1 Local aDocOri := {} Local bFiscalSF2:= {|| .T.} Local bFiscalSD2:= {|| .T.} Local cNF := "" Local cDoc := "" Local cSerie := "A " Local cTipoNF := "N" Local cCliente := "000001" Local cLoja := "01" Local cProd := "IPI1" Local cTES := "802" Local cCondPgto := "001" PRIVATE lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "FAT" TABLES "SF2","SD2","SA1","SA2","SB1","SB2","SF4","SED","SE1" aStruSF2 := SF2->(dbStruct()) //Montagem do cabeçalho do Documento Fiscal nF2FILIAL := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_FILIAL"}) nF2TIPO := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_TIPO"}) nF2DOC := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_DOC"}) nF2SERIE := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_SERIE"}) nF2EMISSAO := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_EMISSAO"}) nF2CLIENTE := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_CLIENTE"}) nF2LOJA := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_LOJA"}) nF2CLIENT := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_CLIENT"}) nF2LOJENT := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_LOJENT"}) nF2TIPOCLI := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_TIPOCLI"}) nF2COND := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_COND"}) nF2DTDIGIT := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_DTDIGIT"}) nF2EST := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_EST"}) nF2UFORIG := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_UFORIG"}) nF2UFDEST := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_UFDEST"}) nF2VALMERC := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_VALMERC"}) For nX := 1 To Len(aStruSF2) If aStruSF2[nX][2] $ "C/M" Aadd(aCabs,"") ElseIf aStruSF2[nX][2] == "N" Aadd(aCabs,0) ElseIf aStruSF2[nX][2] == "D" Aadd(aCabs,CtoD(" / / ")) ElseIf aStruSF2[nX][2] == "L" Aadd(aCabs,.F.) EndIf Next nX dbSelectArea("SA1") dbSetOrder(1) dbSeek(xFilial("SA1") + cCliente + cLoja) aCabs[nF2FILIAL] := xFilial("SF2") aCabs[nF2TIPO] := cTipoNF aCabs[nF2DOC] := cDoc aCabs[nF2SERIE] := cSerie aCabs[nF2EMISSAO] := dDataBase aCabs[nF2CLIENTE] := SA1->A1_COD aCabs[nF2LOJA] := SA1->A1_LOJA aCabs[nF2CLIENT] := SA1->A1_COD aCabs[nF2LOJENT] := SA1->A1_LOJA aCabs[nF2TIPOCLI] := SA1->A1_TIPO aCabs[nF2COND] := cCondPgto aCabs[nF2DTDIGIT] := dDataBase aCabs[nF2EST] := SA1->A1_EST aCabs[nF2UFORIG] := SA1->A1_EST aCabs[nF2UFDEST] := SA1->A1_EST aCabs[nF2VALMERC] := 1000 aStruSD2 := SD2->(dbStruct()) //Montagem dos itens do Documento Fiscal nD2FILIAL := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_FILIAL"}) nD2DOC := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_DOC"}) nD2SERIE := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_SERIE"}) nD2CLIENTE := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_CLIENTE"}) nD2LOJA := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_LOJA"}) nD2EMISSAO := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_EMISSAO"}) nD2TIPO := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_TIPO"}) nD2ITEM := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_ITEM"}) nD2CF := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_CF"}) nD2COD := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_COD"}) nD2UM := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_UM"}) nD2QUANT := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_QUANT"}) nD2PRCVEN := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_PRCVEN"}) nD2PRUNIT := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_PRUNIT"}) nD2TOTAL := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_TOTAL"}) nD2LOCAL := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_LOCAL"}) nD2TES := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_TES"}) aAdd(aItens, {}) nPos := Len(aItens) For nX := 1 To Len(aStruSD2) If aStruSD2[nX][2]$"C/M" aAdd(aItens[nPos],"") ElseIf aStruSD2[nX][2]=="D" aAdd(aItens[nPos],CToD("")) ElseIf aStruSD2[nX][2]=="N" aAdd(aItens[nPos],0) ElseIf aStruSD2[nX][2]=="L" aAdd(aItens[nPos],.T.) EndIf Next nX For nX := 1 to Len(aItens) AADD(aDocOri,0) Next dbSelectArea("SF4") dbSetOrder(1) dbSeek(xFilial("SF4") + cTES) dbSelectArea("SB1") dbSetOrder(1) dbSeek(xFilial("SB1") + cProd) aItens[Len(aItens),nD2FILIAL] := xFilial("SD2") aItens[Len(aItens),nD2DOC] := cDoc aItens[Len(aItens),nD2SERIE] := cSerie aItens[Len(aItens),nD2CLIENTE] := SA1->A1_COD aItens[Len(aItens),nD2LOJA] := SA1->A1_LOJA aItens[Len(aItens),nD2EMISSAO] := dDataBase aItens[Len(aItens),nD2TIPO] := cTipoNF aItens[Len(aItens),nD2ITEM] := "01" aItens[Len(aItens),nD2CF] := SF4->F4_CF aItens[Len(aItens),nD2COD] := SB1->B1_COD aItens[Len(aItens),nD2UM] := SB1->B1_UM aItens[Len(aItens),nD2QUANT] := 1 aItens[Len(aItens),nD2PRCVEN] := 1000 aItens[Len(aItens),nD2TOTAL] := 1000 aItens[Len(aItens),nD2PRUNIT] := 1000 aItens[Len(aItens),nD2LOCAL] := SB1->B1_LOCPAD aItens[Len(aItens),nD2TES] := SF4->F4_CODIGO //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Parametros da funcao automatica: ³ //³ExpC1: Serie do Documento de Origem ³ //³ExpC2: Numero do Documento de Origem ³ //³ExpC3: Cliente/Fornecedor do documento do origem ³ //³ExpC4: Loja do Documento de origem ³ //³ExpC5: Serie do Documento a ser gerado ³ //³ExpL6: Mostra Lct.Contabil (OPC) ³ //³ExpL7: Aglutina Lct.Contabil (OPC) ³ //³ExpL8: Contabiliza On-Line (OPC) ³ //³ExpL9: Contabiliza Custo On-Line (OPC) ³ //³ExpLA: Reajuste de preco na nota fiscal (OPC) ³ //³ExpNB: Tipo de Acrescimo Financeiro (OPC) ³ //³ExpNC: Tipo de Arredondamento (OPC) ³ //³ExpLD: Atualiza Amarracao Cliente x Produto (OPC) ³ //³ExplE: Cupom Fiscal (OPC) ³ //³ExpBF: CodeBlock de Selecao do SD2 (OPC) ³ //³ Parametros do codeblock ³ //³ ExpC1: Alias do arquivo SD2 ³ //³ ExpC2: Alias do arquivo SF4 ³ //³ExpBG: CodeBlock a ser executado para o SD2 (OPC) ³ //³ Parametros do codeblock ³ //³ ExpN1:[1] Apos a copia do item do documento de saida ³ //³ [2] Apos a checagem da atualizacoes anteriores ³ //³ ExpA2:Array com o conteudo dos campos do SD2 ³ //³ ExpC3:Alias do SD2 (OPC) ³ //³ ExpC4:Alias do SF4 (OPC) ³ //³ ExpC5:Alias do SB1 (OPC) ³ //³ExpBH: CodeBlock a ser executado para o SF2 (OPC) ³ //³ ExpN1:[1] Apos a copia do item do documento de saida ³ //³ [2] Apos a checagem da atualizacoes anteriores ³ //³ExpBI: CodeBlock a ser executado no final da transacao (OPC) ³ //³ExpAJ: Array com os Recnos do SF2 (OPC) ³ //³ Deve possuir o mesmo tamanho da ExpAl (OPC) ³ //³ExpAL: Array com os itens do SD2 (OPC) ³ //³ [1] Item do SD2 (OPC) ³ //³ [2] Conteudo dos campos na ordem da estrutura (OPC) ³ //³ExpAM: Array com os dados do SF2 (OPC) ³ //³ [n] Conteudo posicional do campo ) ³ //³ Somente é necessario se não houver um documento de ³ //³ origem. ³ //³ExpAN: Calculo Fiscal (OPC) ³ //³ Desabilita o calculo fiscal pois as informacoes ja ³ //³ foram passadas nos campos do SD2 e SF2. ³ //³ExpAO: Codigo do cliente de Entrega para calculo dos impostos³ //³ExpAP: Codigo da loja de Entrega para calculo dos impostos ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ cNF := MaNfs2Nfs(/*cSerOri*/ "",; //Serie do Documento de Origem /*cNumORI*/ "",; //Numero do Documento de Origem /*cClieFor*/ "",; //Cliente/Fornecedor do documento do origem /*cLoja*/ "",; //Loja do Documento de origem /*cSerieNFS*/ cSerie,; //Serie do Documento a ser gerado /*lMostraCtb*/ NIL,; //Mostra Lct.Contabil (OPC) /*lAglutCtb*/ NIL,; //Aglutina Lct.Contabil (OPC) /*lCtbOnLine*/ NIL,; //Contabiliza On-Line (OPC) /*lCtbCusto*/ NIL,; //Contabiliza Custo On-Line (OPC) /*lReajusta*/ NIL,; //Reajuste de preco na nota fiscal (OPC) /*nCalAcrs*/ NIL,; //Tipo de Acrescimo Financeiro (OPC) /*nArredPrcLis*/ NIL,; //Tipo de Arredondamento (OPC) /*lAtuSA7*/ NIL,; //Atualiza Amarracao Cliente x Produto (OPC) /*lECF*/ NIL,; //Cupom Fiscal (OPC) /*bFilSD2*/ NIL,; //CodeBlock de Selecao do SD2 (OPC) /*bSD2*/ NIL,; //CodeBlock a ser executado para o SD2 (OPC) /*bSF2*/ NIL,; //CodeBlock a ser executado para o SF2 (OPC) /*bTTS*/ NIL,; //CodeBlock a ser executado no final da transacao (OPC) /*aDocOri*/ aDocOri,; //Array com os Recnos do SF2 (OPC) /*aItemOri*/ aItens,; //Array com os itens do SD2 (OPC) /*aSF2*/ aCabs,; //Array com os dados do SF2 (OPC) /*lNoFiscal*/ .F.,; //Calculo Fiscal - Desabilita o calculo fiscal pois as informacoes ja foram passadas nos campos do SD2 e SF2 (OPC) /*bFiscalSF2*/ bFiscalSF2,;//CodeBlock para tratamento do fiscal - SF2 (OPC) /*bFiscalSD2*/ bFiscalSD2,;//CodeBlock para tratamento do fiscal - SD2 (OPC) /*bFatSE1*/ NIL,; //CodeBlock para tratamento do fiscal - SE1 (OPC) /*cNumNFS*/ cDoc) //Numero do documento fiscal (OPC) If !Empty(cNF) Conout("Nota Fiscal: " + cNF + ", gerada com sucesso!!!") EndIf RESET ENVIRONMENT Return .T. |
07.
...
EXEMPLO 2
Bloco de código | ||
---|---|---|
| ||
//Informando TES com poder de terceiro//
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
USER Function MyNFS2NFS()
Local aCabs := {}
Local aItens := {}
Local aStruSF2 := {}
Local aStruSD2 := {}
Local aDocOri := {}
Local nItemNF := 1
Local nX := 1
Local bFiscalSF2:= {|| .T.}
Local bFiscalSD2:= {|| .T.}
Local cNF := ""
Local cDoc := ""
Local cSerie := "1 "
Local cTipoNf := "B "
Local nTotNF := 9100
Local cForn := "0001 "
Local cLoja := "01"
Local cCondPg := "000"
Local cTes := "502"
Local cDocD := "FAT007"
Local cDocAt := "FAT009"
Local cFiltro := ""
//-- Variáveis utilizadas para o controle de erro da rotina automática
Private lMsErroAuto := .F.
Private lAutoErrNoFile := .T.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "FAT" TABLES "SF2","SD2","SA2","SA2","SB1","SB2","SF4","SED","SE1"
DbSelectArea('SA2')
SA2->(DbSetOrder(1))
IF !SA2->(DbSeek(xFilial("SA2") + cForn + cLoja ))
MsgInfo("SA2 NAO ENCONTRADO")
ENDIF
//MONTAGEM DA ESTRUTURA DO ARRAY CABECALHO
aStruSF2 := SF2->(dbStruct())
//Montagem do cabeçalho do Documento Fiscal
nF2FILIAL := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_FILIAL"})
nF2TIPO := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_TIPO"})
nF2DOC := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_DOC"})
nF2SERIE := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_SERIE"})
nF2EMISSAO := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_EMISSAO"})
nF2CLIENTE := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_CLIENTE"})
nF2LOJA := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_LOJA"})
nF2CLIENT := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_CLIENT"})
nF2LOJENT := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_LOJENT"})
nF2TIPOCLI := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_TIPOCLI"})
nF2COND := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_COND"})
nF2DTDIGIT := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_DTDIGIT"})
nF2EST := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_EST"})
nF2UFORIG := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_UFORIG"})
nF2UFDEST := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_UFDEST"})
nF2VALMERC := Ascan(aStruSF2,{|x| AllTrim(x[1]) == "F2_VALMERC"})
For nX := 1 To Len(aStruSF2)
If aStruSF2[nX][2] $ "C/M"
Aadd(aCabs,"")
ElseIf aStruSF2[nX][2] == "N"
Aadd(aCabs,0)
ElseIf aStruSF2[nX][2] == "D"
Aadd(aCabs,CtoD(" / / "))
ElseIf aStruSF2[nX][2] == "L"
Aadd(aCabs,.F.)
EndIf
Next nX
aCabs[nF2FILIAL] := xFilial("SF2")
aCabs[nF2TIPO] := cTipoNf
aCabs[nF2DOC] := cDoc
aCabs[nF2SERIE] := cSerie
aCabs[nF2EMISSAO] := DATE()
aCabs[nF2CLIENTE] := SA2->A2_COD
aCabs[nF2LOJA] := SA2->A2_LOJA
aCabs[nF2CLIENT] := SA2->A2_COD
aCabs[nF2LOJENT] := SA2->A2_LOJA
aCabs[nF2TIPOCLI] := SA2->A2_TIPO
aCabs[nF2COND] := cCondPg
aCabs[nF2DTDIGIT] := DATE()
aCabs[nF2EST] := "SP"
aCabs[nF2UFORIG] := "SP"
aCabs[nF2UFDEST] := "SP"
aCabs[nF2VALMERC] := nTotNF
//MONTAGEM DA ESTRUTURA DO ARRAY DOS ITENS
aStruSD2 := SD2->(dbStruct())
nD2FILIAL := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_FILIAL"})
nD2DOC := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_DOC"})
nD2SERIE := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_SERIE"})
nD2CLIENTE := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_CLIENTE"})
nD2LOJA := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_LOJA"})
nD2EMISSAO := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_EMISSAO"})
nD2TIPO := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_TIPO"})
nD2ITEM := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_ITEM"})
nD2CF := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_CF"})
nD2COD := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_COD"})
nD2UM := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_UM"})
nD2QUANT := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_QUANT"})
nD2PRCVEN := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_PRCVEN"})
nD2PRUNIT := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_PRUNIT"})
nD2TOTAL := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_TOTAL"})
nD2LOCAL := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_LOCAL"})
nD2TES := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_TES"})
//ADD INFORMACOES ORIGEM
nD2Pedido := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_PEDIDO"})
nD2NfOri := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_NFORI"})
nD2SeOri := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_SERIORI"})
nD2ItOri := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_ITEMORI"})
nD2IdB6 := Ascan(aStruSD2,{|x| AllTrim(x[1]) == "D2_IDENTB6"})
SD1->(DbgoTop())
SD1->(DbSetOrder(4))
cFiltro := "SD1->D1_FILIAL == '" +xFilial("SD1")+ "'"
cFiltro+=" .And. SD1->D1_DOC >= '"+cDocD+"'"
cFiltro+=" .And. SD1->D1_DOC <= '"+cDocAt+"'"
SD1->(DbSetFilter({|| &cFiltro}, cFiltro))
SD1->(DbGotop())
While (!SD1->(EOF()))
aAdd(aItens, {})
For nX := 1 To Len(aStruSD2)
If aStruSD2[nX][2]$"C/M"
aAdd(aItens[nItemNF],"")
ElseIf aStruSD2[nX][2]=="D"
aAdd(aItens[nItemNF],CToD(""))
ElseIf aStruSD2[nX][2]=="N"
aAdd(aItens[nItemNF],0)
ElseIf aStruSD2[nX][2]=="L"
aAdd(aItens[nItemNF],.T.)
EndIf
Next nX
AADD(aDocOri,0)
aItens[nItemNF,nD2FILIAL] := SD1->D1_FILIAL
aItens[nItemNF,nD2DOC] := cDoc
aItens[nItemNF,nD2SERIE] := cSerie
aItens[nItemNF,nD2CLIENTE] := SA2->A2_COD
aItens[nItemNF,nD2LOJA] := SA2->A2_LOJA
aItens[nItemNF,nD2EMISSAO] := DATE()
aItens[nItemNF,nD2TIPO] := cTipoNf
aItens[nItemNF,nD2ITEM] := PadR(STRZERO(nItemNF,3),GetSx3Cache("D2_SERIE","X3_TAMANHO"))
aItens[nItemNF,nD2CF] := SD1->D1_CF
aItens[nItemNF,nD2COD] := SD1->D1_COD
aItens[nItemNF,nD2UM] := SD1->D1_UM
aItens[nItemNF,nD2QUANT] := SD1->D1_QUANT
aItens[nItemNF,nD2PRCVEN] := SD1->D1_VUNIT
aItens[nItemNF,nD2TOTAL] := SD1->D1_TOTAL
aItens[nItemNF,nD2PRUNIT] := SD1->D1_VUNIT
aItens[nItemNF,nD2LOCAL] := SD1->D1_LOCAL
aItens[nItemNF,nD2TES] := cTes
aItens[nItemNF,nD2Pedido] := SD1->D1_PEDIDO
//ADD INFORMACOES ORIGEM
aItens[nItemNF,nD2NfOri] := SD1->D1_DOC
aItens[nItemNF,nD2SeOri] := SD1->D1_SERIE
aItens[nItemNF,nD2ItOri] := SD1->D1_ITEM
aItens[nItemNF,nD2IdB6] := SD1->D1_IDENTB6
SD1->(DbSkip())
nItemNF++
END
cNF := MaNfs2Nfs(/*cSerOri*/ "" ,; //Serie do Documento de Origem
/*cNumORI*/ "",; //Numero do Documento de Origem
/*cClieFor*/ cForn,; //Cliente/Fornecedor do documento do origem
/*cLoja*/ cLoja,; //Loja do Documento de origem
/*cSerieNFS*/ cSerie,; //Serie do Documento a ser gerado
/*lMostraCtb*/ NIL,; //Mostra Lct.Contabil (OPC)
/*lAglutCtb*/ NIL,; //Aglutina Lct.Contabil (OPC)
/*lCtbOnLine*/ NIL,; //Contabiliza On-Line (OPC)
/*lCtbCusto*/ NIL,; //Contabiliza Custo On-Line (OPC)
/*lReajusta*/ NIL,; //Reajuste de preco na nota fiscal (OPC)
/*nCalAcrs*/ NIL,; //Tipo de Acrescimo Financeiro (OPC)
/*nArredPrcLis*/ NIL,; //Tipo de Arredondamento (OPC)
/*lAtuSA7*/ NIL,; //Atualiza Amarracao Cliente x Produto (OPC)
/*lECF*/ NIL,; //Cupom Fiscal (OPC)
/*bFilSD2*/ NIL,; //CodeBlock de Selecao do SD2 (OPC)
/*bSD2*/ NIL,; //CodeBlock a ser executado para o SD2 (OPC)
/*bSF2*/ NIL,; //CodeBlock a ser executado para o SF2 (OPC)
/*bTTS*/ NIL,; //CodeBlock a ser executado no final da transacao (OPC)
/*aDocOri*/ aDocOri,; //Array com os Recnos do SF2 (OPC)
/*aItemOri*/ aItens,; //Array com os itens do SD2 (OPC)
/*aSF2*/ aCabs,; //Array com os dados do SF2 (OPC)
/*lNoFiscal*/ .F.,; //Calculo Fiscal - Desabilita o calculo fiscal pois as informacoes ja foram passadas nos campos do SD2 e SF2 (OPC)
/*bFiscalSF2*/ bFiscalSF2,;//CodeBlock para tratamento do fiscal - SF2 (OPC)
/*bFiscalSD2*/ bFiscalSD2,;//CodeBlock para tratamento do fiscal - SD2 (OPC)
/*bFatSE1*/ NIL,; //CodeBlock para tratamento do fiscal - SE1 (OPC)
/*cNumNFS*/ cDoc) //Numero do documento fiscal (OPC)
If !Empty(cNF)
Conout("Nota Fiscal: " + cNF + ", gerada com sucesso!!!")
EndIf
RESET ENVIRONMENT
Return .T.
|
08. DEMAIS INFORMAÇÕES
Não há.
09
...
Não há.
...
. ASSUNTOS RELACIONADOS
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas