Private Sub btnGerarNFe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGerarNFe.Click
btnGerarNFe.Enabled = False
Cursor = Cursors.AppStarting
Dim ide As String() = New String(25) {}
Dim emit As String() = New String(15) {}
Dim dest As String() = New String(37) {}
Dim detProd As String(,) = New String(Convert.ToInt32(txtQtdItens.Text) - 1, 92) {}
Dim total As String() = New String(26) {}
Dim transp As String() = New String(22) {}
Dim cobr As String() = New String(6) {}
Dim infAdic As String() = New String(2) {}
Dim random As New Random(6)
'gerar numero nNF aleatório
Dim num As Integer = (random.Next(6) + DateTime.Now.Millisecond)
'<ide> TAG de grupo das informações de identificação da NF-e
ide(0) = "35" '<cUF>
ide(1) = "00000099" '<cNF> 8 DIGITOS A PARTIR DA VERSAO 2.0 (MANUAL 4.01)
ide(2) = "VENDA DE PROD. ESTAB" '<natOp>
ide(3) = "0" '<indPag>
ide(4) = "55" '<mod>
ide(5) = "1" '<serie>
ide(6) = num.ToString '<nNF>
ide(7) = DateTime.Today.ToString("yyyy-MM-dd") '<dEmi>
ide(8) = DateTime.Today.ToString("yyyy-MM-dd") '<dSaiEnt>
ide(9) = "1" '<tpNF>
ide(10) = txtCodMun.Text '<cMunFG>
ide(11) = "1" '<tpEmis>
ide(12) = "1" '<finNFe>
ide(13) = "" 'NFref: <refNFe> 'nf-e relacionadas'
ide(14) = "18:01:01" '<hSaiEnt> Formato “HH:MM:SS” (v.2.0)
' Grupo de informação das NF-e e cupom referenciado - tag NFref
ide(13) = "" 'NFref: refNFe ou refECF.nCOO
ide(17) = "" 'NFref: refECF mod
ide(18) = "" 'NFref: refECF nECF
' Grupo de informação da NF modelo 1/1A referenciada
ide(19) = "" 'cUF --> Utilizar a Tabela do IBGE
ide(20) = "" 'AAMM --> AAMM da emissão da NF
ide(21) = "" 'CNPJ --> CNPJ do emitente da NF
ide(22) = "" 'mod --> Informar o código do modelo do Documento fiscal: 01 – modelo 01
ide(23) = "" 'serie --> nformar a série do documento fiscal
ide(24) = "" 'nNF --> 1 – 999999999
' Contingencia
ide(15) = "" 'dhCont (ex: 2010-08-27T08:55:33) v6.03
ide(16) = "" 'xJust v6.03
'<emit>TAG de grupo de identificação do emitente da NF-e
emit(0) = "EMPRESA EMITENTE ENGARRAFAMENTOS" '<xNome>
emit(1) = "ENGARRAFAMENTOS" '<xFant>
emit(2) = "ROD. ANEL RODOVIARIO KM153" '<xLgr>
emit(3) = "236" '<nro>
emit(4) = "FAB FIAT" '<xCpl>
emit(5) = "BELO HORIZONTE" '<xBairro>
emit(6) = txtCodMun.Text '<cMun>
emit(7) = txtMun.Text '<xMun>
emit(8) = "31310295" '<CEP>
emit(9) = "7133711818" '<fone>
emit(10) = txtIE.Text '<IE>
emit(11) = "07440600133" '<IM>
emit(12) = "6201500" '<CNAE>
emit(13) = "" '<IEST>
emit(14) = "1" '<CRT> 1 – Simples Nacional 2 – Simples Nacional – excesso de sublimite de receita bruta; 3 – Regime Normal
'<dest> TAG de grupo de identificação do Destinatário da NF-e
dest(0) = "34261131000144" '<CNPJ> ou <CPF>
dest(1) = "Empresa de Destino Teste" '<xNome>
dest(2) = "Rua Padre Casemiro Quiroga" '<xLgr>
dest(3) = "236" '<nro>
dest(4) = "Complemento" '<xCpl>
dest(5) = "Bairro Teste" '<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) = "7133711818" '<fone>
dest(13) = "26858614" '<IE>
dest(14) = "" '<ISUF>
'Grupo de Exportação v6.01
dest(15) = "SP" 'UFEmbarq
dest(16) = "11" 'xLocEmbarq
'Grupo de Compra v6.01
dest(17) = "SP" 'xNEmp
dest(18) = "SP" 'xPed
dest(19) = "SP" 'xCont
dest(20) = "" '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>
Dim i As Integer
'<prod> TAG de grupo do detalhamento de Produtos e Serviços da NF-e
For i = 0 To detProd.GetLength(0) - 1
detProd(i, 0) = "55" '<cProd>
detProd(i, 1) = "7893000980006" '<cEAN>
detProd(i, 2) = ("MEU PRODUTO DE TESTE " & (i + 1) & " NFe") '<xProd>
detProd(i, 3) = "73181500" '<NCM>
detProd(i, 4) = "" '<EXTIPI> Antes da vr 2.00, esta posicao era o GENERO.
detProd(i, 5) = "6152" '<CFOP>
detProd(i, 6) = "Kg" '<uCom>
detProd(i, 7) = "1.0000" '<qCom>
detProd(i, 8) = "10.0000" '<vUnCom>
detProd(i, 9) = "10.00" '<vProd>
detProd(i, 10) = "7893000980006" 'eantrib <cEANTrib>
detProd(i, 11) = "Kg" '<uTrib>
detProd(i, 12) = "1.1" '<qTrib>
detProd(i, 13) = "10.0000" '<vUnTrib>
detProd(i, 14) = "1.00" '<vFrete>
detProd(i, 15) = "1.00" '<vSeg>
detProd(i, 16) = "1.00" '<vDesc>
' tag ISSQN
detProd(i, 39) = "" 'ISSQN <vBC>
detProd(i, 40) = "" 'ISSQN <vAliq>
detProd(i, 41) = "" 'ISSQN <vISSQN>
detProd(i, 42) = "" 'ISSQN <cMunFG>
detProd(i, 43) = "" 'ISSQN <cListServ>
detProd(i, 70) = "" 'ISSQN <cSitTrib> //NF-e 2.00
'tag ICMS
detProd(i, 17) = "0" '<orig>
detProd(i, 18) = txtCstIcms.Text '<CST>
detProd(i, 19) = "3" '<modBC>
detProd(i, 20) = "10.00" '<vBC>
detProd(i, 21) = "17.00" '<pICMS>
detProd(i, 22) = "1.70" '<vICMS>
detProd(i, 46) = "0" '<modBCST>
detProd(i, 47) = "" '<pMVAST>
detProd(i, 48) = "" '<pRedBCST>
detProd(i, 49) = "0" '<vBCSTRet> //foi modificado, antes vBCST; v6.01 = vBCSTRet
detProd(i, 50) = "0" '<vICMSSTRet> //foi modificado, antes vICMSST; v6.01 = vICMSSTRet
detProd(i, 51) = "0" '<vICMSST> { campo novo }
detProd(i, 52) = "0" '<pRedBC> { campo novo }
detProd(i, 80) = "0" '<pCredSN>
detProd(i, 81) = "0" '<vCredICMSSN>
detProd(i, 85) = "" '<motDesICMS> Informar o motivo da desoneração: 0 a 9, ver tabela no manual do contribuinte NF-e.
' tag IPI
detProd(i, 23) = txtCstIpi.Text 'IPI <CST>
' obs: Informar os campos INDEX 24 e 25 caso o cálculo do IPI seja por alíquota ou os campos INDEX
' 78 e 79 caso o cálculo do IPI seja valor por unidade.
detProd(i, 78) = String.Empty 'IPI qUnid v6.03
detProd(i, 79) = String.Empty 'IPI vUnid v6.03
detProd(i, 24) = "0.05" 'IPI <vBC>
detProd(i, 25) = "0.05" 'IPI <pIPI>
' fim obs
detProd(i, 87) = "0" 'IPI <clEnq>
detProd(i, 88) = "00000000000000" 'IPI <CNPJProd>
detProd(i, 89) = "0" 'IPI <cSelo>
detProd(i, 90) = "0" 'IPI <qSelo>
detProd(i, 91) = "0" 'IPI <cEnq>
detProd(i, 26) = "5" 'IPI <vIPI>
'tag II
detProd(i, 27) = "0" 'II <vBC>
detProd(i, 28) = "0" 'II <vDespAdu>
detProd(i, 29) = "0" 'II <vII>
detProd(i, 30) = "0" 'II <vIOF>
'tag PIS
detProd(i, 31) = txtPis.Text '<CST>
detProd(i, 32) = "10.00" '<vBC>
detProd(i, 33) = "1.00" '<pPIS>
detProd(i, 34) = "0.10" '<vPis>
detProd(i, 45) = "0.1" '<vAliqProd> { campo novo }
'tag COFINS
detProd(i, 35) = txtCofins.Text '<CST>
detProd(i, 36) = "10.00" '<vBC>
detProd(i, 37) = "3.00" '<pCOFINS>
detProd(i, 38) = "0.30" '<vCOFINS>
detProd(i, 44) = "0.3" '<vAliqProd> { campo novo }
'tag PISST
detProd(i, 54) = "" 'vBC
detProd(i, 55) = "" 'pPIS
detProd(i, 56) = "" 'vPIS
'tag COFINSST
detProd(i, 57) = "4" 'vBC
detProd(i, 58) = "5" 'pCOFINS
detProd(i, 59) = "6" 'vCOFINS
'Tag da Declaração de Importação | DI
detProd(i, 60) = "" 'nDI
detProd(i, 61) = "" 'dDI
detProd(i, 62) = "" 'xLocDesemb
detProd(i, 63) = "" 'UFDesemb
detProd(i, 64) = "" 'dDesemb
detProd(i, 65) = "" 'cExportador
detProd(i, 66) = "" 'adi: nAdicao
detProd(i, 67) = "" 'adi: nSeqAdic
detProd(i, 68) = "" 'adi: cFabricante
detProd(i, 69) = "" 'adi: vDescDI
detProd(i, 53) = "INF. ADICIONAL PRODUTO" 'infAdProd
'Grupo do detalhamento de Medicamentos e de matériasprimas farmacêuticas
detProd(i, 71) = String.Empty '"12345671234564654"; //nLote
detProd(i, 72) = String.Empty '"123.123"; //qLote
detProd(i, 73) = String.Empty '"2010-01-01"; //dFab
detProd(i, 74) = String.Empty '"2011-01-01"; //dVal
detProd(i, 75) = String.Empty '"222.123"; //vPMC
detProd(i, 76) = "1" 'indTot v6.03 --> Indica se valor do Item (vProd) entra no valor total da NF-e (vProd)
detProd(i, 83) = "222" 'xPed
detProd(i, 84) = "333" 'nItemPed
Next i
'<total> TAG de grupo de Valores Totais da NF-e
total(0) = "50.00" 'ICMSTot <vBC>
total(1) = "8.50" 'ICMSTot <vICMS>
total(2) = "0.00" 'ICMSTot <vBCST>
total(3) = "0.00" 'ICMSTot <vST>
total(4) = "50.00" 'ICMSTot <vProd>
total(5) = "5.00" 'ICMSTot <vFrete>
total(6) = "7.10" 'ICMSTot <vSeg>
total(7) = "8.10" 'ICMSTot <vDesc>
total(8) = "0.00" 'ICMSTot <vII>
total(9) = "0.00" 'ICMSTot <vIPI>
total(10) = "15.0" 'ICMSTot <vPIS>
total(11) = "30.00" 'ICMSTot <vCOFINS
total(12) = "0.00" 'ICMSTot <vOutro>
total(13) = "50.00" 'ICMSTot <vNF>
total(14) = "" 'ISSQNtot <vServ>
total(15) = "" 'ISSQNtot <vBC>
total(16) = "" 'ISSQNtot <vISS>
total(17) = "" 'ISSQNtot <vPIS>
total(18) = "" 'ISSQNtot <vCOFINS>
' retTrib: Grupo de Retenções de Tributos
total(19) = "" 'vRetPIS
total(20) = "" 'vRetCOFINS
total(21) = "" 'vRetCSLL
total(22) = "" 'vBCIRRF
total(23) = "" 'vIRRF
total(24) = "" 'vBCRetPrev
total(25) = "" 'vRetPrev
'<transp> Informações do Transporte da NF-e
transp(0) = "0" '<modFrete>
transp(1) = "34261131000144" '<CNPJ> ou <CPF>
transp(2) = "Teste Transp Jack" '<xNome>
transp(3) = "7012578100048" '<IE>
transp(4) = "Teste End. Transp. Jack" '<xEnder>
transp(5) = "Belo Horizonte" '<xMun>
transp(6) = "MG" '<UF>
transp(7) = "XOX2255" '<placa>
transp(8) = "MG" '<UF>
'Grupo de Volumes
transp(9) = "5" '<qVol>
transp(10) = "VOLUME" '<esp>
transp(11) = "JACK" '<marca>
transp(12) = "99" '<nVol>
transp(13) = "11.535" '<pesoL>
transp(14) = "15.282" '<pesoB>
'obs: Separe por ; para informar diversos volumes
transp(15) = "" 'RNTC/ANTT
' retTransp: Grupo de Retenção do ICMS do transporte
transp(16) = "" 'vServ
transp(17) = "" 'vBCRet
transp(18) = "" 'pICMSRet
transp(19) = "" 'vICMSRet
transp(20) = "" 'CFOP
transp(21) = "" 'cMunFG
'<cobr> Dados da Cobrança
cobr(0) = "22" 'fat <nFat>
cobr(1) = "50" 'fat <vOrig>
cobr(2) = "453.28" 'fat <vLiq>
' neste ex, existem 2 parcelas
cobr(3) = "01;02;" 'dup <nDup>
cobr(4) = "2008-05-30;2008-06-30;" 'dup <dVenc>
cobr(5) = "226.64;226.64;" 'dup <vDup>
'<infAdic> Informações Adicionais da NF-e
infAdic(0) = "Informacoes Adicionais de Interesse do Fisco - Informacoes Adicionais de Interesse do Fisco - Informacoes Adicionais de Interesse do Fisco - Informacoes Adicionais de Interesse do Fisco" 'infAdFisco
infAdic(1) = "Informacoes Complementares de interesse do Contribuinte" 'infCpl
'chamar função para gerar a nf-e
Dim str As String = New nfecsharp().GeraNFe(ide, emit, dest, detProd, total, transp, cobr, infAdic, ckbAssinar.Checked)
lblStatus.Text = str
btnGerarNFe.Enabled = True
Cursor = Cursors.Default
End Sub