Classe hbNFeCreator

Projeto hbNFe (Nota Fiscal Eletronica/Danfe) para [x]Harbour

Moderador: Moderadores

athayde
Colaborador
Colaborador
Mensagens: 166
Registrado em: 14 Fev 2007 16:54

Classe hbNFeCreator

Mensagem por athayde »

Pessoal, deem uma olhada e comentem
Essa classe será para criar o XML atraves da programação sem ser por ini
da para compilar no harbour sem nada esse fonte apenas hbmk2 hbNFeCreator, este é apenas 1 exemplo
falta imbutir nela as regras de validação de alguns campos

Código: Selecionar todos

#include "hbclass.ch"
#include "hbcompat.ch"

CREATE CLASS hbNFeCreator
   DATA cChave        AS STRING
   DATA Ide                      EXPORTED
   DATA Emi                      EXPORTED
   DATA Dest                     EXPORTED
   DATA Retirada                 EXPORTED
   DATA Entrega                  EXPORTED
   DATA Item                     EXPORTED
   DATA Totais                   EXPORTED
	DATA Transp                   EXPORTED
	DATA Cobr                     EXPORTED
	DATA InfAdic                  EXPORTED
	DATA ObsCont                  EXPORTED
	DATA ObsFisco                 EXPORTED
	DATA ProcRef                  EXPORTED
   DATA Exporta                  EXPORTED
	DATA Compra                   EXPORTED

   DATA nItens
   DATA nDuplicatas
   DATA nObscont
   DATA nObsFisco

   METHOD New()                  CONSTRUCTOR
   METHOD AddItem()
   METHOD getCurItem()
ENDCLASS

METHOD New() CLASS hbNFeCreator
   ::nItens := 0
   ::Ide  := hbNFeCreatorIdentificacao():New()
   ::Emi  := hbNFeCreatorEmitente():New()
   ::Dest := hbNFeCreatorDestinatario():New()
   ::Item := hash()
   ::Totais := hbNFeCreatorTotais():New()
   ::Transp := hbNFeCreatorTransp():New()
   ::Cobr   := hbNFeCreatorCobranca():New()
   ::InfAdic := hbNFeCreatorInfAdic():New()
   ::ObsCont := hbNFeCreatorObsCont():New()
   ::ProcRef := hbNFeCreatorProcRef():New()
   ::Exporta := hbNFeCreatorExporta():New()
   ::Compra := hbNFeCreatorCompra():New()
RETURN Self

METHOD AddItem() CLASS hbNFeCreator
   ::nItens ++
   ::Item[::nItens] := hbNFeCreatorItem():New()
RETURN

METHOD getCurItem() CLASS hbNFeCreator
RETURN ::nItens

*
* CLASSE DA IDENTIFICACAO
*
CREATE CLASS hbNFeCreatorIdentificacao
   DATA cUF
   DATA cNF
   DATA natOp
   DATA indPag
   DATA mod
   DATA serie
   DATA nNF
   DATA dEmi
   DATA dSaiEnt
   DATA hSaiEnt
   DATA tpNF
   DATA cMunFG
   DATA NFref                 EXPORTED
   DATA tpImp
   DATA tpEmis
   DATA cDV
   DATA tpAmb
   DATA finNFe
   DATA procEmi
   DATA verProc
   DATA dhCont
   DATA xJust

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorIdentificacao
   ::cUF          := Nil
   ::cNF          := Nil
   ::natOp        := Nil
   ::indPag       := Nil
   ::mod          := Nil
   ::serie        := Nil
   ::nNF          := Nil
   ::dEmi         := CTOD('')
   ::dSaiEnt      := CTOD('')
   ::hSaiEnt      := Nil
   ::tpNF         := Nil
   ::cMunFG       := Nil
   ::NFref        := hbNFeCreatorInfref():New()
   ::tpImp        := Nil
   ::tpEmis       := Nil
   ::cDV          := Nil
   ::tpAmb        := Nil
   ::finNFe       := Nil
   ::procEmi      := Nil
   ::verProc      := "1.0.0"
   ::dhCont       := Nil
   ::xJust        := Nil
RETURN SELF

*
* CLASSE DA NF Ref.
*
CREATE CLASS hbNFeCreatorInfref
   DATA refNFe
   DATA refNF         EXPORTED
   DATA refNFP        EXPORTED
   DATA refECF        EXPORTED

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorInfref
   ::refNFe       := Nil
   ::refNF        := hbNFeCreatorInfrefNF():New()
   ::refNFP       := hbNFeCreatorInfrefNFP():New()
   ::refECF       := hbNFeCreatorInfrefECF():New()
RETURN SELF

