Delphi: Le DBF e CRIA o XML e TXT para NFE 2.0

Fórum sobre outras linguagens de programação.

Moderador: Moderadores

softcia
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 26 Out 2010 09:27
Localização: Santa Maria RS

Delphi: Le DBF e CRIA o XML e TXT para NFE 2.0

Mensagem por softcia »

Boa tarde, Amigos,

Criei um projeto em Delphi que le perfeitamente o DBF do Clipper. E se as tabelas possuirem todas as informações é possivel gerar a NFE 2.0,
e ainda validando e assinando o XML. Depois exportar para o Programa Emissor gratuito para fazer a sua validação, Assinatura, Transmissao e
Impressão da NFE.
O projeto ainda envia email DO XML E PDF.

Ele utiliza o Componente ACBRNFE2 para gerar e validar o XML.

Se alguem precisar. Mande um arquivo zipado com as tabelas: Que gero um demo com suas tabelas.


Mario Moreira
softcia@hotmail.com
softciasma@hotmail.com
softcia@gmail.com


EXEMPLO:

Código: Selecionar todos

procedure tGerarNFEACBR20.GerarNFe(NumNFe: string);var

  orig: string;
  CST: string;
  modBC: string;
  pRedBC: double;
  vBC: double;
  pICMS: double;
  vICMS: double;
  modBCST: string;
  pMVAST: double;
  pRedBCST: double;
  vBCST: double;
  pICMSST: double;
  vICMSST: double;
  UFST: string;
  pBCop: double;
  vBCSTRet: double;
  vICMSSTRet: double;
  motDesICMS: string;
  vBCSTDest: double;
  vICMSSTDest: double;
  pCredSN: double;
  vCredICMSSN: double;
  QPROD: INTEGER;
  NF_OBS: string;
  nf_fis: string;

  resultB: string;

//	orig	Origem da mercadoria
//	CST	Tributação do ICMS
//	modBC	Modalidade de determinação da BC do ICMS
//	pRedBC	Percentual da Redução de BC
//	vBC	Valor da BC do ICMS
//	pICMS	Alíquota do imposto
//	vICMS	Valor do ICMS
//	modBCST	Modalidade de determinação da BC do ICMS ST
//	pMVAST	Percentual da margem de valor Adicionado do ICMS ST
//	pRedBCST	Percentual da Redução de BC do ICMS ST
//	vBCST	Valor da BC do ICMS ST
//	pICMSST	Alíquota do imposto do ICMS ST
//	vICMSST	Valor do ICMS ST
//	UFST	UF para qual é devido o ICMS ST
//	pBCop	Percentual da BC operação própria
//	vBCSTRet	Valor da BC do ICMS Retido Anteriormente
//	vICMSSTRet	Valor do ICMS Retido Anteriormente
//	motDesICMS	Motivo da desoneração do ICMS
//	vBCSTDest	Valor da BC do ICMS ST da UF destino
//	vICMSSTDest	Valor do ICMS ST da UF destino
//	pCredSN	Alíquota aplicável de cálculo do crédito (Simples Nacional)
//	vCredICMSSN	Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (SIMPLES NACIONAL)

begin
  with ACBrNFe1.NotasFiscais.Add.NFe do
  begin
    Ide.cNF := StrToInt(NumNFe); //Caso não seja preenchido será gerado um número aleatório pelo componente


// dados das tabelas DBFs.

    NOSDAD01.Close;
    NOSDAD01.SQL.Clear;
    nosdad01.SQL.ADD('SELECT * FROM ' + QUOTEDSTR(RESULSQL + '\NOSDAD01.DBF'));
    NOSDAD01.SQL.ADD(' WHERE CP01 = ' + QUOTEDSTR(STRZERO(StrToInt(NumNFe), 6)));
    NOSDAD01.Open;

{    NOSDAD01.Locate('CP01', STRZERO(StrToInt(NumNFe), 6), [loCaseInsensitive, loPartialKey]);
    NOSDAD01.Filter := 'CP01 = ' + QUOTEDSTR(STRZERO(StrToInt(NumNFe), 6));
    nosdad01.Filtered := TRUE;}

    NATNF01.SQL.CLEAR;
    NATNF01.SQL.ADD('SELECT * FROM ' + QUOTEDSTR(RESULSQL + '\NATNFI01.DBF'));
    NATNF01.SQL.Add(' WHERE CP01 = ' + QUOTEDSTR(nosdad01CP07.AsString));
    NATNF01.Open;

    //NATNF01.Locate('CP01', nosdad01CP07.AsString, [loCaseInsensitive, loPartialKey]);

    Ide.natOp := NATNF01CP02.AsString;

 {   NOSDAD01.Locate('CP01', STRZERO(StrToInt(NumNFe), 6), [loCaseInsensitive, loPartialKey]);
    NOSDAD01.Filter := 'CP01 = ' + QUOTEDSTR(STRZERO(StrToInt(NumNFe), 6));
    nosdad01.Filtered := TRUE;}

    CONDPG01.Locate('CP01', nosdad01CP08.AsString, [loCaseInsensitive, loPartialKey]);

// Preenchimento do componente  com os campos DBF das tabelas.




    Ide.indPag := ipOutras;
    if CONDPG01CP02.AsString = 'AV' then
      Ide.indPag := ipVista;
    if CONDPG01CP02.AsString = 'AP' then
      Ide.indPag := ipPrazo;

    Ide.modelo := 55;
    Ide.serie := EMPRESASERIENFE.AsInteger;
    Ide.nNF := StrToInt(NumNFe);
    Ide.dEmi := nosdad01CP05.AsDateTime;
    Ide.dSaiEnt := nosdad01CP06.AsDateTime;
    Ide.hSaiEnt := nosdad01CP06.AsDateTime;
    Ide.tpNF := tnSaida;

    if ((COPY(NATNF01CP04.AsString, 1, 1) = '1') or (COPY(NATNF01CP04.AsString, 1, 1) = '2') or (COPY(NATNF01CP04.AsString, 1, 1) = '3')) then
      Ide.tpNF := tnEntrada
    else
      Ide.tpNF := tnSaida;

    Ide.tpEmis := teNormal;
    if EMPRESAAMBIENTE.AsString = '1' then
      Ide.tpAmb := taProducao
    else
      Ide.tpAmb := taHomologacao; //Lembre-se de trocar esta variável quando for para ambiente de produção

    Ide.verProc := EMPRESAVERSAO.AsString; // '2.0.7'; //Versão do seu sistema
    Ide.cUF := NotaUtil.UFtoCUF('RS');
    Ide.cMunFG := StrToInt('4316907');
    Ide.finNFe := fnNormal;
    ide.procEmi := peContribuinteAplicativoFisco;
Editado pela última vez por Pablo César em 15 Abr 2011 18:59, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Delphi: Le DBF e CRIA o XML e TXT para NFE 2.0

Mensagem por sygecom »

Se for gratuito post o link de download. Se não for gratuito qual a vantagem sobre o AcbrNfeMonitor ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder