Jump to content

dev botao

Dados Ultima Redução Z - GetDadosUltimaReducaoZ


andresantana
Go to solution Solved by Rafael Batiati,
  • Este tópico foi criado há 4152 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia André,

o Rafael me instrui a fazer da seguinte forma:

[C#]

acbrECF.ReducaoZ();

acbrECF.GetDadosReducaoZ ();

var reducaoZ = acbrECF.GetDadosReducaoZClass();

deu certinho, porém os valores das aliquotas estão voltando zeradas,

agora não sei se é porque estou utilizando o emulador para testes,

mas da uma olhadinha ai!!!

Att,

Luiz Paulo

Link to comment
Share on other sites

  • Solution

Alô pessoal,

A coisa funciona assim:
Sempre precisamos chamar o método GetDadosReducaoZ() ou GetDadosUltimaReducaoZ() antes de chamar o GetDadosReducaoZClass();

Nem todos os ECFs suportam o GetDadosUltimaReduçãoZ() ...
Eu utilizo o GetDadosReducaoZ() logo após antes de emitir a ReducaoZ(), e os contadores são preenchidos normalmente.

 

ATUALIZAÇÃO: (28/02/2012)

 

 

Para explicar melhor o funcionamento dos métodos DadosReducaoZ e DadosUltimaReducaoZ:

 

O caso do DadosReducaoZ(), os valores vêm dos contadores atuais do ECF. Por exemplo, o campo ValorGrandeTotal é o mesmo valor informado no Ecf.GrandeTotal; Isso faz com que os dados sejam a "fotografia" do status do ECF no momento, por isso devem ser chamados antes de efetuar a redução. Depois da redução vários totalizadores serão zerados.

 

Já o DadosUltimaReducaoZ() retorna os dados da RZ informados pelo ECF, nem todos os modelos suportam todos os dados, então o retorno desse método varia de fabricante a fabricante. Esse método precisa ser chamado após a RZ e antes do primeiro movimento.

 

Lembrando que o GetDadosReducaoZ() se chamado antes da RZ retorna os contadores de ANTES da RZ, ou seja sem incremento no COO e CRZ.

 

 

***

O pessoal do ACBr lançou uma alteração ontem, que vai nos interessar bastante.
Segue o changelog abaixo, vou implementar isso no ACBrFramework assim que possível.
 

Data: 20/11/2012
-- ACBrECF -- (por: DSA)
[*] Refactoring em método: GetDadosReducaoZ e MontaDadosReducaoZ

-- ACBrECFClass -- (por: DSA)
[*] Refactoring em método: GetDadosReducaoZ e MontaDadosReducaoZ
[*] Classe TACBrECFDadosRZ modificada para conter o método MontaDadosReducaoZ
[-] Método TACBrECFDadosRZ.MontaDadosReducaoZ, modificado para montar .INI apenas
com as variaveis que foram realmente informadas (eliminando problema de
registradores zerados)
[+] Inserido método TACBrECFDadosRZ.CalculaValoresVirtuais para calcular valores
que não tenham sido retornado pelo ECF como: TotalOperacaoNaoFiscal, TotalICMS,
TotalISSQN, ValorVendaBruta, VendaLiquida


Abs,

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Link to comment
Share on other sites

Entrando no tópico do colega, mais talvez resolva o seu problema...

eu pego os dados da ultima redução z antes de emitir a redução, pois se executar desse modo a unica coisa que ficara errada é o crz, mais ai é so acrescentar 1 e fica tudo blz.

Estou correto? Isso solucionará sua dúvida?

Link to comment
Share on other sites

  • 2 months later...

Ola Rafael, boa tarde.

 

Desculpe esta voltando nesse assunto, mas estou usando da seguinte forma para gravar os dados da Redução, só que o valor bruto esta retornando 0 e valor de troca esta retornando -1, essa sequencia q estou utilizando esta correta para pegar os dados da redução?

 

grd abs

 

 

 

 Me.acbrECF.ReducaoZ()
 Me.acbrECF.DadosUltimaReducaoZ()


Dim ecfReducaoZ As DadosReducaoZClass = cmECF.DadosReducaoZClass

 

 

Link to comment
Share on other sites

Ola, bom dia

 

Fiz os testes utilizando o código abaixo e mesma assim o valor bruto retornou zerado e o valor de troco (ecfReducaoZ.TotalTroco) e serviços (ecfReducaoZ.TotalISSQN) retornou -1, a sequencia que estou usando está correta?

 

grd abs

 

       

 

 Me.acbrECF.ReducaoZ()
 Me.acbrECF.DadosReducaoZ() ou  Me.acbrECF.DadosUltimaReducaoZ()
 Me.acbrECF.DadosReducaoZClass.MontaDadosReducaoZ()
 Me.acbrECF.DadosReducaoZClass.CalculaValoresVirtuais()

 Dim ecfReducaoZ As DadosReducaoZClass = Me.acbrECF.DadosReducaoZClass
 

 

Link to comment
Share on other sites

  • Consultores

Olá, não uso o ACBrFramework, mas como é um erro comum entre os usuários do ACBr, gostaria de esclarecer que há diferença entre os métodos DadosReducaoZ e DadosUltimaReducaoZ.

 

DadosReducaoZ é para ser usado antes de chamar a Redução. DadosUltimaReducaoZ é para ser chamado depois.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

Correto, eu faço da seguinte forma

 

1 - Emito a redução (Me.acbrECF.ReducaoZ())

2 - Pego os dados da redução (Me.acbrECF.DadosUltimaReducaoZ()) fiz utlizando o Me.acbrECF.DadosReducaoZ() pq o Rafael pediu que eu testasse

3 - Incluir as linhas abaixo para ele calcular Valor bruto, Serviços e etc

 

Me.acbrECF.DadosReducaoZClass.MontaDadosReducaoZ()

Me.acbrECF.DadosReducaoZClass.CalculaValoresVirtuais()

 

4 - Coloco os dados nesse variavel para realizar a gravação (Dim ecfReducaoZ As DadosReducaoZClass = Me.acbrECF.DadosReducaoZClass)

Link to comment
Share on other sites

  • Consultores

Então, no caso da DadosReducaoZ, você precisa chamá-la e usar os dados gerados por ela antes de chamar a ReducaoZ.

Seria:

1 - Pego os dados da redução utlizando o Me.acbrECF.DadosReducaoZ()

2 - Armazeno os dados.

3 - Emito a redução (Me.acbrECF.ReducaoZ())


 

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

Blz, sem problemas fazer dessa forma, mas tem um teste do PAF-ECF que é recomposição do GT e número de série, onde vc tem que pegar os dados da ultima z emitida e comparar (CRZ, CRO e Venda Bruta) com os dados que estão gravados no banco, só que como não esta retornando corretamente o Valor Bruta vai dar problema da homologação, na homologação que fiz passei no testa fazendo a soma dos valores e comparando

Link to comment
Share on other sites

André,

Você tem razão. O campo ValorVendaBruta estava vindo sempre ZERO do ACBrFramework.

Corrigido e comitado no SVN, basta baixar a nova versão.

 

 

ATUALIZAÇÃO

 

Para explicar melhor o funcionamento dos métodos DadosReducaoZ e DadosUltimaReducaoZ:

 

O caso do DadosReducaoZ(), os valores vêm dos contadores atuais do ECF. Por exemplo, o campo ValorGrandeTotal é o mesmo valor informado no Ecf.GrandeTotal; Isso faz com que os dados sejam a "fotografia" do status do ECF no momento, por isso devem ser chamados antes de efetuar a redução. Depois da redução vários totalizadores serão zerados.

 

Já o DadosUltimaReducaoZ() retorna os dados da RZ informados pelo ECF, nem todos os modelos suportam todos os dados, então o retorno desse método varia de fabricante a fabricante. Esse método precisa ser chamado após a RZ e antes do primeiro movimento.

 

Lembrando que o GetDadosReducaoZ() se chamado antes da RZ retorna os contadores de ANTES da RZ, ou seja sem incremento no COO e CRZ.

 

Abs.

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Link to comment
Share on other sites

  • 2 months later...

Ola Rafael, boa tarde.

 

Desculpe acabei esquecendo de dar um retorno sobre esse assunto...mil desculpas.

 

Venda bruta ficou OK, mas os campos TotalTroco e TotalISSQN sempre estão retornando -1 e o NumCOOInicial esta retornando em Branco.

 

Vi q vc falou q tem alguns dados de modelos de ECF q ñ são retornados e peguei isso tb, estou testando em uma ECF da Epson e tem alguns campos q geram exception e queria dar uma sugestão se quando acontecer isso retornar o valor 0, os dados que peguei foram (GNFC, CFC, NCN, CCDC)

 

Estou utilizando os comandos na sequencia abaixo.

 

grd abs

 Me.acbrECF.ReducaoZ()
 Me.acbrECF.DadosUltimaReducaoZ()
 Me.acbrECF.DadosReducaoZClass.CalculaValoresVirtuais()
 Me.acbrECF.DadosReducaoZClass.MontaDadosReducaoZ()

 Dim ecfReducaoZ As DadosReducaoZClass = Me.acbrECF.DadosReducaoZClass 
Link to comment
Share on other sites

Ola, consegui fazer da seguinte forma.

 

  1. Solicito os dados da Redução antes da emissão
  2. Ao solicitar os dados ele preenche o objeto DadosReducaoZClass, com isso para para a variavel que criei "ecfReducaoZ"
  3. Emito a Redução Z e depois gravo os dados que guardei na variável "ecfReducaoZ"

Quando for gravar a redução não esquecer de fazer o incremento em 1 do número da redução e do COO

 

Brigadão e grd abs

 Me.acbrECF.DadosReducaoZ()
 Dim ecfReducaoZ As DadosReducaoZClass = Me.acbrECF.DadosReducaoZClass
 Me.acbrECF.ReducaoZ()
Link to comment
Share on other sites

  • Consultores

que bom que você consegui fazer, se não me engano em outro topico sobre isso o juliomar recomenda fazer a mesma coisa.

pegar os dados antes, pois nem toda ecf aceita a get ultimo dados reducaoz, pode também usar o evento OnAntesReducaoZ para fazer isso.

O recomendado é pegar antes e depois. Daí fazer um "merge".

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • Este tópico foi criado há 4152 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.

The popup will be closed in 10 seconds...