*
* CLASSE DA NF Ref. refNF
*
CREATE CLASS hbNFeCreatorInfrefNF
   DATA cUF
   DATA AAMM
   DATA CNPJ
   DATA mod
   DATA serie
   DATA nNF

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorInfrefNF
   ::cUF   := Nil
   ::AAMM  := Nil
   ::CNPJ  := Nil
   ::mod   := Nil
   ::serie := Nil
   ::nNF   := Nil
RETURN SELF

*
* CLASSE DA NF Ref. refNFP
*
CREATE CLASS hbNFeCreatorInfrefNFP
   DATA cUF
   DATA AAMM
   DATA CNPJ
   DATA CPF
   DATA IE
   DATA mod
   DATA serie
   DATA nNF
   DATA refCTe

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorInfrefNFP
   ::cUF    := Nil
   ::AAMM   := Nil
   ::CNPJ   := Nil
   ::CPF    := Nil
   ::IE     := Nil
   ::mod    := Nil
   ::serie  := Nil
   ::nNF    := Nil
   ::refCTe := Nil
RETURN SELF

*
* CLASSE DA NF Ref. refECF
*
CREATE CLASS hbNFeCreatorInfrefECF
   DATA mod
   DATA nECF
   DATA nCOO

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorInfrefECF
   ::mod    := Nil
   ::nECF   := Nil
   ::nCOO   := Nil
RETURN SELF


*
* CLASSE DO EMISSOR
*
CREATE CLASS hbNFeCreatorEmitente
   DATA CNPJ
   DATA CPF
   DATA xNome
   DATA xFant
   DATA xLgr
   DATA nro
   DATA xBairro
   DATA cMun
   DATA xMun
   DATA UF
   DATA CEP
   DATA cPais
   DATA xPais
   DATA fone
   DATA IE
   DATA IEST
   DATA IM
   DATA CNAE
   DATA CRT

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorEmitente
   ::CNPJ        := Nil
   ::CPF         := Nil
   ::xNome       := Nil
   ::xFant       := Nil
   ::xLgr        := Nil
   ::nro         := Nil
   ::xBairro     := Nil
   ::cMun        := Nil
   ::xMun        := Nil
   ::UF          := Nil
   ::CEP         := Nil
   ::cPais       := Nil
   ::xPais       := Nil
   ::fone        := Nil
   ::IE          := Nil
   ::IEST        := Nil
   ::IM          := Nil
   ::CNAE        := Nil
   ::CRT         := Nil
RETURN SELF

*
* CLASSE DO DESTINATARIO
*
CREATE CLASS hbNFeCreatorDestinatario
   DATA CNPJ
   DATA CPF
   DATA xNome
   DATA xFant
   DATA xLgr
   DATA nro
   DATA xCpl
   DATA xBairro
   DATA cMun
   DATA xMun
   DATA UF
   DATA CEP
   DATA cPais
   DATA xPais
   DATA fone
   DATA IE
   DATA ISUF
   DATA email

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorDestinatario
   ::CNPJ        := Nil
   ::CPF         := Nil
   ::xNome       := Nil
   ::xFant       := Nil
   ::xLgr        := Nil
   ::nro         := Nil
   ::xCpl        := Nil
   ::xBairro     := Nil
   ::cMun        := Nil
   ::xMun        := Nil
   ::UF          := Nil
   ::CEP         := Nil
   ::cPais       := Nil
   ::xPais       := Nil
   ::fone        := Nil
   ::IE          := Nil
   ::ISUF        := Nil
   ::email       := Nil
RETURN SELF

*
* CLASSE DA RETIRADA
*
CREATE CLASS hbNFeCreatorRetirada
   DATA CNPJ
   DATA CPF
   DATA xNome
   DATA xLgr
   DATA nro
   DATA xCpl
   DATA xBairro
   DATA cMun
   DATA xMun
   DATA UF

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorRetirada
   ::CNPJ        := Nil
   ::CPF         := Nil
   ::xNome       := Nil
   ::xLgr        := Nil
   ::nro         := Nil
   ::xCpl        := Nil
   ::xBairro     := Nil
   ::cMun        := Nil
   ::xMun        := Nil
   ::UF          := Nil
RETURN SELF

*
* CLASSE DA ENTREGA
*
CREATE CLASS hbNFeCreatorEntrega
   DATA CNPJ
   DATA CPF
   DATA xNome
   DATA xLgr
   DATA nro
   DATA xCpl
   DATA xBairro
   DATA cMun
   DATA xMun
   DATA UF

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorEntrega
   ::CNPJ        := Nil
   ::CPF         := Nil
   ::xNome       := Nil
   ::xLgr        := Nil
   ::nro         := Nil
   ::xCpl        := Nil
   ::xBairro     := Nil
   ::cMun        := Nil
   ::xMun        := Nil
   ::UF          := Nil
RETURN SELF

*
* CLASSE DO ITEM
*
CREATE CLASS hbNFeCreatorItem
   DATA cProd
   DATA cEAN
   DATA xProd
   DATA NCM
   DATA EXTIPI
   DATA CFOP
   DATA uCom
   DATA qCom
   DATA vUnCom
   DATA vProd
   DATA cEANTrib
   DATA uTrib
   DATA qTrib
   DATA vUnTrib
   DATA vFrete
   DATA vSeg
   DATA vDesc
   DATA vOutro
   DATA indTot

   DATA ItemICMS
   DATA ItemIPI
   DATA ItemII
   DATA ItemPIS
   DATA ItemPISST
   DATA ItemCOFINS
   DATA ItemCOFINSST

   DATA nItensDI
   DATA ItemDI             EXPORTED

   METHOD New() CONSTRUCTOR
   METHOD AddDI()
   METHOD getCurDI()
ENDCLASS

METHOD New() CLASS hbNFeCreatorItem
   ::cProd    := Nil
   ::cEAN     := Nil
   ::xProd    := Nil
   ::NCM      := Nil
   ::EXTIPI   := Nil
   ::CFOP     := Nil
   ::uCom     := Nil
   ::qCom     := Nil
   ::vUnCom   := Nil
   ::vProd    := Nil
   ::cEANTrib := Nil
   ::uTrib    := Nil
   ::qTrib    := Nil
   ::vUnTrib  := Nil
   ::vFrete   := Nil
   ::vSeg     := Nil
   ::vDesc    := Nil
   ::vOutro   := Nil
   ::indTot   := Nil

   ::ItemICMS     := hbNFeCreatorItemICMS():New()
   ::ItemIPI      := hbNFeCreatorItemIPI():New()
   ::ItemII       := hbNFeCreatorItemII():New()
   ::ItemPIS      := hbNFeCreatorItemPIS():New()
   ::ItemPISST    := hbNFeCreatorItemPISST():New()
   ::ItemCOFINS   := hbNFeCreatorItemCOFINS():New()
   ::ItemCOFINSST := hbNFeCreatorItemCOFINSST():New()
   ::ItemDI       := hash()

   ::nItensDI := 0
RETURN SELF

METHOD AddDI() CLASS hbNFeCreatorItem
   ::nItensDI ++
   ::ItemDI[::nItensDI] := hbNFeCreatorItemDI():New()
RETURN

METHOD getCurDI() CLASS hbNFeCreatorItem
RETURN ::nItensDI

*
* CLASSE DO ITEM ICMS
*
CREATE CLASS hbNFeCreatorItemICMS
   DATA orig
   DATA CST
   DATA CSOSN       
   DATA modBC       
   DATA pRedBC      
   DATA vBC         
   DATA pICMS       
   DATA vICMS       
   DATA modBCST     
   DATA pMVAST      
   DATA pRedBCST    
   DATA vBCST       
   DATA pICMSST     
   DATA vICMSST     
   DATA cUFST       
   DATA pBCOp       
   DATA vBCSTRet
   DATA vICMSSTRet  
   DATA motDesICMS
   DATA pCredSN     
   DATA vCredSN
   DATA vBCSTDest   
   DATA vICMSSTDest

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorItemICMS
   ::orig        := Nil
   ::CST         := Nil
   ::CSOSN       := Nil
   ::modBC       := Nil
   ::pRedBC      := Nil
   ::vBC         := Nil
   ::pICMS       := Nil
   ::vICMS       := Nil
   ::modBCST     := Nil
   ::pMVAST      := Nil
   ::pRedBCST    := Nil
   ::vBCST       := Nil
   ::pICMSST     := Nil
   ::vICMSST     := Nil
   ::cUFST       := Nil
   ::pBCOp       := Nil
   ::vBCSTRet    := Nil
   ::vICMSSTRet  := Nil
   ::motDesICMS  := Nil
   ::pCredSN     := Nil
   ::vCredSN     := Nil
   ::vBCSTDest   := Nil
   ::vICMSSTDest := Nil
RETURN Self

*
* CLASSE DO ITEM IPI
*
CREATE CLASS hbNFeCreatorItemIPI
   DATA clEnq
   DATA CNPJProd
   DATA cSelo
   DATA qSelo
   DATA cEnq
   DATA CST
   DATA vBC
   DATA pIPI
   DATA qUnid
   DATA nUnid
   DATA vIPI

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorItemIPI
   ::clEnq    := Nil
   ::CNPJProd := Nil
   ::cSelo    := Nil
   ::qSelo    := Nil
   ::cEnq     := Nil
   ::CST      := Nil
   ::vBC      := Nil
   ::pIPI     := Nil
   ::qUnid    := Nil
   ::nUnid    := Nil
   ::vIPI     := Nil
