procedure TfrmPrincipal.btnGeraNfe_Click(Sender: TObject);
var
tIde,tEmit,tDest,tTotal,tTransp,tCobr,tInfAdic : array of shortstring; //prefixo t = tag, ex: tag Ide
tProd : ArrayBi;
x, qtdItens,nNF : integer;
ret : shortstring;
begin
try
Screen.cursor:=crAppStart;
btnGeraNfe.Enabled:=false;
EditStatus.Text:='Gerando NF-e';
Panel2.Refresh;
qtdItens:=StrToInt(EditQtdItens.text);
randomize;
nNF:=random(9999);
{ Atenção! Atentar-se nos tamanhos dos array's abaixo
sempre que houver atualizacoes. }
SetLength(tIde,25); //ide
SetLength(tEmit,15); //emit
SetLength(tDest,37); //dest
SetLength(tProd, qtdItens, 92); //prod
SetLength(tTotal,26); //total
SetLength(tTransp,22); //transp
SetLength(tCobr,6); //cobr
SetLength(tInfAdic,21); //infAdic
{ <ide> TAG de grupo das informações de identificação da NF-e }
tIde[0]:='35'; //<cUF>
tIde[1]:='00000099'; //<cNF> //Numero aleatorio: apenas 8 digitos: NF-e 2.00
tIde[2]:='VENDA DE PROD. ESTAB'; //<natOp>
tIde[3]:='0'; //<indPag>
tIde[4]:='55'; //<mod>
tIde[5]:='1'; //<serie>
tIde[6]:=IntToStr(nNF); //<nNF> //Numero do Documento Fiscal
tIde[7]:=FormatDatetime('yyyy-mm-dd',date); //<dEmi>
tIde[8]:=FormatDatetime('yyyy-mm-dd',date); //<dSaiEnt>
if (rdbSaida.Checked) then
tIde[9]:='1' else //<tpNF>
if (rdbEntrada.Checked) then
tIde[9]:='0'; //<tpNF>
tIde[10]:=EditCodMunicipio.text;//<cMunFG>
if (chkContingecia.checked) then
tIde[11]:='2' else tIde[11]:='1'; //<tpEmis>
tIde[12]:='1'; //<finNFe>
{ Grupo de informação das NF-e e cupom referenciado - tag NFref }
tIde[13]:=''; //refNFe ou refECF.nCOO
tIde[17]:=''; //refECF mod
tIde[18]:=''; //refECF nECF
{ Grupo de informação da NF modelo 1/1A referenciada}
tIde[19]:=''; //cUF --> Utilizar a Tabela do IBGE
tIde[20]:=''; //AAMM --> AAMM da emissão da NF
tIde[21]:=''; //CNPJ --> CNPJ do emitente da NF
tIde[22]:=''; //mod --> Informar o código do modelo do Documento fiscal: 01 – modelo 01
tIde[23]:=''; //serie --> nformar a série do documento fiscal
tIde[24]:=''; //nNF --> 1 – 999999999
tIde[14]:='18:01:23'; //<hSaiEnt>
tIde[15]:='';//'2010-08-27T08:55:33'; //dhCont AAAA-MM-DDTHH:MM:SS
tIde[16]:='';//'Estou me justificando pela contingencia.'; //xJust Justificativa da entrada em contingência
{ <emit> TAG de grupo de identificação do emitente da NF-e }
tEmit[0]:='EMPRESA RAZAO ENGARRAFAMENTOS LTDA.'; //<xNome>
tEmit[1]:='ENGARRAFAMENTOS LTDA.'; //<xFant>
tEmit[2]:='ROD. ANEL RODOVIARIO KM153'; //<xLgr>
tEmit[3]:='236'; //<nro>
tEmit[4]:='FAB. FIAT'; //<xCpl>
tEmit[5]:='BELO HORIZONTE'; //<xBairro>
tEmit[6]:=EditCodMunicipio.Text; //<cMun>
tEmit[7]:=Edit2.Text; //<xMun>
tEmit[8]:='31310295'; //<CEP>
tEmit[9]:='7133711818'; //<fone>
tEmit[10]:=EditIE.TExt; //<IE>
tEmit[11]:='07440600133'; //<IM>
tEmit[12]:='6201500'; //<CNAE>
tEmit[13]:=''; //<IEST>
tEmit[14]:='3'; //<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 }
tDest[0]:='99.999.999/0001-91'; //<CNPJ> ou <CPF>
tDest[1]:='RAZAO DESTINATARIO'; //<xNome>
tDest[2]:='Rua Padre Casemiro Quiroga'; //<xLgr>
tDest[3]:='236'; //<nro>
tDest[4]:='Complemento'; //<xCpl>
tDest[5]:='Bairro Teste'; //<xBairro>
tDest[6]:='2927408'; //<cMun>
tDest[7]:='Salvador'; //<xMun>
tDest[8]:='BA'; //<UF>
tDest[9]:='41720400'; //<CEP>
tDest[10]:='1058'; //<cPais>
tDest[11]:='BRASIL'; //<xPais>
tDest[12]:='7133711818'; //<fone>
tDest[13]:=''; //<IE>
tDest[14]:=''; //<ISUF>
{ exporta }
tDest[15]:=''; //<UFEmbarq>
tDest[16]:=''; //<xLocEmbarq>
{ compra }
tDest[17]:=''; //<xNEmp>
tDest[18]:=''; //<xPed>
tDest[19]:=''; //<xCont>
tDest[20]:=''; //<email>
{ Grupo de identificação do Local de RETIRADA }
{ Informar apenas quando for diferente do endereço do remetente. }
tDest[21]:=''; //RETIRADA <CNPJ> ou <CPF>
tDest[22]:=''; //RETIRADA <xLgr>
tDest[23]:=''; //RETIRADA <nro>
tDest[24]:=''; //RETIRADA <xCpl>
tDest[25]:=''; //RETIRADA <xBairro>
tDest[26]:=''; //RETIRADA <cMun>
tDest[27]:=''; //RETIRADA <xMun>
tDest[28]:=''; //RETIRADA <UF>
{ Grupo de identificação do Local de ENTREGA }
{ Informar apenas quando for diferente do endereço do destinatário. }
tDest[29]:=''; //ENTREGA <CNPJ> ou <CPF>
tDest[30]:=''; //ENTREGA <xLgr>
tDest[31]:=''; //ENTREGA <nro>
tDest[32]:=''; //ENTREGA <xCpl>
tDest[33]:=''; //ENTREGA <xBairro>
tDest[34]:=''; //ENTREGA <cMun>
tDest[35]:=''; //ENTREGA <xMun>
tDest[36]:=''; //ENTREGA <UF>
{ <prod> TAG de grupo do detalhamento de Produtos e Serviços da NF-e }
for x:=0 to (length(tProd)-1) do
begin
tProd[x,0]:='55'; //<cProd>
tProd[x,1]:='7893000980006'; //<cEAN>
tProd[x,2]:='MEU PRODUTO DE TESTE '+IntToStr(x+1); //<xProd>
tProd[x,3]:='73181500'; //<NCM>
tProd[x,4]:=''; //<EXTIPI> //Antes da v6.00, esta posicao era o GENERO.
tProd[x,5]:='6152'; //<CFOP>
tProd[x,6]:='Kg'; //<uCom>
tProd[x,7]:='1.0000'; //<qCom>
tProd[x,8]:='10.0000'; //<vUnCom>
tProd[x,9]:='10.00'; //<vProd>
tProd[x,10]:='7893000980006'; //eantrib //<cEANTrib>
tProd[x,11]:='Kg'; //<uTrib>
tProd[x,12]:='1.1000'; //<qTrib>
tProd[x,13]:='10.0000'; //<vUnTrib>
tProd[x,14]:='10.00'; //<vFrete>
tProd[x,15]:='1.00'; //<vSeg>
tProd[x,16]:='1.00'; //<vDesc>
tProd[x,86]:='1.00'; //<voutro>
{ Grupo do ISSQN }
{ Se ISSQN for informado os grupos ICMS, IPI e II não serão informados e vice-versa (NF-e v2.0) }
tProd[x,39]:='';//'10.00'; //ISSQN <vBC>
tProd[x,40]:='';//'5.00'; //ISSQN <vAliq>
tProd[x,41]:='';//'0.50'; //ISSQN <vISSQN>
tProd[x,42]:='';//EditCodMunicipio.text; //ISSQN <cMunFG>
tProd[x,43]:='';//'101'; //ISSQN <cListServ>
tProd[x,70]:='';//'N'; //ISSQN: cSitTrib - Código da tributação do ISSQN: N – NORMAL; R – RETIDA; S –SUBSTITUTA; I – ISENTA. (v.2.0)
{ tag ICMS e CSOSN }
tProd[x,17]:='0'; //<orig>
tProd[x,18]:=EditICMSCST.Text; //<CST>
tProd[x,19]:='3'; //<modBC>
tProd[x,20]:='10.00'; //<vBC>
tProd[x,21]:='17.00'; //<pICMS>
tProd[x,22]:='1.70'; //<vICMS>
tProd[x,46]:='0'; //<modBCST>
tProd[x,47]:=''; //<pMVAST>
tProd[x,48]:=''; //<pRedBCST>
tProd[x,49]:='5.1'; //<vBCST> //icms60, ICMSSN500: vBCSTRet
tProd[x,50]:='12'; //<pICMSST>
tProd[x,51]:='0.12'; //<vICMSST> //icms60,ICMSSN500: vICMSSTRet
tProd[x,52]:='0.12'; //<pRedBC>
tProd[x,80]:='0.12'; //<pCredSN>
tProd[x,81]:='0.13'; //<vCredICMSSN>
tProd[x,85]:=''; //<motDesICMS> Informar o motivo da desoneração: 0 a 9, ver tabela no manual do contribuinte NF-e.
{ tag IPI }
tProd[x,23]:=EditIPI.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. }
tProd[x,78]:='5'; //IPI qUnid v6.03
tProd[x,79]:='6'; //IPI vUnid v6.03
tProd[x,24]:='0,00'; //IPI <vBC>
tProd[x,25]:='0,00'; //IPI <pIPI>
{ fim obs }
tProd[x,26]:='5.00'; //IPI <vIPI>
tProd[x,87]:='0'; //IPI <clEnq>
tProd[x,88]:='00000000000000'; //IPI <CNPJProd>
tProd[x,89]:='0'; //IPI <cSelo>
tProd[x,90]:='0'; //IPI <qSelo>
tProd[x,91]:='0'; //IPI <cEnq>
tProd[x,27]:='0'; //II <vBC>
tProd[x,28]:='0'; //II <vDespAdu>
tProd[x,29]:='0'; //II <vII>
tProd[x,30]:='0'; //II <vIOF>
{ tag PIS }
tProd[x,31]:=EditPis.Text; //<CST>
tProd[x,32]:='10.00'; //<vBC>
tProd[x,33]:='1.00'; //<pPIS>
tProd[x,34]:='0.10'; //<vPis>
tProd[x,45]:='0.1'; //<vAliqProd>
{ tag COFINS }
tProd[x,35]:=EditCofins.text; //<CST>
tProd[x,36]:='10.00'; //<vBC>
tProd[x,37]:='3.00'; //<pCOFINS>
tProd[x,38]:='0.30'; //<vCOFINS>
tProd[x,44]:='0.3'; //<vAliqProd>
{ tag PISST }
tProd[x,54]:=''; //vBC
tProd[x,55]:=''; //pPIS
tProd[x,56]:=''; //vPIS
{ tag COFINSST }
tProd[x,57]:=''; //vBC
tProd[x,58]:=''; //pCOFINS
tProd[x,59]:=''; //vCOFINS
{ Tag da Declaração de Importação }
tProd[x,60]:=''; //nDI
tProd[x,61]:=''; //dDI
tProd[x,62]:=''; //xLocDesemb
tProd[x,63]:=''; //UFDesemb
tProd[x,64]:=''; //dDesemb
tProd[x,65]:=''; //cExportador
tProd[x,66]:=''; //adi: nAdicao
tProd[x,67]:=''; //adi: nSeqAdic
tProd[x,68]:=''; //adi: cFabricante
tProd[x,69]:=''; //adi: vDescDI
tProd[x,83]:='1212'; //xPed
tProd[x,84]:='1313'; //nItemPed
{ Grupo do detalhamento de Medicamentos e de matériasprimas farmacêuticas }
tProd[x,71]:='1234567'; //nLote
tProd[x,72]:='123.123'; //qLote
tProd[x,73]:='2010-01-01'; //dFab
tProd[x,74]:='2011-01-01'; //dVal
tProd[x,75]:='222.123'; //vPMC
{ infAdProd - 2 posicoes p/ completar 500 caracteres }
tProd[x,53]:='REFERENCIA index primeiro '+IntToStr(x+1);
tProd[x,77]:='REFERENCIA index segundo '+IntToStr(x+1);
tProd[x,76]:='1'; //indTot v6.3.3 --> Indica se valor do Item (vProd) entra no valor total da NF-e (vProd)
{ Grupo do detalhamento de Veículos novos }
{ Informar apenas quando se tratar de veículos novos
ATENCAO! Informe sempre o delimitador ";" para este grupo }
tProd[x,82]:='1' +';'+ //tpOp
'12345678901234567' +';'+ //chassi
'123' +';'+ //cCor
'PRETO' +';'+ //xCor
'220' +';'+ //pot
'220' +';'+ //cilin
'2' +';'+ //pesoL
'2' +';'+ //pesoB
'21311213' +';'+ //nSerie
'02' +';'+ //tpComb
'123' +';'+ //nMotor
'500' +';'+ //CMT
'15' +';'+ //dist
'2011' +';'+ //anoMod
'2010' +';'+ //anoFab
'1' +';'+ //tpPint
'06' +';'+ //tpVeic
'1' +';'+ //espVeic
'N' +';'+ //VIN
'1' +';'+ //condVeic
'1234' +';'+ //cMod
'11' +';'+ //cCorDENATRAN
'5' +';'+ //lota
'0' +';'; //tpRest
//NOTA: Caso este item nao possua dados de veiculo, informe: tProd[x,82]:='';
end;