-
Total de ítens
285 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Sommus postou
-
Pessoal, E no acbrmonitor? Qual é a função e parâmetros para gerar o arquivo da MF? Não encontrei no manual que tenho aqui... Obrigado! Reginaldo
-
Pessoal, Vamos testar agora, mas, fizemos da seguinte forma: consideramos o total de cancelamentos (ICMS e ISS) do ecf ao iniciar a venda... então, ao tratar a queda, se esse total tiver o mesmo (considerando os itens cancelados), então é que o cupom foi fechado, se não, o cupom foi cancelado...
-
a não ser que eu verifique a venda líquida do ecf... Mas, somente encontrei recurso no acbrmonitor para verificar a venda bruta, aí não daria, pois o cancelamento não faria diferença nesse caso...
-
Juliomar, Obrigado por responder... Pois é, estou tratando dessa forma... Porém, o cupom pode não estar aberto no ecf, porque foi fechado, ou porque foi cancelado, não dá pra saber essa informação... esse é o problema...
-
pode fazer pelo próprio acbr... após enviar o "fechacupom" desligue o ecf... e veja que o acbr não obterá a resposta do ecf... mas, o ecf fechou o cupom...
-
sim... estou testando em ecf´s daruma, bematech e epson... todos eles ocorrem isso...
-
Pessoal, Proponho o seguinte cenário: Estou com o cupom fiscal aberto em meu sistema e também no ECF. Já subtotalizei o cupom fiscal, já paguei e envio então o comando "FechaCupom". Então, desligo o ECF... meu sistema fica aguardando a resposta, que não vem... e quando religo o ECF, o cupom termina de ser fechado pelo ecf, e no meu sistema o cupom fica aberto, pois não conseguiu pegar a resposta do ecf... Como tratar isso? Consultando a Daruma, me disseram que se eu pegar a resposta do último comando enviado ao ecf, poderia tratar isso, mas, não encontrei nenhum recurso no acbrmonitor para isso... Obrigado pela atenção, Reginaldo
-
Pelos testes que fiz, na bematech mp2100, notei que o comando "ecf.arredondaitemmfd" me devolve True, antes do comando ecf.vendeitem. Depois, de vender, o ecf.arredondaitemmfd me retorna False, porém, o checkbox "Arredondamento MFD" da aba ECF do ACBRMonitor, continua marcado... Achava que uma coisa tinha relação com a outra.... Como sugestão, acho que o retorno do comando ecf.arredondaitemmfd deveria ser aplicado ao checkbox "Arredondamento MFD" da aba ECF... e o comando ecf.SetArredondaItemMFD() deveria também alterar esse checkbox... Senão, fica tudo muito confuso...
-
No caso do ACBRMonitor, esse comando não deveria alterar o controle "Arredondamento MFD" que está na aba ECF?
-
Minha Pequena Contribuição: Arredondamento Abnt
um tópico no fórum postou Sommus Dúvidas Gerais sobre o ACBr
Pessoal, A quem se interessar, seque abaixo função para realizar o arredondamento ABNT (Arredondamento utilizado no ECF) Escrevi na linguagem Harbour, mas, basta apenas trocar os comandos para converter para qualquer outra linguagem (Se precisarem de ajuda na conversão, é só postar aqui, que tentarei ajudar) FUNCTION Round_ABNT(nValor,nDecimais) LOCAL nRetorno:=nValor, cDecimais:=SubStr(Str(nValor),At('.',Str(nValor))+1), nSubsequente:=nDecimais+1 if nDecimais<1 RETURN Int(nRetorno) endif if Len(cDecimais) <= nDecimais RETURN nRetorno endif if SubStr(cDecimais,nSubsequente,1)>'5' .or. SubStr(cDecimais,nSubsequente,1)<'5' //Se a casa decimal SUBSEQUENTE for DIFERENTE de 5 nRetorno:=Round(nValor,nDecimais) //ARREDONDA elseif SubStr(cDecimais,nSubsequente,1)=='5' //Se a casa decimal SUBSEQUENTE for IGUAL a 5 if Mod(Val(SubStr(cDecimais,nDecimais,1)),2) <> 0 //Se a casa decimal que será CONSERVADA, for IMPAR nRetorno:=Round(nValor,nDecimais) //ARREDONDA else //se a casa decimal que será CONSERVADA, for PAR if Val(SubStr(cDecimais,nSubsequente+1,1)) > 0 //Se APÓS a casa decimal SUBSEQUENTE, houver ALGUM algarismo MAIOR que ZERO nRetorno:=Round(nValor,nDecimais) //ARREDONDA else //Se APÓS a casa decimal SUBSEQUENTE, não houver NENHUM outro algarismo ou TODOS forem iguais a ZERO nRetorno:=Truncate(nValor,nDecimais) //TRUNCA (Esse é o único momento em que o "arredondamento ABNT" se diferencia do "arredondamento normal") endif endif endif RETURN nRetorno FUNCTION Truncate(nValor,nDecimais) LOCAL nRetorno:=nValor, cDecimais:=SubStr(Str(nValor),At('.',Str(nValor))+1) if nDecimais<1 RETURN Int(nRetorno) endif if Len(cDecimais) <= nDecimais RETURN nRetorno endif nRetorno:=Val( Str(Int(nValor))+'.'+SubStr(cDecimais,1,nDecimais) ) RETURN nRetorno Nos vários testes que fiz aqui, funcionou muito bem, se encontrarem algum bug, favor, reportar aqui... Obrigado! Espero ter contribuído, Abraços, Reginaldo -
Caro André, Encontrei o comando, que na verdade é ECF.SetArredondaItemMFD(), porém, não funciona.... Tentei enviar ECF.SETARREDONDAITEMMFD(1) e ECF.SETARREDONDAITEMMFD(True) e o resultado é o mesmo, não altera a configuração que está no ACBRMonitor...
-
Caro André, O comando ECF.setaarredondaitemmfd() não existe... Estou usando a versão 0.9.19.0 do ACBRMonitor...
-
Juliomar, Não creio que seja problema com o acbrmonitor, não acho que com os componentes do acbr seja diferente, a questão são as diferenças nos próprios ecfs, tem ecf com mfd de convênio que não permite arredondamento, e tem ecf´s (os mais atuais) que o arredondamento é no item... então a conclusão que cheguei é que o melhor a fazer é colocar uma configuração (por ecf) no meu sistema para que o usuário "escolha" se o sistema vai arredondar ou truncar, então, se mesmo assim o total do cupom no ecf tiver dando diferença do total do cupom no sistema, o usuário tem a configuração... desde que meu sistema faça o cálculo do arredondamento conforme a norma abnt, assim não terá diferenças... Fica de forma manual, mas, não vejo outro jeito, ou seja, se o ECF somente trunca, então, o sistema será configurado para truncar, se o ECF tem opção de arredondar, então o usuário será configurado para arredondar.... Abraços, Reginaldo
-
Será que a solução seria uma configuração no meu próprio sistema, se aquele ecf irá truncar ou arredondar?
-
Acho que os comandos de leitura/definição de arredondamento/truncamento no acbrmonitor estão meio que confusos... não dá pra entender exatamente o que fazem... O que preciso é simplesmente saber se ao enviar o item ao ecf devo calcular o arredondamento abnt ou truncar... mas, não consigo essa informação...
-
Juliomar, Não é tão simples assim... Veja bem: Tenho aqui uma MP2100 (Que é de um convênio que não arredonda, ela somente trunca, independente de qualquer configuração)... Mas, percebi que o comando ECF.Arredonda, me retorna o mesmo que o comando ECF.ArredondaItemMFD... Então, ele me retorna "True", se o flag "Arredondamento MFD" no acbrmonitor tiver marcado... Mas, esse ecf não arredonda de forma alguma, somente trunca... Então, não posso confiar no comando ECF.Arredonda.
-
Pessoal, O negócio tá cada vez mais complicado... Falei na Bematech agora, alguns modelos somente truncam.... Tô meio perdido, sem saber se meu sistema deve ARREDONDAR ou TRUNCAR...
-
Pelo que o pessoal da Daruma me disse (Tô conversando com eles agora)... Não existe flag no ecf dizendo se vai arredondar ou truncar, isso é decidido somente na venda de cada item.... Não estou entendendo, isso tá muito confuso...
-
Juliomar, Obrigado por responder! Mas, "Isso mesmo", em qual questão? Abraços Reginaldo
-
ah... quanto ao "Arredondamento MFD": 1) Tive problemas na ECF DARUMA... não funcionou! 2) O que exatamente o acbr faz nesse caso? Ele diz ao ECF que é pra arredondar, e o ECF arredonda conforme a regra ABNT, ou ele força um arredondamento, conforme a regra que estamos acostumados a trabalhar (até 4, pra baixo e acima de 4, pra cima) ??? Acho que o melhor a fazer é meu sistema ler ecf.arredonda e se arredonda eu aplico o arredondamento abnt e se trunca eu trunco... Resta saber, se o ecf.arredonda funciona tranquilo nos novos ecf´s.... Obrigado pela atenção, Reginaldo
-
Outra coisa... Eu posso desconsiderar ECF sem MFD... Hoje isso não pode funcionar mais, em lugar nenhum... ou estou enganado?
-
e o comando ECF.MudaArredondamento, não funciona mais? como fica?
-
André, Somente, para que não fique dúvida alguma: 1) O comando ecf.arredonda ainda funciona em todos os ecf´s (inclusive os novos com mfd) ? 2) Se o comando ECF.arredondaitemmfd me retorna que o item será arredondado, é CERTEZA que isso ocorrerá, em todos os modelos de ECF? A questão é que tenho que ter certeza do que o ecf irá fazer: ARREDONDAR ou TRUNCAR... Pois, meu sistema fará o que o ECF fizer para que o total do item no meu sistema seja EXATAMENTE igual ao total do item no ecf... O ideal mesmo seria que eu pudesse ler o total do item registrado no ecf... aí não precisaria verificar nada, apenas pegar o total que o ecf calculou.... Obrigado pela atenção, Reginaldo
-
Caro André, Não entendi... não consta esses comandos no manual do acbrmonitor... então, o comando "ECF.setaarredondaitemmfd(1)" tenho que fazer a cada item? O comando ECF.arredondaitemmfd, para verificar, também tenho que fazer a cada item? Se eu apenas verificar o comando ECF.Arredonda, funcionaria em qualquer impressora, pra saber se o total do item no ECF será arredondado/truncado? E outra, qual a relevância dos flags "Arredondamento por quantidade" e "Arredondamento MFD", que são configurados no ACBRMonitor? Esse flag "Arredondamento MFD" é o valor que o comando "ECF.setaarredondaitemmfd" mofifica? Obrigado pela atenção, Reginaldo
-
Senhores, Para resolver o problema da diferença de centavos no fechamento do cupom, fui orientado pelo pessoal da daruma e bematech a fazer o truncamento ou arredondamento conforme regra abnt... Até aí, tudo bem, é tranquilo... Então, apenas preciso saber se o ECF irá arredondar ou truncar o valor do item... Vi que o ACBRMonitor tem um comando "ECF.Arredonda" para saber isso... Porém, no suporte da Daruma, me informaram que, nos novos ECF´s (MFD), a decisão de arredondar ou truncar é feita no momento de enviar o item para o ECF e não mais no momento da lacração do mesmo... Então, deveria ser no comando ECF.VendeItem... Essa informação procede? No manual que tenho do ACBRMonitor, não tenho esse parâmetro no ECF.VendeItem... Isso já está implementado? Será implementado? Bom, caso, não seja por item, então teria que usar mesmo o comando "ECF.Arredonda"? É ISSO? Obrigado pela atenção, Reginaldo