Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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?

  • Fundadores
Postado

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.

  • Fundadores
Postado

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.

Postado

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?

  • Fundadores
Postado

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.

Postado

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]

Postado

Só complementando, poderia existir 2 funções... "VendeItem" e "VendeItemDpto"... sendo que a segunda contemplaria a nova variável.

Algumas DLL de IF usam desta forma.

  • Fundadores
Postado

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.

Postado

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}

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

  • Fundadores
Postado

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.

Postado

certo, mas não tem como eu alterar o modo para truncamento direto na impressora, assim disse o suporte da Dataregis(5682-6639 - Rafael)

segue arquivo de log solicitado em anexo.

acbrlog.txt

  • Fundadores
Postado

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.

  • Fundadores
Postado

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.

Postado

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

  • Fundadores
Postado

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.

Postado

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?

  • 1 mês depois ...
Postado

Bom dia, estou com este mesmo problema porém o problema acontece em qualquer comando enviado para a impressora, inclusive em uma LEITURA DA MEMÓRIA FISCAL ou LEITURA X

  • Fundadores
Postado

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.

  • Este tópico foi criado há 4611 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.