Public Sub Gera_dados_identificacao()
ReDim ide(19)
ide(0) = "42" '<cUF>
ide(1) = "601" '<cNF>
ide(2) = "VENDA DE PROD. ESTAB" '<natOp>
ide(3) = "0" '<indPag>
ide(4) = "55" '<mod>
ide(5) = "1" '<serie>
ide(6) = "333" '<nNF>
ide(7) = "2010-03-20" '<dEmi>
ide(8) = "2010-03-20" '<dSaiEnt>
ide(9) = "1" '<tpNF>
ide(10) = "4218202" '<cMunFG>
ide(11) = "1" '<tpEmis>
ide(12) = "1" '<finNFe>
'Grupo de informação das NF-e e cupom referenciado - tag NFref
ide(13) = "" '<refNFe>
'Atenção! No caso de mais de um CF referenciado, separe por ";" conforme ex abaixo.
ide(17) = "" '"2D;2D;" '<mod>
ide(18) = "" '"123;321;" '<nECF>
ide(19) = "" '"12345;54321;" '<nCOO>
ide(14) = "18:01:02" '<hSaiEnt> Formato “HH:MM:SS”
ide(15) = "" '2010-05-27T08:55:33 'v6.03 - dhCont AAAA-MM-DDTHH:MM:SS
ide(16) = "" 'Estou me justificando pela contingencia. 'v6.03 - xJust Justificativa da entrada em contingência
End Sub
Public Sub Gera_dados_emitente()
ReDim emit(15)
emit(0) = "EMPRESA EMITENTE ENGARRAFAMENTOS" '<xNome>
emit(1) = "ENGARRAFAMENTOS" '<xFant>
emit(2) = "ROD. ANEL RODOVIARIO KM153" '<xLgr>
emit(3) = "236" '<nro>
emit(4) = "PROX FAB. FIAT" '<xCpl>
emit(5) = "BAIRRO ALEGRE" '<xBairro>
emit(6) = "4218202" '<cMun>
emit(7) = "Timbo" '<xMun>
emit(8) = "31350295" '<CEP> 'ATENCAO! INFORMAR VALOR VALIDO
emit(9) = "7132711818" '<fone>
emit(10) = "255458581" '<IE> 'ATENCAO! INFORMAR VALOR VALIDO
emit(11) = "" '<IM>
emit(12) = "" '<CNAE>
emit(13) = "" '<IEST>
emit(14) = "1" '<CRT> – Simples Nacional; 2 – Simples Nacional – excesso de sublimite de receita bruta; 3 – Regime Normal
End Sub
Public Sub Gera_dados_destinatario()
ReDim dest(37)
dest(0) = "99999999000191" '<CNPJ> ou <CPF> 'ATENCAO! INFORMAR VALOR VALIDO
dest(1) = "HOMOLOGACAO TESTE" '<xNome>
dest(2) = "Rua das tapiocas" '<xLgr>
dest(3) = "433" '<nro>
dest(4) = "" '<xCpl>
dest(5) = "Bairro alegre" '<xBairro>
dest(6) = "2927408" '<cMun>
dest(7) = "Salvador" '<xMun>
dest(8) = "BA" '<UF>
dest(9) = "41720400" '<CEP>
dest(10) = "1058" '<cPais>
dest(11) = "BRASIL" '<xPais>
dest(12) = "51333344444" '<fone>
dest(13) = "23418614" '<IE>
dest(14) = "" '<ISUF>
dest(15) = "" '<email>
'Grupo de identificação do Local de RETIRADA
'Informar apenas quando for diferente do endereço do remetente.
dest(21) = "" 'Retirada <CNPJ> ou <CPF>
dest(22) = "" 'Retirada <xLgr>
dest(23) = "" 'Retirada <nro>
dest(24) = "" 'Retirada <xCpl>
dest(25) = "" 'Retirada <xBairro>
dest(26) = "" 'Retirada <cMun>
dest(27) = "" 'Retirada <xMun>
dest(28) = "" 'Retirada <UF>
'Grupo de identificação do Local de ENTREGA
'Informar apenas quando for diferente do endereço do remetente.
dest(29) = "" 'Entrega <CNPJ> ou <CPF>
dest(30) = "" 'Entrega <xLgr>
dest(31) = "" 'Entrega <nro>
dest(32) = "" 'Entrega <xCpl>
dest(33) = "" 'Entrega <xBairro>
dest(34) = "" 'Entrega <cMun>
dest(35) = "" 'Entrega <xMun>
dest(36) = "" 'Entrega <UF>
End Sub
Public Sub Gera_dados_produtos()
'prestar atencao no carregamento da propriedade [teste1.OCXNFe1.qtde_registros], ela é responsavel pelo numero de registros de itens na nota fiscal
'exemplo se a qtde_registros for 2 o primeiro é prod(0, 75) o segundo seria prod(1, 75)
ReDim prod(teste1.OCXNFe1.qtde_registros, 96)
For x = 0 To (teste1.OCXNFe1.qtde_registros)
prod(x, 0) = "0010" '<cProd>
prod(x, 1) = "7893000980006" '<cEAN>
prod(x, 2) = "Tv de plasma 42 Tv de plasma 42 Tv de plasma 42 Tv de plasma 42 Tv de plasma 42 Tv de plasma 42 Tv de plasma 99" '<xProd>
prod(x, 3) = "73181500" '<NCM> CAMPO OBRIGATORIO a partir da vr 2.00
prod(x, 4) = "" '<EXTIPI> //Antes da vr 2.00, esta posicao era o GENERO.
prod(x, 5) = "6102" '<CFOP>
prod(x, 6) = "PC" '<uCom>
prod(x, 7) = "2.5000" '<qCom>
prod(x, 8) = "25.0000" '<vUnCom>
prod(x, 9) = "25.00" '<vProd>
prod(x, 10) = "7893000980006" '<cEANTrib>
prod(x, 11) = "KG" '<uTrib>
prod(x, 12) = "1.0000" '<qTrib>
prod(x, 13) = "2.7500" '<vUnTrib>
prod(x, 14) = "0.00" '<vFrete>
prod(x, 15) = "2.50" '<vSeg>
prod(x, 16) = "2.50" '<vDesc>
'tag ISSQN
prod(x, 39) = "" 'ISSQN <vBC>
prod(x, 40) = "" 'ISSQN <vAliq>
prod(x, 41) = "" 'ISSQN <vISSQN>
prod(x, 42) = "" 'ISSQN <cMunFG>
prod(x, 43) = "" 'ISSQN <cListServ>
prod(x, 70) = "" 'ISSQN: cSitTrib - Código da tributação do ISSQN: N – NORMAL; R – RETIDA; S –SUBSTITUTA; I – ISENTA. (v.2.0)
'tag ICMS
prod(x, 17) = "0" '<orig>
prod(x, 18) = "101" '<CST>
prod(x, 19) = "3" '<modBC>
prod(x, 20) = "25.00" '<vBC>
prod(x, 21) = "17.00" '<pICMS>
prod(x, 22) = "4.25" '<vICMS>
prod(x, 46) = "0" '<modBCST>
prod(x, 47) = "0.00" '<pMVAST>
prod(x, 48) = "0.00" '<pRedBCST>
prod(x, 49) = "0.00" '<vBCSTRet> foi modificado, antes vBCST; v6.01 = vBCSTRet
prod(x, 50) = "0.00" '<pICMSST>
prod(x, 51) = "0.00" '<vICMSSTRet> foi modificado, antes vICMSST; v6.01 = vICMSSTRet
prod(x, 52) = "0.00" '<pRedBC>
prod(x, 77) = "0.00" '<pCredSN> Simples Nacional
prod(x, 78) = "0.00" '<vCredICMSSN> Simples Nacional
prod(x, 85) = "" '<motDesICMS> Informar o motivo da desoneração: 0 a 9, ver tabela no manual do contribuinte NF-e.
'tag IPI
prod(x, 23) = "53" 'IPI <CST>
prod(x, 24) = "0.00" 'IPI <vBC>
prod(x, 25) = "0.00" 'IPI <pIPI>
prod(x, 87) = "0" 'IPI <clEnq>
prod(x, 88) = "00000000000000" 'IPI <CNPJProd>
prod(x, 89) = "0" 'IPI <cSelo>
prod(x, 90) = "0" 'IPI <qSelo>
prod(x, 91) = "0" 'IPI <cEnq>
prod(x, 26) = "0.00" 'IPI <vIPI>
prod(x, 27) = "0.00" 'II <vBC>
prod(x, 28) = "0.00" 'II <vDespAdu>
prod(x, 29) = "0.00" 'II <vII>
prod(x, 30) = "0.00" 'II <vIOF>
'tag PIS
prod(x, 31) = "09" '<CST>
prod(x, 32) = "0.00" '<vBC>
prod(x, 33) = "0.00" '<pPIS>
prod(x, 34) = "0.00" '<vPis>
prod(x, 45) = "0.00" '<vAliqProd>
'tag COFINS
prod(x, 35) = "08" '<CST>
prod(x, 36) = "0.00" '<vBC>
prod(x, 37) = "0.00" '<pCOFINS>
prod(x, 38) = "0.00" '<vCOFINS>
prod(x, 44) = "0.00" '<vAliqProd>
'tag PISST
prod(x, 54) = "1" 'vBC
prod(x, 55) = "2" 'pPIS
prod(x, 56) = "3" 'vPIS
'tag COFINSST
prod(x, 57) = "4" 'vBC
prod(x, 58) = "5" 'pCOFINS
prod(x, 59) = "6" 'vCOFINS
'Tag da Declaração de Importação
prod(x, 60) = "" 'nDI
prod(x, 61) = "" 'dDI
prod(x, 62) = "" 'xLocDesemb
prod(x, 63) = "" 'UFDesemb
prod(x, 64) = "" 'dDesemb
prod(x, 65) = "" 'cExportador
prod(x, 66) = "" 'adi: nAdicao
prod(x, 67) = "" 'adi: nSeqAdic
prod(x, 68) = "" 'adi: cFabricante
prod(x, 69) = "" 'adi: vDescDI
'Grupo do detalhamento de Medicamentos e de matériasprimas farmacêuticas
prod(x, 71) = "" 'nLote
prod(x, 72) = "" 'qLote
prod(x, 73) = "" 'dFab
prod(x, 74) = "" 'dVal
prod(x, 75) = "" 'vPMC
prod(x, 76) = "1" 'indTot v6.03 --> Indica se valor do Item (vProd) entra no valor total da NF-e (vProd)
prod(x, 53) = "INFORMACAO ADICIONAL TESTE 01 INFORMACAO ADICIONAL TESTE 01 INFORMACAO ADICIONAL TESTE 01 INFORMACAO ADICIONAL TESTE 99" 'InfAdic
'Grupo do detalhamento de Veiculos novos
'Informar apenas quando se tratar de veículos novos
'ATENCAO! Informe sempre o delimitador ";" para este grupo
prod(x, 80) = "" 'Tag de veiculos vazia. Nao será incluido no XML.
prod(x, 80) = "1;" 'tpOp
prod(x, 80) = prod(x, 80) & "12345678901234567;" 'chassi
prod(x, 80) = prod(x, 80) & "123;" 'cCor
prod(x, 80) = prod(x, 80) & "PRETO;" 'xCor
prod(x, 80) = prod(x, 80) & "220;" 'pot
prod(x, 80) = prod(x, 80) & "220;" 'cilin
prod(x, 80) = prod(x, 80) & "2;" 'pesoL
prod(x, 80) = prod(x, 80) & "2;" 'pesoB
prod(x, 80) = prod(x, 80) & "21311213;" 'nSerie
prod(x, 80) = prod(x, 80) & "02;" 'tpComb
prod(x, 80) = prod(x, 80) & "123;" 'nMotor
prod(x, 80) = prod(x, 80) & "500;" 'CMT
prod(x, 80) = prod(x, 80) & "15;" 'dist
prod(x, 80) = prod(x, 80) & "2011;" 'anoMod
prod(x, 80) = prod(x, 80) & "2010;" 'anoFab
prod(x, 80) = prod(x, 80) & "1;" 'tpPint
prod(x, 80) = prod(x, 80) & "06;" 'tpVeic
prod(x, 80) = prod(x, 80) & "1;" 'espVeic
prod(x, 80) = prod(x, 80) & "N;" 'VIN
prod(x, 80) = prod(x, 80) & "1;" 'condVeic
prod(x, 80) = prod(x, 80) & "1234;" 'cMod
prod(x, 80) = prod(x, 80) & "11;" 'cCorDENATRAN
prod(x, 80) = prod(x, 80) & "5;" 'lota
prod(x, 80) = prod(x, 80) & "0;" 'tpRest
prod(x, 83) = "1212" 'xPed
prod(x, 84) = "2323" 'nItemPed
'Grupo do detalhamento de Armamento
prod(x, 92) = "0" 'tpArma
prod(x, 93) = "123123" 'nSerie
prod(x, 94) = "38" 'nCano
prod(x, 95) = "Revolver Taurus Calibre 38" 'descr
Next
End Sub
Public Sub Gera_dados_totalizadores()
ReDim tot(26)
tot(0) = "50.00" 'ICMSTot <vBC>
tot(1) = "8.50" 'ICMSTot <vICMS>
tot(2) = "0.00" 'ICMSTot <vBCST>
tot(3) = "0.00" 'ICMSTot <vST>
tot(4) = "50.00" 'ICMSTot <vProd>
tot(5) = "50.00" 'ICMSTot <vFrete>
tot(6) = "5.00" 'ICMSTot <vSeg>
tot(7) = "5.00" 'ICMSTot <vDesc>
tot(8) = "0.00" 'ICMSTot <vII>
tot(9) = "0.00" 'ICMSTot <vIPI>
tot(10) = "0.00" 'ICMSTot <vPIS>
tot(11) = "0.00" 'ICMSTot <vCOFINS>
tot(12) = "0.00" 'ICMSTot <vOutro>
tot(13) = "50.00" 'ICMSTot <vNF>
'grupo ISSQN
tot(14) = "" '"10.00" 'ISSQNtot <vServ>
tot(15) = "" '"10.00" 'ISSQNtot <vBC>
tot(16) = "" '"0.50" 'ISSQNtot <vISS>
tot(17) = "" '"0.10" 'ISSQNtot <vPIS>
tot(18) = "" '"50.00" 'ISSQNtot <vCOFINS>
'retTrib: Grupo de Retenções de Tributos
tot(19) = "" 'vRetPIS
tot(20) = "" 'vRetCOFINS
tot(21) = "" 'vRetCSLL
tot(22) = "" 'vBCIRRF
tot(23) = "" 'vIRRF
tot(24) = "" 'vBCRetPrev
tot(25) = "" 'vRetPrev
End Sub
Public Sub Gera_dados_transporte()
ReDim trp(25)
trp(0) = "0" '<modFrete>
trp(1) = "34249131000144" '"" '<CNPJ> ou <CPF>
trp(2) = "TRANSPORTADORA TESTE" '<xNome>
trp(3) = "" '<IE>
trp(4) = "ENDERUA RUA X" '<xEnder
trp(5) = "TESTE MUNICIPIO" '<xMun>
trp(6) = "SC" '<UF>
trp(7) = "MOX1234" '<placa>
trp(8) = "SC" '<UF>
trp(9) = "1" '<qVol>
trp(10) = "esp" '<esp>
trp(11) = "marca" '<marca>
trp(12) = "123123" '<nVol>
trp(13) = "1.000" '<pesoL>
trp(14) = "2.000" '<pesoB>
trp(15) = "" '<ANTT>
'retTransp: Grupo de Retenção do ICMS do transporte
trp(16) = "" 'vServ
trp(17) = "" 'vBCRet
trp(18) = "" 'pICMSRet
trp(19) = "" 'vICMSRet
trp(20) = "" 'CFOP
trp(21) = "" 'cMunFG
'Grupo Reboque
trp(22) = "MOX1212;VOX1221;" '<placa>
trp(23) = "SP;SC;" '<UF>
trp(24) = "1234;4321;" '<RNTC>
End Sub
Public Sub Gera_dados_faturas()
ReDim cob(1, 6)
cob_numero_parcelas = -1 '(considerar zero como um valor); -1 significa nao incluir tag
'<cobr> tag cobrança
cob(0, 0) = ide(6) 'fat <nFat>
cob(0, 1) = tot(13) 'fat <vOrig>
cob(0, 2) = tot(13) 'fat <vLiq>
'2 parcelas neste caso
cob(0, 3) = "01" 'dup <nDup>
cob(0, 4) = "2009-05-05" 'dup <dVenc>
cob(0, 5) = "75.00" 'dup <vDup>
cob(1, 3) = "02" 'dup <nDup>
cob(1, 4) = "2009-05-25" 'dup <dVenc
cob(1, 5) = "75.00" 'dup <vDup>
End Sub
Public Sub Gera_dados_obsevacoes()
ReDim obs(7)
obs(0) = "observacoes - infAdFisco" 'infAdFisco
obs(1) = "observacoes 2 - infCpl" 'infCpl
'tag exporta v6.03
obs(2) = "" 'UFEmbarq
obs(3) = "" 'xLocEmbarq
'tag compra v6.03
obs(4) = "" 'xNEmp
obs(5) = "" 'xPed
obs(6) = "" 'infCpl
End Sub
Private Sub GeraNFe_Click()
'pega os dados
Gera_dados_identificacao
Gera_dados_emitente
Gera_dados_destinatario
OCXNFe1.qtde_registros = 1 'ATENCAO! Considerar "0" como 1 item, neste exemplo, temos 2 registros de produtos.
Gera_dados_produtos
Gera_dados_totalizadores
Gera_dados_transporte
Gera_dados_faturas
Gera_dados_obsevacoes
'pega os dados do reg windows
OCXNFe1.reg_uf = GetString(&H80000001, "nfe", "UnidadeFederada")
OCXNFe1.reg_ufcod = GetString(&H80000001, "nfe", "UnidadeFederadaCodigo")
OCXNFe1.reg_amb = GetString(&H80000001, "nfe", "Ambiente")
OCXNFe1.reg_verproc = GetString(&H80000001, "nfe", "VerProc")
OCXNFe1.reg_cnpj = GetString(&H80000001, "nfe", "CNPJ")
OCXNFe1.reg_tpImp = GetString(&H80000001, "nfe", "TipoDanfe")
'instancia o componente
Dim nfe As nfec.nfecsharp
Set nfe = New nfec.nfecsharp
'gera a chave da nfe
Dim id_chave As String
id_chave = "NFe" & nfe.ChaveAcessoNFe(OCXNFe1.reg_ufcod, ide(7), OCXNFe1.reg_cnpj, ide(4), ide(5), CLng(ide(6)), CLng(ide(11)), CLng(ide(1)))
OCXNFe1.nome_chave = id_chave
'pega o endereço do arquivo a ser gerado
OCXNFe1.arquivo_xml_nfe = App.Path & "\nfe\arquivos\" & id_chave & ".xml"
'gera a nfe pela ocx
Dim numero_nfe_gerado As String
numero_nfe_gerado = OCXNFe1.GeraNFe(ide(), emit(), dest(), prod(), tot(), trp(), cob_numero_parcelas, cob(), obs())
numero_nfe_gerado = Replace(numero_nfe_gerado, "NFe", "")
Text1.Text = "Nfe gerada no.: " & numero_nfe_gerado
End Sub