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