RETURN Self
*
* CLASSE DO ITEM II
*
CREATE CLASS hbNFeCreatorItemII
   DATA vBC
   DATA vDespAdu
   DATA vII
   DATA vIOF

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorItemII
   ::vBC      := Nil
   ::vDespAdu := Nil
   ::vII      := Nil
   ::vIOF     := Nil
RETURN Self

*
* CLASSE DO ITEM PIS
*
CREATE CLASS hbNFeCreatorItemPIS
   DATA CST
   DATA vBC
   DATA pPIS
   DATA vPIS
   DATA vBCProd
   DATA nAliqProd

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorItemPIS
   ::CST       := Nil
   ::vBC       := Nil
   ::pPIS      := Nil
   ::vPIS      := Nil
   ::vBCProd   := Nil
   ::nAliqProd := Nil
RETURN Self

*
* CLASSE DO ITEM PISST
*
CREATE CLASS hbNFeCreatorItemPISST
   DATA vBC
   DATA pPIS
   DATA vBCProd
   DATA vAliqProd
   DATA vPIS

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorItemPISST
   ::vBC       := Nil
   ::pPIS      := Nil
   ::vBCProd   := Nil
   ::vAliqProd := Nil
   ::vPIS      := Nil
RETURN Self

*
* CLASSE DO ITEM COFINS
*
CREATE CLASS hbNFeCreatorItemCOFINS
   DATA CST
   DATA vBC
   DATA pCOFINS
   DATA vCOFINS
   DATA vBCProd
   DATA nAliqProd

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorItemCOFINS
   ::CST       := Nil
   ::vBC       := Nil
   ::pCOFINS   := Nil
   ::vCOFINS   := Nil
   ::vBCProd   := Nil
   ::nAliqProd := Nil
RETURN Self

*
* CLASSE DO ITEM COFINSST
*
CREATE CLASS hbNFeCreatorItemCOFINSST
   DATA vBC
   DATA pCOFINS
   DATA vBCProd
   DATA vAliqProd
   DATA vCOFINS

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorItemCOFINSST
   ::vBC       := Nil
   ::pCOFINS   := Nil
   ::vBCProd   := Nil
   ::vAliqProd := Nil
   ::vCOFINS   := Nil
RETURN Self

*
* CLASSE DO ITEM DI
*
CREATE CLASS hbNFeCreatorItemDI
   DATA nDI
   DATA dDI
   DATA xLocDesemb
   DATA UFDesemb
   DATA dDesemb
   DATA cExportador

   DATA ItemADI
   DATA nItensADI

   METHOD New() CONSTRUCTOR
   METHOD AddADI()
   METHOD getCurADI()
ENDCLASS

METHOD AddADI() CLASS hbNFeCreatorItemDI
   ::nItensADI ++
   ::ItemADI[::nItensADI] := hbNFeCreatorItemADI():New()
RETURN

METHOD getCurADI() CLASS hbNFeCreatorItemDI
RETURN ::nItensADI

METHOD New() Class hbNFeCreatorItemDI
   ::nDI         := Nil
   ::dDI         := CTOD('')
   ::xLocDesemb  := Nil
   ::UFDesemb    := Nil
   ::dDesemb     := CTOD('')
   ::cExportador := Nil

   ::ItemADI     := hash()

   ::nItensADI := 0
RETURN SELF

*
* CLASSE DO ITEM ADICAO
*
CREATE CLASS hbNFeCreatorItemADI
   DATA nAdicao
   DATA nSeqAdic
   DATA cFabricante
   DATA nValorDesc
   DATA cPedidoCompra
   DATA nItemPedidoCompra

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() Class hbNFeCreatorItemADI
   ::nAdicao           := Nil
   ::nSeqAdic          := Nil
   ::cFabricante       := Nil
   ::nValorDesc        := Nil
   ::cPedidoCompra     := Nil
   ::nItemPedidoCompra := Nil
RETURN SELF

*
* CLASSE DOS TOTAIS
*
CREATE CLASS hbNFeCreatorTotais
   DATA ICMS             EXPORTED
   DATA retTrib          EXPORTED

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorTotais
   ::ICMS    := hbNFeCreatorTotaisICMS():New()
   ::retTrib := hbNFeCreatorTotaisICMS():New()
RETURN Self

*
* CLASSE DOS TOTAIS ICMS
*
CREATE CLASS hbNFeCreatorTotaisICMS
   DATA vBC
   DATA vICMS
   DATA vBCST
   DATA vST     
   DATA vProd   
   DATA vFrete  
   DATA vSeg    
   DATA vDesc   
   DATA vII
   DATA vIPI    
   DATA vPIS    
   DATA vCOFINS 
   DATA vOutro
   DATA vNF

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorTotaisICMS
   ::vBC     := Nil
   ::vICMS   := Nil
   ::vBCST   := Nil
   ::vST     := Nil
   ::vProd   := Nil
   ::vFrete  := Nil
   ::vSeg    := Nil
   ::vDesc   := Nil
   ::vII     := Nil
   ::vIPI    := Nil
   ::vPIS    := Nil
   ::vCOFINS := Nil
   ::vOutro  := Nil
   ::vNF     := Nil
RETURN Self

*
* CLASSE DOS TOTAIS RETENCOES
*
CREATE CLASS hbNFeCreatorTotaisRetTrib
   DATA vRetPIS
   DATA vRetCOFINS
   DATA vRetCSLL
   DATA vBCIRRF
   DATA vIRRF
   DATA vBCRetPrev  
   DATA vRetPrev

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorTotaisRetTrib
   ::vRetPIS    := Nil
   ::vRetCOFINS := Nil
   ::vRetCSLL   := Nil
   ::vBCIRRF    := Nil
   ::vIRRF      := Nil
   ::vBCRetPrev := Nil
   ::vRetPrev   := Nil
RETURN Self

*
* CLASSE DO TRANSPORTE
*
CREATE CLASS hbNFeCreatorTransp
   DATA modFrete
   DATA transporta         EXPORTED
   DATA retTransp          EXPORTED
   DATA veictransp         EXPORTED
   DATA vol                EXPORTED
   DATA lacres             EXPORTED

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorTransp
   ::modFrete := '2'
   ::transporta := hbNFeCreatorTranspTransporta():New()
   ::retTransp  := hbNFeCreatorTranspRetTransp():New()
   ::veictransp := hbNFeCreatorTranspVeic():New()
   ::vol        := hbNFeCreatorTranspVol():New()
RETURN Self

*
* CLASSE DO TRANSPORTE (TRANPORTADOR)
*
CREATE CLASS hbNFeCreatorTranspTransporta
   DATA CNPJ
   DATA CPF
   DATA xNome
   DATA IE
   DATA xEnder
   DATA xMun
   DATA UF

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorTranspTransporta
   ::CNPJ   := Nil
   ::CPF    := Nil
   ::xNome  := Nil
   ::IE     := Nil
   ::xEnder := Nil
   ::xMun   := Nil
   ::UF     := Nil
RETURN Self

*
* CLASSE DO TRANSPORTE (RETENCAO)
*
CREATE CLASS hbNFeCreatorTranspRetTransp
   DATA vServ
   DATA vBCRet
   DATA pICMSRet
   DATA vICMSRet
   DATA CFOP
   DATA cMunFG

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorTranspRetTransp
   ::vServ    := Nil
   ::vBCRet   := Nil
   ::pICMSRet := Nil
   ::vICMSRet := Nil
   ::CFOP     := Nil
   ::cMunFG   := Nil
RETURN Self

*
* CLASSE DO TRANSPORTE (VEICULO)
*
CREATE CLASS hbNFeCreatorTranspVeic
   DATA placa
   DATA UF
   DATA RNTC

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorTranspVeic
   ::placa := Nil
   ::UF    := Nil
   ::RNTC  := Nil
RETURN Self

*
* CLASSE DO TRANSPORTE (VOLUMES)
*
CREATE CLASS hbNFeCreatorTranspVol
   DATA qVol
   DATA esp
   DATA marca
   DATA nVol
   DATA pesoL
   DATA pesoB

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorTranspVol
   ::qVol  := Nil
   ::esp   := Nil
   ::marca := Nil
   ::nVol  := Nil
   ::pesoL := Nil
   ::pesoB := Nil
RETURN Self

*
* CLASSE DA COBRANCA
*
CREATE CLASS hbNFeCreatorCobranca
   DATA fat         EXPORTED

   DATA nItensDup
   DATA ItemDup

   METHOD New() CONSTRUCTOR
   METHOD AddDup()
   METHOD getCurDup()
ENDCLASS

METHOD New() CLASS hbNFeCreatorCobranca
   ::fat       := hbNFeCreatorCobrancaFatura():New()
   ::ItemDup   := hash()
   ::nItensDup := 0
RETURN Self

