Ir para conteúdo
  • Cadastre-se

dev botao

NFCe com ACBrECFVirtualNFCe exigindo REDUÇÃO Z desnecessariamente


Ver Solução Respondido por ROGERIO EDVAR DE SOUZA,
  • Este tópico foi criado há 2052 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde...

Ao utilizar NFCe com os componentes ACBr,

e utilizando especificamente o ACBrECF com os comandos "comuns",

ao "virar o dia" está sendo exigida a impressão de uma "REDUÇÃO Z".

Tem como eu "evitar isto" , porque não tem muito sentido visto que é uma impressora NÃO FISCAL...

Obrigado!

  • Administradores
Postado

Boa tarde.

Talvez este video possa lhe ajudar.

Att.

  • Curtir 2
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado
16 horas atrás, Daniel Simoes disse:

Por favor veja esse tópico:

 

Bom dia...

Ficaria bem legal se existisse existisse a propriedade em "ACBrECFVirtualNFCe"

de nome "ExigeReducaoZ", podendo ficar até como padrão o "TRUE", mas

tenho certeza que todos usuários do componente iriam adorar pois nossos clientes (Até de ECF) somente tiram a REDUÇÃO Z porque é exigido

nos arquivos magnéticos... por mais nenhum outro motivo...

Obrigado e foi apenas uma opinião... se puderem fazer...

ou se eu puder tentar fazer, testar e enviar pra vocês...

 

  • Solution
Postado
19 horas atrás, Daniel Simoes disse:

Por favor veja esse tópico:

 

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 !  

 

  • 3 semanas depois ...
Postado

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) ;

  • Fundadores
Postado

Obrigado por reportar

Seria possível, adicionar as Units modificadas ?

Estamos estudando a ideia de criar uma nova propriedade, que permita Ignorar os estados estRequerX e estRequerZ.. suas modificações poderão nos ajudar nessa demanda

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

×
×
  • 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.

The popup will be closed in 10 segundos...