DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!

Nota Fiscal Eletrônica – Um caso real – Parte 2b

Como minimizar o trabalho de manutenção dos ERPs para integrá-los a NF-e?

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

 

Continuação da Parte 2a.

Na listagem seguinte é apresentada a primeira parte do método que gera o arquivo de solicitação para emissão da NF-e (GerarNFe). Embora o método seja grande, ele é simples, pois basicamente ele captura os dados da nota fiscal persistida no ERP e formata o arquivo de solicitação no mesmo local do aplicativo.

Observação1:

Devido o tamanho do método, ele não pode ser colocado num único artigo.

Observação2:

A geração do arquivo no mesmo Path do aplicativo é recomendada, pois isto evita que o middleware tente consumir um arquivo que ainda não foi finalizado pelo ERP.

 

// Método para gerar o arquivo de solicitação de emissão da NF-e

function TCASSICNFe.GerarNFe(DataSet_Munic, DataSet_DF, DataSet_DF_Item: TSQLQuery): Boolean;

var

  ArqDados: TextFile;

  Cont: Integer;

  FilePath: string;

  Munic, CFOPProd: string;

  CGF: string;

begin

  try

    Result := True;

    FDataSet_Munic := DataSet_Munic;

    Munic := MunicID(

      DataSet_DF.FieldByName('UF').AsString,

      DataSet_DF.FieldByName('Cidade').AsString);

    CGF := DataSet_DF.FieldByName('CGF').AsString;

    if ( Trim(CGF) = '' ) then CGF := 'ISENTO';

    // Arquivo temporário

    FilePath :=  ExtractFilePath( Application.Exename ) + '\NFE_SOLIC.TXT';

    FilePath := StringReplace(FilePath, '\\', '\', [rfReplaceAll]);

    // Inicia Arquivo NFE_SOLIC.TXT

    AssignFile(ArqDados, FilePath);

    Rewrite( ArqDados );

    /////////////////////////

    //                     //

    // Abertura do Arquivo //

    //                     //

    /////////////////////////

    // CNPJ da empresa usuária do CASSIC NF-e

    Writeln(ArqDados, '0000' +

      FCNPJ);

    // Versão do Layout

    Writeln(ArqDados, '0001' +

      '01.01.001');

    // Tipo de mensagem

    Writeln(ArqDados, '0002' +

      '0001');

    /////////////////////////////////

    //                             //

    // Configuração da Nota Fiscal //

    //                             //

    /////////////////////////////////

    // ID da nota fiscal gerada no Aplicativo Cliente

    Writeln(ArqDados, '0500' +

      DataSet_DF.FieldByName('ID').AsString);

    ///////////////////////////////////////

    //                                   //

    // Dados Operacionais da Nota Fiscal //

    //                                   //

    ///////////////////////////////////////

    // Código da natureza da operação - Tabela XI

    Writeln(ArqDados, '1000' +

      DataSet_DF.FieldByName('Operacao').AsString);

    // Descrição da natureza da operação

    Writeln(ArqDados, '1005' +

      DataSet_DF.FieldByName('CFOPDescr').AsString);

    // CGF para a substituição tributária

    Writeln(ArqDados, '1010' +

      DataSet_DF.FieldByName('CGFSubst').AsString);

    // CFOP da nota fiscal

    Writeln(ArqDados, '1020' +

      DataSet_DF.FieldByName('CFOP').AsString);

    // Data de emissão da nota fiscal

    Writeln(ArqDados, '1030' +

      DataSet_DF.FieldByName('DtEmissao').AsString);

    // Data de saída ou entrada da nota fiscal, de acordo com o campo 1000

    Writeln(ArqDados, '1040' +

      DataSet_DF.FieldByName('DtSaida').AsString);

    // Hora da saída ou entrada da nota fiscal, de acordo com o campo 1000

    Writeln(ArqDados, '1050' +

      DataSet_DF.FieldByName('HsSaida').AsString);

    // Indicador da forma de pagamento - Tabela I

    Writeln(ArqDados, '1060' +

      DataSet_DF.FieldByName('Fatura').AsString);

    //////////////////////

    //                  //

    // Dados do Cliente //

    //                  //

    //////////////////////

    // Razão Social do cliente

    Writeln(ArqDados, '1100' +

      DataSet_DF.FieldByName('Cliente').AsString);

    // Logradouro do cliente

    Writeln(ArqDados, '1110' +

      DataSet_DF.FieldByName('Lograd').AsString);

    // Número do logradouro do cliente

    Writeln(ArqDados, '1111' +

      DataSet_DF.FieldByName('LogradNum').AsString);

    // Complemento do endereço do cliente

    Writeln(ArqDados, '1120' +

      '');

    // Bairro do cliente

    Writeln(ArqDados, '1130' +

      DataSet_DF.FieldByName('Bairro').AsString);

    // CEP do cliente

    Writeln(ArqDados, '1140' +

      DataSet_DF.FieldByName('CEP').AsString);

    // ID do município do cliente - Anexo II

    Writeln(ArqDados, '1150' +

      Munic);

    // Unidade federativa do cliente

    Writeln(ArqDados, '1160' +

      DataSet_DF.FieldByName('UF').AsString);

    // ID do país do cliente. Anexo III

    Writeln(ArqDados, '1170' +

      '1058');

    // Número do telefone do cliente

    Writeln(ArqDados, '1180' +

      DataSet_DF.FieldByName('Fone').AsString);

    // e-mail do cliente

    Writeln(ArqDados, '1190' +

      DataSet_DF.FieldByName('eMail').AsString);

    // CNPJ do cliente

    Writeln(ArqDados, '1200' +

      DataSet_DF.FieldByName('CNPJ').AsString);

    // CPF do cliente

    Writeln(ArqDados, '1201' +

      DataSet_DF.FieldByName('CPF').AsString);

    // CGF do cliente

    Writeln(ArqDados, '1210' +

      CGF);

    // SUFRAMA do cliente

    Writeln(ArqDados, '1220' +

      DataSet_DF.FieldByName('SUFRAMA').AsString);

...

Continua no próximo artigo

 

Artigo escrito por http://www.cassic.com.br/


Cicero Tadeu Pereira Lima França
Mestre em Computação Aplicada; Especialista em Gestão de Projetos de TI; Especialista em Engenharia de Software; Tecnólogo em Automática; Certified ScrumMaster.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
[Fechar] Você precisa estar logado para dar seu feedback.

Clique aqui para efetuar o login

Caso não tenha um cadastro DevMedia, clique aqui para se cadastrar (gratuito)
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03