METHOD AddDup() CLASS hbNFeCreatorCobranca
   ::nItensDup ++
   ::ItemDup[::nItensDup] := hbNFeCreatorCobrancaDup():New()
RETURN

METHOD getCurDup() CLASS hbNFeCreatorCobranca
RETURN ::nItensDup

*
* CLASSE DA COBRANCA (FATURA)
*
CREATE CLASS hbNFeCreatorCobrancaFatura
   DATA nFat
   DATA vOrig
   DATA vDesc
   DATA vLiq

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorCobrancaFatura
   ::nFat  := Nil
   ::vOrig := Nil
   ::vDesc := Nil
   ::vLiq  := Nil
RETURN Self

*
* CLASSE DA COBRANCA (DUP)
*
CREATE CLASS hbNFeCreatorCobrancaDup
   DATA nDup
   DATA dVenc
   DATA vDup

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorCobrancaDup
   ::nDup  := Nil
   ::dVenc := CTOD('')
   ::vDup  := Nil
RETURN Self

*
* CLASSE DA INFADIC
*
CREATE CLASS hbNFeCreatorInfAdic
   DATA infAdFisco
   DATA infCpl

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorInfAdic
   ::infAdFisco := Nil
   ::infCpl     := Nil
RETURN Self

*
* CLASSE DA OBSCONT
*
CREATE CLASS hbNFeCreatorObsCont
   DATA nItensObs
   DATA ItemObs

   METHOD New() CONSTRUCTOR
   METHOD AddObs()
   METHOD getCurObs()
ENDCLASS

METHOD New() CLASS hbNFeCreatorObsCont
   ::ItemObs   := hash()
   ::nItensObs := 0
RETURN Self

METHOD AddObs() CLASS hbNFeCreatorObsCont
   ::nItensObs ++
   ::ItemObs[::nItensObs] := hbNFeCreatorObsContItens():New()
RETURN

METHOD getCurObs() CLASS hbNFeCreatorObsCont
RETURN ::nItensObs

CREATE CLASS hbNFeCreatorObsContItens
   DATA xCampo
   DATA xTexto

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorObsContItens
   ::xCampo := Nil
   ::xTexto := Nil
RETURN Self

*
* CLASSE DA PROCREF
*
CREATE CLASS hbNFeCreatorProcRef
   DATA nProc
   DATA indProc

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorProcRef
   ::nProc   := Nil
   ::indProc := Nil
RETURN Self

*
* CLASSE DA EXPORTA
*
CREATE CLASS hbNFeCreatorExporta
   DATA UFEmbarq
   DATA xLocEmbarq

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorExporta
   ::UFEmbarq   := Nil
   ::xLocEmbarq := Nil
RETURN Self

*
* CLASSE DA COMPRA
*
CREATE CLASS hbNFeCreatorCompra
   DATA xNEmp
   DATA xPed
   DATA xCont

   METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New() CLASS hbNFeCreatorCompra
   ::xNEmp := Nil
   ::xPed  := Nil
   ::xCont := Nil
RETURN Self

