Ir para conteúdo
  • Cadastre-se

dev botao

Arredondamento na ecfFiscNET


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

Recommended Posts

Pessoal, bom dia.

Estamos usando o ACBrECF com impressora DataRegis (FiscNET) e apesar do flag da impressora estar para não arrendondar, como mostra o log do ECFTeste, ainda assim ele arredonda:


Ativar

{4;0;ValorTexto="DATAREGIS";27}

- + - + - + - + - + - + - + - + - + - + - + -

Arredondamento: NAO

- + - + - + - + - + - + - + - + - + - + - + -

Um produto de quantidade 0,01 e valor unitário 13,90 está saindo no cupom fiscal 0,14 e não 0,13, como esperamos.

Existe alguma forma de fazer truncamento ao invés de arredondamento com o ACBrECF e impressora FiscNET?

Link para o comentário
Compartilhar em outros sites

  • Fundadores

O trecho do LOG acima não mostra o verdadeiro retorno... pois o método usa uma variável de buffer...

Por favor insira um BkPoint em:

function TACBrECFFiscNET.GetArredonda: Boolean;

e observe o valor de fsArredonda na primeira leitura do método...

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Acho que isso é configurável apenas por Intervenção Técnica...

O Ideal é ler do ECF como ele opera (Arredonda ou Trunca)... e replicar o calculo no lado do Software.... algo como:


if Trunca then
TotalItem := Trunc(Itens[I].Qtd * Itens[I].Preco_Unit * 100) / 100
else
TotalItem := RoundTo(Itens[I].Qtd * Itens[I].Preco_Unit, -2);
[/code]

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.

Link para o comentário
Compartilhar em outros sites

Ainda sobre esta questão,

O desenvolvedor ligou no suporte da Elgin e da DataRegis e lhe foi informado que no comando VendeItem dessas impressoras, existe um parâmetro a mais que chama-se CodDepartamento que se for passado 0, trunca, se 1 arredonda, porém, no ACBrECF não há esse parâmetro no comando VendeItem. Peguei o manual da DataRegis e esse parâmetro realmente existe.

De qualquer forma, existe alguma maneira de informar este parâmetro com o ACBrECF?

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Sim... acho que podemos usar a popria propriedade "Arredonda" para sabermos se enviamos 1 ou 0...

Em todo caso, preciso saber o que o seu ECF retorna para o Flag de Arredondamento... para entender porque ele se comporta de maneira diferente do esperado... Por favor anexe o LOG gerado pelo ACBrECF

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.

Link para o comentário
Compartilhar em outros sites

Daniel,

Sobre esta pendência do "cod.departamento", tem algumas impressoras que usam este para determinadas funções, sendo que cada uma pode ter uma particularidade...

EX. bematech = Bematech_FI_VendeItem ou Bematech_FI_VendeItemDepartamento

Dataregis = DLLG2_AdicionaParam DLLG2Handle, "CodDepartamento", depto, 4 (qdo 0 ele trunca, caso contrario arredonda)

Sendo assim solicitei isso para o Robson que questionou este na primeira msg acima... mas não sei a complexidade disso para vocês, pois tenho alguns sistemas amarrados truncando os totais devido a outros equipamentos envolvidos na automação, e eu por minha vez, tentando estabelecer o uso da comunicação via ACBR, me deparei com esta particularidade e ficaria muito grato caso vocês conseguissem me ajudar.

obs.: Meu projeto é VB6

Desde já deixo-me a disposição para esclarecimento de quaisquer duvida ou auxilio para resolução do mesmo.

atenciosamente,

Marco Gaspar

Gerente Operacional

Datamaxi Com. Rep. Ltda

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Tentamos evitar ao máximo comandos com nomes similares... Acho que isso é uma grande falha das DLLs de ECFs, pois confundem muito o usuário...

A questão do departamente poderia ser resolvida com um novo Parâmetro, no final da lista já existente, com o valor default = -1 por exemplo...

Em todo caso, preciso saber o que o seu ECF retorna para o Flag de Arredondamento, para entender porque ele se comporta de maneira diferente do esperado... Ou seja, se ele informa para o ACBr que fará o Truncamento... é isso que esperamos dele na Venda de Item...

Por favor anexe o LOG gerado pelo ACBrECF

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.

Link para o comentário
Compartilhar em outros sites

Modelo IF = Dataregis MT100 / Elgin ZPM-200

segue:

Ativar

- + - + - + - + - + - + - + - + - + - + - + -

Arredondamento: SIM

{9;0;ValorInteiro=0;19}

- + - + - + - + - + - + - + - + - + - + - + -

