Ir para conteúdo
  • Cadastre-se

João Paulo F. Bellucci

Membros
  • Total de ítens

    110
  • Registro em

  • Última visita

Posts postados por João Paulo F. Bellucci

  1. Joao e demais..

     

    Por favor analisem o seguinte commit no "trunk2"

     

     

     

    Estamos concluindo o Trunk2 e logo ele será o repositório oficial... Por favor analise os fontes: ACBrPosPrinter.pas,  ACBrEscPosEpson.pas, ACBrEscDaruma.pas, ACBrEscBematech.pas (todos na pasta: \trunk2\Fontes\ACBrSerial)

     

    Ficará simples fazer impressão em Impressoras EscPOS.. sempre usando Tags.. veja um exemplo em "trunk2\Fontes\ACBrSAT\Extrato\EscPos\ACBrSATExtratoESCPOS.pas"

    procedure TACBrSATExtratoESCPOS.GerarRodape(CortaPapel: Boolean = True; Cancelamento: Boolean = False);
    var
      QRCode: AnsiString;
    begin
      FPosPrinter.Buffer.Add('</fn></linha_simples>');
      if Cancelamento then
         FPosPrinter.Buffer.Add(ACBrStr('<n>DADOS DO CUPOM FISCAL ELETRÔNICO CANCELADO</n>'));
    
      FPosPrinter.Buffer.Add('</ce>SAT No. <n>'+IntToStr(CFe.ide.nserieSAT)+'</n>');
      FPosPrinter.Buffer.Add(FormatDateTimeBr(CFe.ide.dEmi + CFe.ide.hEmi));
      FPosPrinter.Buffer.Add(' ');
      FPosPrinter.Buffer.Add('<c>'+FormatarChaveAcesso(CFe.infCFe.ID)+'</fn>');
      FPosPrinter.Buffer.Add(' ');
    
      FPosPrinter.Buffer.Add('<code128>'+copy(CFe.infCFe.ID,1,22)+'</code128>');
      FPosPrinter.Buffer.Add('<code128>'+copy(CFe.infCFe.ID,23,22)+'</code128>');
      FPosPrinter.Buffer.Add(' ');
    
      if ImprimeQRCode then
      begin
        QRCode := CalcularConteudoQRCode( CFe.infCFe.ID,
                                          CFe.ide.dEmi+CFe.ide.hEmi,
                                          CFe.Total.vCFe,
                                          Trim(CFe.Dest.CNPJCPF),
                                          CFe.ide.assinaturaQRCODE );
    
        FPosPrinter.Buffer.Add('<qrcode>'+QRCode+'</qrcode>');
      end;
    
      if CortaPapel then
        FPosPrinter.Buffer.Add('</corte_total>');
    end;

    O componente foi criado, levando em consideração as implementações nos fontes: do ACBrNFeDANFeESCPOS.pas, ACBrSATExtratoESCPOS.pas  e nos fontes do João

    Legal ficou bem bacana vou baixar para testar.

  2. João!

     

    Muito bom seu trabalho! Testei aqui com a Daruma DR700 e ficou perfeito! Parabéns!

     

    Vamos aguardar o Daniel atualizar o repositório.

     

    Só uma pergunta/sugestão: Não seria interessante montar os extratos sem usar acentuação? (para diminuir configurações de página de código, etc. etc. com as impressoras)

     

    []s

     

    José Santos

    Obrigado.

     

    Podemos fazer um parametro de configuração para retirar a acentuação, mas aqui não tive problemas com isso pois configurando o code page funcionou perfeito. O único problema da Daruma é que o code page dela só da para ser configurado pelo programa de configuração dela.Já as outras impressoras é possível configurar via código.

  3. Legal João,

     

    Muito obrigado pela ajuda! Na quarta nos veremos por volta das 9h.

     

     

    []s,

     

    Rogério

    Bom dia, Rogério.

     

    A impressora Bematech TH-4000 que você me enviou já esta funcionando só que ela tem uma problema no modo ESC/POS ela não possui o suporte para QRCODE pelo que pesquisei só o modelo TH-4200 ou seja essa impressora foi descontinuada então para poder utilizar ela somente em modo Gráfico usando o drive do windows que funcionou perfeitamente aqui nos testes.

  4. Ôpa, somos praticamente vizinhos, se você puder na quarta-feira pela manhã (9h) passo aí, é só me mandar o endereço.

     

    []s,

     

    Rogério

    Pode trazer sim.

    Endereço: Rua Angelo Luvizotto, 146

    Bairro: Centro

    Telefone: (15)3384-4544

    É um prédio Azul e tem uma farmácia em baixo.

    É só entrar na Farmácia e pedir para falar com o João Paulo

  5. João, 

     

     

    Sou de Indaiatuba e com frequência percorro algumas cidades do interior e grande SP então a principio não seria sacrifício nenhum levá-la até você.

     

    []s,

     

    Rogério

    Rogerio,

     

    Sou de Cerquilho, caso queira passar aqui para deixar a impressora estou a disposição.

  6. João,

     

    Obrigado pelo retorno, você é de SP capital? Se for posso te emprestar a que eu tenho aqui (sem qualquer tipo de interesse kkkk) e você implementa, ok?

     

    O Daniel te deu algum retorno das implementações que você anexou para ele? Ele me disse que já existe isso mas apenas para a NFCe e que ele precisava criar uma classe e adaptar para o SAT, mas se você já está fazendo imagino que  ele economizará um bom tempo.

     

    []s,

     

     

    Rogério

    Boa tarde.

     

    Sou de SP só que interior, se quiser despachar a impressora eu implemento sim sem problemas.

    Estou postando para o Daniel o que estou fazendo, ele deve estar analisando, ainda não tive nenhuma resposta.

    Mas as impressoras que postei aqui já estão funcionando Ok com essa implementações.

  7. João,

     

    Você testou com a Bematech mp-4000? 

    Para usar o que você fez é só copiar por cima da unit que tenho aqui ou precisa rodar o Install do ACBR novamente?

    Só copiar a unit por cima e depois rodar o install.

    Ainda não testei com a Bematech estou esperando chegar uma aqui para poder homologar.

  8. Bom dia.

     

    Boa noite

    desculpe mas não entendi o motivo da mudança?

    veja que você seta uma informação após gerar o PDF para mostrar o preview

    onde neste caso já se encerrou o processo!

    Bom dia.

     

    Se você enviar o e-mail de uma nota e depois você emite uma outra nota e manda imprimir com preview, e na tela do preview manda exportar para PDF não abre mais a caixa de dialogo de exportação do PDF, pois ao enviar o e-mail é usada a rotina acima que desliga o showdialog do PDF e não religa mais ela.

     

    Segue os passo para reproduzir o problema:

     

    1 - ACBrNFe.NotasFiscais.Items[0].EnviarEmail();

     

    2 - ACBrNFe.NotasFiscais.Imprimir;

         Lembrando que esta marcada a opção de mostrar o preview.

         Na tela do preview manda exportar para PDF, você irá notar que não irá mais aparecer a caixa de dialogo de exportação do PDF.

  9. Encontrei um BUG gerado depois de enviar e-mail da NFe, que qualquer nota que tetar ver o Preview, e clicar no botão exportar para PDF não aparecia a caixa de dialogo de exportação do PDF.

     

    Para solucionar tive que fazer a alteração no código.

     

    ACBrNFeDANFEFR.pas

     

    Adicionei o código "FdmDanfe.frxPDFExport.ShowDialog := True;" voltar o ShowDialog nas duas funções a baixo:

     

    procedure TACBrNFeDANFEFR.ImprimirDANFEPDF(NFE: TNFe);

    const
      TITULO_PDF = 'Nota Fiscal Eletrônica';
    var
      I: Integer;
    begin
      if PrepareReport(NFE) then
      begin
        FdmDanfe.frxPDFExport.Author     := Sistema;
        FdmDanfe.frxPDFExport.Creator    := Sistema;
        FdmDanfe.frxPDFExport.Producer   := Sistema;
        FdmDanfe.frxPDFExport.Title      := TITULO_PDF;
        FdmDanfe.frxPDFExport.Subject    := TITULO_PDF;
        FdmDanfe.frxPDFExport.Keywords   := TITULO_PDF;
        FdmDanfe.frxPDFExport.ShowDialog := False;
     
        for I := 0 to TACBrNFe(ACBrNFe).NotasFiscais.Count - 1 do
        begin
          FdmDanfe.frxPDFExport.FileName := PathPDF +
                                           StringReplace(UpperCase(FdmDanfe.NFe.infNFe.ID),'NFE','', [rfReplaceAll, rfIgnoreCase]) +
                                           '-nfe.pdf';
          FdmDanfe.frxReport.Export(FdmDanfe.frxPDFExport);
        end;
     
        //Volta o ShowDialog para ser exibido na tela Preview
        FdmDanfe.frxPDFExport.ShowDialog := True;   
      end;
    end;
     
    procedure TACBrNFeDANFEFR.ImprimirEVENTOPDF(NFE: TNFe);
    const
      TITULO_PDF = 'Eventos Nota Fiscal Eletrônica';
    var
      NomeArq: String;
    begin
      if PrepareReportEvento then
      begin
        FdmDanfe.frxPDFExport.Author     := Sistema;
        FdmDanfe.frxPDFExport.Creator    := Sistema;
        FdmDanfe.frxPDFExport.Producer   := Sistema;
        FdmDanfe.frxPDFExport.Title      := TITULO_PDF;
        FdmDanfe.frxPDFExport.Subject    := TITULO_PDF;
        FdmDanfe.frxPDFExport.Keywords   := TITULO_PDF;
        FdmDanfe.frxPDFExport.ShowDialog := False;
     
        {
        NomeArq := TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.chNFe;
        NomeArq := NomeArq + '-' + TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.TipoEvento;
        NomeArq := NomeArq + '-' + IntToStr(TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.nSeqEvento);
        }
        {
        NomeArq := TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.TipoEvento;
        NomeArq := NomeArq + TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.chNFe;
        }
     
    //    NomeArq := Copy(TACBrNFe(ACBrNFe).EventoNFe.Evento.Items[0].InfEvento.id, 3, 52);
     
        NomeArq := StringReplace(TACBrNFe(ACBrNFe).EventoNFe.Evento.Items[0].InfEvento.id, 'ID', '', [rfIgnoreCase]);
     
        FdmDanfe.frxPDFExport.FileName := PathWithDelim(Self.PathPDF) + NomeArq + '-procEventoNFe.pdf';
        FdmDanfe.frxReport.Export(FdmDanfe.frxPDFExport);
     
        //Volta o ShowDialog para ser exibido na tela Preview
        FdmDanfe.frxPDFExport.ShowDialog := True;
      end;
    end;

     

    ACBrNFeDANFEFR.zip

  10. Temos duas possibilidades aqui.

     

    1) Implementar algo como foi feito com o Registro C100, onde o componente trata o caso de acordo com a situação da nota.

    2) implementar as modificações para o tipo Variant, conforme esse

    Acredito que a primeira seja mais interessante, pois deixaríamos a geração do layout de acordo com o validador, não dependendo de fazer isso pelo código próprio.

    Caso queira posso fazer essa modificação e enviar aqui.

  11. Estou gerando os registros para CFe-SAT C800 e estou tendo problemas com campos que não devem ser preenchidos quando o cupom esta cancelado.

     

    Mesmo não colocando valores o componente joga valores no campo e o validador do SEFAZ não aceita.

     

    Exite solução para este problema?

    post-9229-0-12718300-1427136077_thumb.jp

  12. Bom dia a todos.

    Andei estudando DataSnap e vi que estamos com a faca e o queijo na mão. É só pegar o SATTeste e transformar ele em um servidor DataSnap, expondo as principais funções do SAT como métodos do servidor.

    Implementar uma fila interna para gerenciar as transações. No checkout é só apntar pro ip onde o servidor está, montar o XML do CFe e mandar pro método no servidor como parametro texto e esperar o retorno.

    O que acham?

    É isso ai, não existe segredo para se criar um gerenciador, fiz basicamente isso com o meu.

  13. Bom dia João, preciso da sua ajuda sim.

    Voce implementou tipo um ACBrMonitor com todas as funções que o sat precisa (venda, rotinas de teste, cancelamentos) que se comunica via RESTful (usou datasnap?) e a AC manda comandos e aguarda retorno pra continuar a venda? Voce colocou em produção? Esta rapido?

    Parece que os desenvolvedores (softwarehouse, não o ACBr) não estão dan a importancia devida pra esse assunto... Quem vai querer comprar um SAT por caixa se pode ter um pra loja toda? E quando a NFCe vigorar e o SAT for a contingencia offline?

    Agradeço muito se puder me ajudar.

    Att.

    Exatamente usei o dadasnap, o mês que vem vou colocar em produção, ficou bem rápido, tenho o SAT DIMEP aqui e os teste em questão de velocidade ficou bem rápido não teve diferença para uso local e uso em compartilhamento.

    Eu mando as informações para meu gerenciador do SAT ele retornar se o cupom foi emitido ou cancelado com sucesso e depois finalizo a venda.

    O componente SAT ficou muito bom com ele você consegue fazer as duas coisas, deixar local ou desenvolver um gerenciador para atender clientes que queiram compartilhar o SAT, a única coisa que você terá que fazer é controlar as filas de requisições no seu gerenciador.

    Mas como o Daniel falou em caso de problema da rede seu cliente irá ficar sem vender, mais isso é uma opção que o cliente tem que estar ciente.

  14. Já fiz o desenvolvimento do meu gerenciado de SAT, foi bem tranquilo, controlo a fila de requisições do PDV e devolvo para eles os resultados.

    Utilizei protocolo RESTful para fazer a comunicação entre o PDV e o gerenciador de SAT o que facilitou bastante.

    No que puder ajudar estou a disposição.

    • Curtir 1
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.