*
** TESTE
*
FUNC MAIN()
   oNF := hbNFeCreator():New()
   oNF:cChave := "56677"
   WITH OBJECT oNF:Ide
     :cUF     := 35
     :cNF     := 88
     :natOp   := 'VENDA'
     :indPag  := 0
     :mod     := 55
     :serie   := 1
     :nNF     := 88
     :dEmi    := CTOD('10/09/2011')
     :dSaiEnt := CTOD('10/09/2011')
     :hSaiEnt := TIME()
     :tpNF    := 35
     :cMunFG  := 355533
   END WITH

   WITH OBJECT oNF:Ide:NFref
      :refNFe      := '35823432498237943211239812903819028391283890'
      WITH OBJECT oNF:Ide:NFref:refNF
         :cUF   := 35
         :AAMM  := '1109'
         :CNPJ  := '99.999.999/9999-99'
         :mod   := 55
         :serie := 1
         :nNF   := 781326
      END WITH
   END WITH

   WITH OBJECT oNF:Ide
      :tpImp   := 1
      :tpEmis  := 1
      :cDV     := 9
      :tpAmb   := 2
      :finNFe  := 1
   END WITH

   WITH OBJECT oNF:Emi
      :CNPJ    := '11.777.888/0001-99'
      :xNome   := 'EMPRESA TESTE LTDA ME'
      :xFant   := 'EMPRESA TESTE'
      :xLgr    := 'RUA DE TESTE'
      :nro     := '123'
      :xBairro := 'BAIRRO TESTE'
      :cMun    := 2346234
      :xMun    := 'CIDADE DE TESTE'
      :UF      := 'SP'
      :CEP     := '19531-000'
      :fone    := '18 8888-9966'
      :IE      := '888.999.000-111'
      :CNAE    := 13981723
      :CRT     := 1
   END WITH

   WITH OBJECT oNF:Dest
      :CNPJ    := '22.777.888/0001-99'
      :xNome   := 'EMPRESA CLIENTE LTDA'
      :xLgr    := 'RUA DE CLIENTE'
      :nro     := '1234'
      :xCpl    := "COMPLEMENTO"
      :xBairro := 'BAIRRO CLIENTE'
      :cMun    := 2346234
      :xMun    := 'CIDADE DE CLIENTE'
      :UF      := 'SP'
      :CEP     := '19531-000'
      :fone    := '18 8888-9966'
      :IE      := '888.999.000-111'
      :email   := 'cliente@provedor.com.br'
   END WITH

   oNF:AddItem()
   WITH OBJECT oNF:Item[oNF:nItens]
      :cProd  := 1
      :cEAN   := ''
      :xProd  := 'PRODUTO 1'
      :NCM    := '28467328'
      :CFOP   := '5102'
      :uCom   := 'PC'
      :qCom   := 4.00
      :vUnCom := 10.00
      :vProd  := 40.00
      :vDesc  := 10.00
      :indTot := 0
      WITH OBJECT :ItemICMS
         :orig    := '0'
         :CSOSN   := '500'
         :modBC   := 0
         :vBC     := 0
         :pICMS   := 0
         :vICMS   := 0
      END WITH
      WITH OBJECT :ItemIPI
         :CST  := '99'
         :vBC  := 0
         :pIPI := 0
         :vIPI := 0
      END WITH
      WITH OBJECT :ItemPIS
         :CST  := '09'
         :vBC  := 0
         :pPIS := 0
         :vPIS := 0
      END WITH
      WITH OBJECT :ItemCOFINS
         :CST     := '09'
         :vBC     := 0
         :pCOFINS := 0
         :vCOFINS := 0
      END WITH
      :AddDI()
      WITH OBJECT :ItemDI[:nItensDI]
         :nDI         := '123'
         :dDI         := CTOD('01/09/2011')
         :xLocDesemb  := 'PARANAGUA'
         :UFDesemb    := 'PR'
         :dDesemb     := CTOD('01/08/2011')
         :cExportador := 'RBL IMP AND EXP'
         :AddADI()
         WITH OBJECT :ItemADI[:nItensADI]
            :nAdicao := '123456'
            :nSeqAdic := 1234
            :cFabricante := 'NATION BUILD'
         END WITH
      END WITH
   END WITH

   oNF:AddItem()
   WITH OBJECT oNF:Item[oNF:nItens]
      :cProd  := 2
      :cEAN   := '7898791635123'
      :xProd  := 'PRODUTO 2'
      :NCM    := '99'
      :CFOP   := '5102'
      :uCom   := 'UN'
      :qCom   := 2.00
      :vUnCom := 15.00
      :vProd  := 30.00
      :vDesc  := 5.00
      :indTot := 0
      WITH OBJECT :ItemICMS
         :orig    := '0'
         :CSOSN   := '101'
         :modBC   := 0
         :vBC     := 0
         :pICMS   := 0
         :vICMS   := 0
      END WITH
      WITH OBJECT :ItemIPI
         :CST  := '99'
         :vBC  := 0
         :pIPI := 0
         :vIPI := 0
      END WITH
      WITH OBJECT :ItemPIS
         :CST  := '09'
         :vBC  := 0
         :pPIS := 0
         :vPIS := 0
      END WITH
      WITH OBJECT :ItemCOFINS
         :CST     := '09'
         :vBC     := 0
         :pCOFINS := 0
         :vCOFINS := 0
      END WITH
   END WITH

   WITH OBJECT oNF:Totais:ICMS
      :vBC    := 0
      :vICMS  := 0
      :vBCST  := 0
      :vST    := 0
      :vProd  := 70
      :vFrete := 0
      :vSeg   := 0
      :vDesc  := 15
      :vII    := 0
      :vIPI   := 0
      :vPIS   := 0
      :vCOFINS:= 0
      :vOutro := 0
      :vNF    := 55
   END WITH     

   WITH OBJECT oNF:transp
      :modFrete := '1'
      WITH OBJECT :transporta
         :CPF    := '777.666.555-44'
         :xNome  := 'TRANSPORTADOR'
         :xEnder := 'ENDERECO TRANSPORTADOR'
         :xMun   := 'CIDADE TRANSPORTADOR'
         :UF     := 'SP'
      END WITH
      WITH OBJECT :veictransp
         :placa := 'AAA-12345'
         :UF    := 'PR'
      END WITH
      WITH OBJECT :vol
         :qVol  := 2
         :esp   := 'CAIXA'
         :marca := 'PROPRIA'
         :pesoL := 10.500
         :pesoB := 12.100
      END WITH
   END WITH

   WITH OBJECT oNF:cobr
      WITH OBJECT oNF:cobr:fat
         :nFat := '134798'
         :vOrig := 55
         :vDesc := 0
         :vLiq  := 55
      END WITH
      :AddDup()
      WITH OBJECT :ItemDup[:nItensDup]
         :nDup  := '1928'
         :dVenc := CTOD('01/10/2011')
         :vDup  := 25.00
      END WITH
      :AddDup()
      WITH OBJECT :ItemDup[:nItensDup]
         :nDup := '098098'
         :dVenc := CTOD('01/11/2011')
         :vDup  := 20.00
      END WITH
   END WITH

   oNF:InfAdic:infCpl := 'kjh ahaJHDAhaDSHDAsd AD AHGD A'

   WITH OBJECT oNF:ObsCont
      :AddObs()
      WITH OBJECT :ItemObs[:nItensObs]
         :xCampo := 'aksjd hasd'
         :xTexto := 'rrwer wer weriu wri'
      END WITH
   END WITH


