Jump to content

ROGERIO EDVAR DE SOUZA

Membros
  • Posts

    117
  • Joined

  • Last visited

Community Answers

  1. ROGERIO EDVAR DE SOUZA's post in Como CANCELAR uma NFCe pela Chave? was marked as the answer   
    Obrigado, Juliana...
    Deu certo...
    - Faltava PREENCHER o protocolo de autorização... estava indo em branco..
    - O código está 100% correto e funciona de maneira idêntica para cancelamento de NFe,
    somente logicamente o período permitido para cancelamento é totalmente diferente.
     
    Então, a explicação de contingência passada pelo consultor Deynison é a seguinte :
    Exemplo de contingência:
    1 - Tenta enviar a 20, não obteve retorno
    2 - Gera a 21 e envia NFCe em contingência offline, marcando no BD que aguarda envio
    3.1 - Ao voltar comunicação, emite a 21 normalmente , sem ser em contingência
     
    3.2 - Se houver algum retorno de erro,
    deixa usuário corrigir e reenvia a mesma 21, com mesma chave (um dos NCM está errado, por exemplo)
    4 - Após autorizar a 21 :
    5 - Caso a 20 tinha sido autorizada mas o sistema não obteve retorno do SEFAZ , CANCELA NFCe
    6 - Caso a 20 NÃO tenha sido NEM autorizada, simplesmente INUTILIZA 
     
    PODE FECHAR O TÓPICO!... OBRIGADO!!!
     
     
  2. ROGERIO EDVAR DE SOUZA's post in Chave diferente, após recuperar venda, com ECFVirtual was marked as the answer   
    SOLUÇÃO ABAIXO, explicado por RAFAEL DIAS, podem FECHAR o TÓPICO
     
    - - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -
    ACBrECF com NFCe , OBTENDO chave da NFCe mesmo quando NÃO comunica :
    - - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -
    (a) ACBrECF1.FechaCupom ;
    - - - -- - - -- - - 
    (b) Abaixo, no Evento : ACBrECFVirtualNFCeQuandoFecharDocumento:

    b.1 => Insere VALORES que NÃO SÃO automáticos nos campos NFe e ACBrNFe,
    como se o ambiente é de homologação, se é Normal ou em contingência, se é à vista, a prazo...

    b.2=> ACBrNFe1.NotasFiscais.Assinar; (faz gerar a chave)

    b.3=> ShowMessage('Deu certo !!! Chave da NFCe GERADA = '+#13+
    'ACBrNFe1.infNFe.ID = '+ Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID,4,44 ));Dúvida SANADA :

    - - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -
  3. ROGERIO EDVAR DE SOUZA's post in NFCe em contingência offline "tentando conectar ao servidor" was marked as the answer   
    Deu certo...
    Faltava a configuração :
    Configuracoes.Geral.FormaEmissao :=teOffLine ;
    Obrigado!
  4. ROGERIO EDVAR DE SOUZA's post in Como criar classe herdada de TACBrECFVirtualNaoFiscalClass sobrescrevendo método da RedZ, p/não imprimir RZ? was marked as the answer   
    Boa tarde...  (podem fechar o tópico) ...
    - Consegui fazer a alteração, utilizei um software "Superfinder" para encontrar
    onde tinha sido feita a impressão da REDUÇÃO Z Virtual.
    - Segue abaixo a alteração, dando minha pequena contribuição ao Fórum, evitando que RZ seja impressa,
    - Basta substituir o evento dentro de : C:\ACBR\Fontes\ACBrSerial\ACBrECFVirtual.pas pelo que alterei abaixo 
    // 16/04/2029.Carlos : Redução Z da CLASSE VIRTUAL alterada :
    // Casos:
    // (1) Se a impressora estiver BLOQUEADA (RZ já tirada), simplesmente DESBLOQUEIA e SAI
    // ...
    // (2) Reiniciando valores sem impressão: Se estiver "requisitando RZ"(dia seguinte), ou imprimindo Z, então,
    // emite aviso "Iniciando Novo dia de Movimento" e limpa valores e libera Impressora
    // ...
    // (3) Reiniciando valores sem impressão: Se estiver "Livre"(dia seguinte), ou imprimindo Z, então,
    // emite pergunta "Reiniciar dia de Movimento?" ... se sim, limpa valores e libera Impressora
    // ...
    // Units extras que precisei : WIndows{Mb_Ok}, Forms{Appliaction},  Controls{mrNo}  ,
    // ...
    procedure TACBrECFVirtualClass.ReducaoZ(DataHora : TDateTime) ;
    var
    A: Integer ;
    begin
      GravaLog( ComandoLOG );
       // (1) Se a impressora estiver BLOQUEADA (RZ já tirada), simplesmente DESBLOQUEIA e SAI
       if Estado = estBloqueada then
       Begin
         // Como era: raise EACBrECFERRO.Create(ACBrStr('Dia já foi fechado. Redução Z já emitida')) ;
         //
         fpEstado := estLivre ; fpDia    := now ;  Exit;
       End;
      // Se o estado não for LIVRE nem for REQUER REDUÇÃO Z :
      if not (Estado in [estLivre,estRequerZ]) then
      Begin
         raise EACBrECFERRO.create(ACBrStr('O Estado não é "LIVRE" Cancele o último Documento')) ;
      End;
       // (2) Se estiver "requisitando RZ"(dia seguinte), ou imprimindo Z, então,
       // emite aviso "Iniciando Novo dia de Movimento" e limpa valores e libera Impressora
       if Estado=estRequerZ then
         Application.MessageBox(
         'Clique em [Ok] para iniciar Novo dia de Movimento',
         'Leia com Atenção', MB_OK + MB_IconInformation );

       // (3) Reiniciando valores sem impressão: Se estiver "Livre"(dia seguinte), ou imprimindo Z, então,
       // emite pergunta "Reiniciar dia de Movimento?" ... se sim, limpa valores e libera Impressora
       if Estado=estLivre then
       Begin
          If Application.MessageBox( Pchar(
          '* Redução Z Virtual - Sem Impressão  *'+#13+#13+#13+
          'Reiniciar dia de Movimento ?'+#13+#13+
          '[Sim] = Leitura X Virtual será reiniciada;'+#13+
          '[Não] = Leitura X Virtual continuará acumulando valores;'),
          'Responda com Atenção', MB_YESNO + MB_DefButton2 + Mb_IconQuestion )=MrNo then
          Exit;
       End;
         //

      try
        ZeraCupom;
        fpReducoesZ := fpReducoesZ + 1 ;
        // ReducaoZVirtual( DataHora ); Local que ocorreria a impressão
    {  Como ERA :
      if fpEstado = estRequerZ then
        begin
          fpEstado := estLivre ;
          fpDia    := now ;
        end
        else
          fpEstado := estBloqueada ; }
          fpEstado := estLivre ;
          fpDia    := now ;

        fpNumCER     := 0;
        fpVendaBruta := 0;
        fpTotalDescontosICMS   := 0;
        fpTotalDescontosISSQN  := 0;
        fpTotalAcrescimosICMS  := 0;
        fpTotalAcrescimosISSQN := 0;
        fpCNFCancelados        := 0;
        fpCNFCanceladosTotal   := 0;
        fpCuponsCancelados     := 0;
        fpCuponsCanceladosTotalICMS  := 0;
        fpCuponsCanceladosTotalISSQN := 0;
        fpCuponsCanceladosEmAberto   := 0;
        fpCuponsCanceladosEmAbertoTotalICMS  := 0;
        fpCuponsCanceladosEmAbertoTotalISSQN := 0;
        For A := 0 to fpAliquotas.Count - 1 do
          fpAliquotas[A].Total := 0 ;
        For A := 0 to fpFormasPagamentos.Count - 1 do
          fpFormasPagamentos[A].Total := 0 ;
        For A := 0 to fpComprovantesNaoFiscais.Count - 1 do
        begin
          fpComprovantesNaoFiscais[A].Total := 0 ;
          fpComprovantesNaoFiscais[A].Contador := 0 ;
        end;
        For A := 0 to fpRelatoriosGerenciais.Count - 1 do
            fpRelatoriosGerenciais[A].Contador := 0 ;
          AbreDia;
        //  AbreDocumento ; parte da impressão
      except
        LeArqINI ;
        raise ;
      end ;
    end; // procedure TACBrECFVirtualClass.ReducaoZ(DataHora : TDateTime) ;
  5. ROGERIO EDVAR DE SOUZA's post in NFe passou a emitir erradamente DANFe da NFCe ... was marked as the answer   
    *Muitíssimo obrigado !!! Valeu!!! Deu certo* ... (Pode fechar o tópico)
    Então fica a explicação para quem ler este tópico... para que a propriedade ACBrNFe.Enviar(...
    uncione de acordo, configure assim :
    Para ACBrNFe
    ACBrNFe1.DANFE := ACBrNFeDANFeRL1;
    Para ACBrNFCe
    ACBrNFe1.DANFE := ACBrNFeDANFCeFortes1;
    ou
    ACBrNFe1.DANFE := ACBrNFeDANFeESCPOS1;
  6. ROGERIO EDVAR DE SOUZA's post in NFCe : Erro ao executar " ACBrNFe1.Enviar(vNumLote,True,Sincrono)" was marked as the answer   
    Olhei em outro tópico a resposta...
    Adicionando esta linha  evitou o erro : 
     ACBrNFe1.Configuracoes.Geral.VersaoQRCode:=veqr200; 
    Obrigado!
  7. ROGERIO EDVAR DE SOUZA's post in NFCe com ACBrECFVirtualNFCe exigindo REDUÇÃO Z desnecessariamente was marked as the answer   
    Daniel, boa tarde...
    Queria que analisasse se o que fiz "causa algum problema".
    * Fiz algo p/ "contornar" a exigência de REDUÇÃO Z ao trabalhar com NFCe utilizando componentes TACBrECF e TACBrECFVirtualNFCe;
    * Após ATIVAR o objeto derivado do componente TACBrECF, eu simplesmente analiso se está trabalhando com NFCe,
    pelas propriedades Modelo e ECFVirtual do objeto derivado do Componente TACBrECF.
    Caso esteja utilizando NFCe, eu :
    (1) DESATIVO o objeto derivado do componente TACBrECF
    (2) Altero o .ini, cabeçalho Variaveis, campo Estado, mudando de 7 para 2
    (3) REATIVO o objeto derivado do componente TACBrECF
    As dúvidas são:
    (a) Tenho que alterar "mais algo" (porque aqui deu certo)
    (b) Isto ocasiona algum problema ?
    Obrigado !  
     
  8. ROGERIO EDVAR DE SOUZA's post in NFCe : Communication error 9997, Timeout during operation was marked as the answer   
    Consegui corrigir,
    Mesmo assim obrigado a quem leu e/ou tentou ajudar...
    Basta aumentar o valor da propriedade 
    ACBrPosPrinter.Device.SendBytesCount , colocando entre 100 e 200 funcionou...
    (está como padrão ZERO).
    Daí pode-se imprimir uma leitura X pelo ACBrPOSPRINTER que não dá a mensagem de erro...
    (ACBrECF.LeituraX)
    Podem fechar o POST...
    Obrigado!
  9. ROGERIO EDVAR DE SOUZA's post in Parou de funcionar os acentos na Daruma DR800 was marked as the answer   
    Obrigado novamente pelo auxílio...
    Eu fiz assim... gravei tudo num .ini, todas configurações, em um "parametrizador de ECF e de NFCe",
    daí tem uma função utiliza que lê o .ini, da seguinte maneira :
          // Se o Modelo da ECF foi marcado como ecfVirtual ...
          If (V_INI.ReadInteger('ECF', 'Modelo', 0 )=17)  and
          //
          // E Se for propriedade ACBR.VIRTUAL = NFCe
          ((V_ECF_Virtual = 2) and (E_ACBrECFVirtualNFCe<>Nil)) then
          // ...
          With E_ACBrPosPrinter DO
          Begin
             // TACBrPosPaginaCodigo = (pcNone, pc437, pc850, pc852, pc860, pcUTF8, pc1252);
             PaginaDeCodigo := TACBrPosPaginaCodigo( V_INI.ReadInteger( 'ACBrPosPrinter', 'PaginaDeCodigo', 6{ padrão = pc1252} ) );
             //
             Porta   := V_INI.ReadString('ACBrPosPrinter', 'Porta', 'COM1');
             //
             Device.ParamsString := V_INI.ReadString('ACBrPosPrinter', 'ParamsString', '');
             //
             E_ACBrPosPrinter.Modelo := TACBrPosPrinterModelo( V_Ini.ReadInteger( 'ACBrPosPrinter', 'Modelo', 0 ) ) ;
             E_ACBrECF.ECFVirtual    := E_ACBrECFVirtualNFCe ;    // NFCe
             // ...
             // Correção 02/03/2019.Carlos...
             // Observação: Uma vez alterada abaixo, pode-se até
             // alterar a página de código de ACBrPosPrinter que dá certo, mesmo
             // incrivelmente a variável "fpPaginaDeCodigo" de ACBrECFClass aparecendo fixa com a pág.Escolhida.
             E_ACBrECF.PaginaDeCodigo := AcbrPosPrinterGetNumeroPaginaDeCodigo( E_ACBrPosPrinter.PaginaDeCodigo );
          End
          Else   
          E_ACBrECF.PaginaDeCodigo       := V_INI.ReadInteger('ECF', 'PaginaDeCodigo', 0 );
     
    ============================================================================================
    ==> AcbrPosPrinterGetNumeroPaginaDeCodigo( E_ACBrPosPrinter.PaginaDeCodigo );
    Esta linha acima, quando utilizo o ACBrPosPrinter para impressão em NFCe,
    faz o ajuste automático da propriedade ACBrECF.PaginaDeCodigo CONFORME foi feito
    o ajuste de Página de código no parametrizador que criei, no ACBrPosPrinter.
    Daí ficou tudo correto. (quando utilizo ACBrPosPrinter eu "sumo" com o ajuste de pág. de cód. do ACBrECF e fico somente com o 
    ACBrPosPrinter, e quando utilizo ACBrECF (impressão em ECF), faço o inverso...)
    ============================================================================================
    Segue a função abaixo que na realidade utilizei uma interna de vocês :

    function AcbrPosPrinterGetNumeroPaginaDeCodigo(APagCod: TACBrPosPaginaCodigo): word;
    begin
      case APagCod of
        pc437: Result := 437;
        pc850: Result := 850;
        pc852: Result := 852;
        pc860: Result := 860;
        pc1252: Result := 1252;
        pcUTF8: Result := 65001;
        else
          Result := 0;
      end;
    end;
    ============================================================================================
    Abraços... Obrigado pelo retorno
  10. ROGERIO EDVAR DE SOUZA's post in ECF Daruma FS600 - CNFVinculado - Lentidão ao desligar ECF was marked as the answer   
    Resolvido. 
    Era o TIMEOUT mesmo, que é EM SEGUNDOS,
    havia um local no meu sistema que mudava ele para 150.
    Como é em SEGUNDOS (pensei quando criei esta linha que eram MILISSEGUNDOS),
    então 150/60 = 2,5 minutos.
    Exatamente o tempo que estava demorando...
    Mesmo assim, obrigado!!!
    (não consegui apagar o tópico, mas pode deixar se quiserem, que fica de "referência" para outros que
    tiverem o mesmo "problema)
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.