Procedure: MudaArredondamento

não implementada para a Impressora: FiscNET: DATAREGIS - MT100

Ajude no desenvolvimento do ACBrECF.

Acesse nosso Forum em: http://acbr.sf.net/

- + - + - + - + - + - + - + - + - + - + - + -

Erro retornado pela Impressora: FiscNET: DATAREGIS - MT100

Erro: 11007 - ErroProtSequenciaComando

Estado invalido para o comando a ser executado

{11;11007;NomeErro="ErroProtSequenciaComando" Circunstancia="Estado invalido para o comando a ser executado";108}

- + - + - + - + - + - + - + - + - + - + - + -

Vende Item: Cod:111222333 DescTESTE DE PRODUTO Aliq:NN Qtd:0,01 Preço:13,9 Desc:0 Un:UN Desc:%

- + - + - + - + - + - + - + - + - + - + - + -

Subtotaliza Cupom: 0

{14;0;ValorMoeda=0,1400;23}

- + - + - + - + - + - + - + - + - + - + - + -

Efetua Pagamento: 1 Valor: 1 Obs: Vinc: N

{35;0;ValorMoeda=1,0000;23}

- + - + - + - + - + - + - + - + - + - + - + -

Fecha Cupom:

Componentes ACBr

http://acbr.sourceforge.net

{44;0;;6}

- + - + - + - + - + - + - + - + - + - + - + -

Link para o comentário
Compartilhar em outros sites

  • Fundadores

O ECF retornou 0 para a consulta de Arredondamento... e segundo o manual:

Arredondamento

TipoAcesso RW

Descricao Lê ou define o método de arredondamento para as operações aritméticas. Os valores

válidos são 0 para arredondamento segundo ABNT, 1 para truncamento e 2 para

arredondamento para cima. O arredondamento só pode ser modificado em Modo de

Intervenção Técnica.

Ou seja, este ECF está programado para efetuar o Arredondamento segundo a ABNT...

Pelo que entendi você deseja desconsiderar a programação do ECF e forçar um Truncamento com o envio da Informação do Departamento na Venda de Item, certo ?

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Apenas em intervenção técnica.

O arredondamento só pode ser modificado em Modo de Intervenção Técnica

Nas antigas matriciais isso pode ser feito fora da Intervenção

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Você tem acesso aos fontes do ACBr ?

Experimente alterar em ACBrECFFiscNET.pas, linha 1315 para:

    with FiscNETComando do
begin
if fsComandoVendeItem = '' then
NomeComando := 'VendeItem'
else
NomeComando := fsComandoVendeItem ;

AddParamInteger('CodAliquota',CodAliq) ;
AddParamInteger('CodDepartamento', 0);
AddParamString('CodProduto',LeftStr(Codigo,48));
AddParamString('NomeProduto',LeftStr(Descricao,200));
AddParamDouble('PrecoUnitario',ValorUnitario);
AddParamDouble('Quantidade',Qtd);
AddParamString('Unidade',Unidade);
end ;
EnviaComando ;
[/code]

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.

Link para o comentário
Compartilhar em outros sites

Daniel,

Sua dica funcionou perfeitamente! Fiz isso nos fontes da unit ACBrECFFiscNet, mas condicionado ao arredondamento do ACBrECF.

Seria possível colocar essa alteração no SVN do ACBr? Segue anexo o patch SVN. Nesse caso, funcionaria assim, nos sistemas:


ACBrECF.MudaArredondamento(False);

ACBrECF.VendeItem(parametros);

TruncACBrECFFiscNET.pas.patch.txt

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Oi Robson,

Acho que funcionaria..

Os problemas são:

- A programação não é persistente... Ou seja, a cada re-Ativação teria que programar novamente..

- Funcionaria desta maneira apenas para este modelo... o usuário não teria o mesmo funcionamento quando trocasse de Marca de ECF...

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.

Link para o comentário
Compartilhar em outros sites

Oi Daniel,

Todos os pontos que você colocou são verdade, mas fiz o código pensando nisso mesmo.

Não sei se outras ECFs trabalham da mesma forma que essas impressoras FiscNET. Do jeito como está feito, funcionaria somente para elas, sem alterar a codificação das outras. Foi nisso que pensei.

Qual seria a melhor forma definitiva de colocar essa funcionalidade para as ECFs FiscNET?

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Fundadores

Acho que o seu problema não tem nada a ver com o tópico... pois falávamos sobre arredondamento em Venda de Item...

Por favor abra um novo tópico, e detalhe bem o seu problema, e o ambiente que ele ocorre..

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.

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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