*   oNF:geraXML()

   ? "Chave    :" + oNF:cChave
   ? "NF       :" + STR( oNF:Ide:cNF )
   ? "Emitente :" + oNF:Emi:xNome
   ? "Dest     :" + oNF:Dest:xNome
   FOR nItem = 1 TO oNF:nItens
      WITH OBJECT oNF:Item[nItem]
         ? "cProd    :" + STR(:cProd)
         ? "xProd    :" + :xProd
         ? "Origem   :" + :ItemICMS:orig
         FOR nItemDI = 1 TO :nItensDI
            WITH OBJECT :ItemDI[nItemDI]
               ? "DI       :" + :nDI
               FOR nItemADI = 1 TO :nItensADI
                  WITH OBJECT :ItemADI[nItemADI]
                     ? "Adicao   :" + :nAdicao
                  END WITH
               NEXT
            END WITH
         NEXT
      END WITH
   NEXT
   ? "vNF      :" + STR(oNF:Totais:ICMS:vNF,20,2)
   ? "modFrete :" + oNF:transp:modFrete
   ? "CNPJ Tra :" + oNF:transp:transporta:CPF
   ? "Placa    :" + oNF:transp:veictransp:placa
   ? "Qts Vol  :" + STR(oNF:transp:vol:qVol)
   ? "Fat      :" + oNF:cobr:fat:nFat
   FOR nItemDup = 1 TO oNF:cobr:nItensDup
      ? "nDup     :" + oNF:cobr:ItemDup[nItemDup]:nDup
   NEXT
   ? "InfAdic  :" + oNF:InfAdic:infCpl
   FOR nItemDup = 1 TO oNF:Obscont:nItensObs
      ? "xCampo   :" + oNF:Obscont:ItemObs[nItemDup]:xCampo
   NEXT

   oNF := Nil
RETURN
[]s
Fernando
projeto hbNFe NFe para [x]Harbour venha fazer parte do time http://www.pctoledo.com.br/forum/viewforum.php?f=54
Harbour 3.2 + Hwgui (HBIDE)
athayde
Colaborador
Colaborador
Mensagens: 166
Registrado em: 14 Fev 2007 16:54

Classe hbNFeCreator

Mensagem por athayde »

só para informação
a classe esta praticamente pronta, então se nenhum contratempo aparecer estarei commitando amanha
depois dessa classe, eu estarei para receber os FB do pessoal, pois no meu cronograma a classe entra na versao 1.0, com todas as opções que imaginei no inicio do projeto, claro que irão surgir alguns bugs, falta de alguma tag, é impossivel testar todas as maneiras, ai conforme vai passando o periodo de implantação os problemas irão diminuir e finalizamos a versao 1.1
e essa semana vou estar fora então os commits serão menores

[]s
Fernando
projeto hbNFe NFe para [x]Harbour venha fazer parte do time http://www.pctoledo.com.br/forum/viewforum.php?f=54
Harbour 3.2 + Hwgui (HBIDE)
athayde
Colaborador
Colaborador
Mensagens: 166
Registrado em: 14 Fev 2007 16:54

Classe hbNFeCreator

Mensagem por athayde »

finalizada e commitada junto com o projeto com varias correções
projeto hbNFe NFe para [x]Harbour venha fazer parte do time http://www.pctoledo.com.br/forum/viewforum.php?f=54
Harbour 3.2 + Hwgui (HBIDE)
Responder