Ir para conteúdo
  • Cadastre-se

Luiz Fernando

Membros
  • Total de ítens

    62
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Luiz Fernando postou

  1. Boa tarde. Nesse método caso tenha um intervalo nos índices das formas de pagamento, esse código não funciona, pois ele para o while. Original: if (pos('090C',E.Message) > 0) then Break else raise ; Alteração proposta: if pos('090C',E.Message) = 0 then raise ; Segue em anexo arquivo alterado com essa correção. ACBrECFEpson.pas
  2. Se o seu sat é de desenvolvimento não há necessidade. E quanto a vinculação, a assinatura é feita utilizando o CNPJ e certificado da software house, então caso você adquira um cliente que já possua um sat ativado, você tera que vincular uma nova assinatura utilizando o teu CNPJ e certificado.
  3. A maioria dos equipamentos que eu testei, funcionam dessa forma, para configurar a rede usa o código de ativação 00000000. As demais funcionalidades somente após ativar.
  4. Eu que agradeço.
  5. Boa tarde. Na minha impressora Daruma FS700, quando vendo uma quantia grandes de itens, acima de 70 e cancelo o cupom, a leitura do status falha. Simulei com o ECFTeste, segue acbrlog.txt em anexo e a unit ACBrECFDaruma.pas, com a modificação proposta. Somente adicionei um AguardaImpressao := True, antes de enviar o comando de cancelamento. Desde já agradeço.
  6. Funcionou também
  7. Efetuei o teste na Elgin X5 e funcionou perfeitamente.
  8. Bom dia. Infelizmente só possua a Elgin X5 e essa Dataregis 3202. Nessas consigo efetuar os testes sem problemas, porém ficam muitos ECF's que não conseguiria testar. Por esse motivo que havia feito a alteração daquela forma. Vou efetuar os testes na X5 e te reporto o que ocorreu.
  9. Imagina. Só para ressaltar o valor é calculado pelo SAT, porém a base é de responsabilidade do desenvolvedor. Nessa imagem, se observar a primeira coluna, diz de quem é a responsabilidade da geração de cada campo.
  10. Quem calcula os impostos é o próprio equipamento SAT.
  11. Bom dia. Estou emitindo um cupom na impressora Dataregis 3202DT, com o estado DF, que é necessário sair em negrito o texto "NOTA LEGAL", porém, se mandar o texto com o comando EncerraDocumento, acontece o que esta na imagem em anexo. Fiz alguns testes, mandando o mesmo texto no comando ImprimeTexto, não ocorre, então fiz uma alteração na unit, somente para esta ecf, para mandar sempre dessa forma. Até pensei em alterar o bloco do envio do consumidor, e mandar sempre dessa forma, porém como não tenho todos os modelos que usam esse protocolo na empresa, para não ter imapctos desnecessários dupliquei o código. ACBrECFFiscNET.pas
  12. Esqueci de comentar, consegui essa base, utilizando o programa de teste da daruma com a dll, ativando o modo Auditoria no DarumaFrameWork.xml, no bloco referente a ECF.
  13. Na verdade, até consegui fazer imprimir o ean13, porém não tive tempo de testar corretamente, pois a impressora era do meu cliente e tive que devolver. Se tiver a ECF e quiser dar sequência nos testes, segue string que funcionou. ESC+'b'+#01+Chr(StrToInt(Largura))+chr(StrToInt(Altura))+STX+LeftStr(ACodigo, 12)+cBarraFim+ACodigo Como falei, não consegui efetuar os testes dos outros códigos, pode ser que algo esteja errado.
  14. Boa tarde. No comando FechaCupom na ecfEspon, tem a seguinte linha "Obs := AjustaLinhas(Obs, 50) ;", porém seria ideal que estive "Obs := AjustaLinhas(Obs, fpColunas) ;". Segue em anexo unit alterada. ACBrECFEpson.pas
  15. Imagina, estamos ai para nos ajudarmos.
  16. Luiz Fernando

    Redução Z SwedaSTX

    Bom dia, emitindo a primeira redução Z do mês, a impressora me retornou o erro "54 - Consulte manual", consultando o mesmo tem a seguinte mensagem. "Mensagem: Emitindo Leitura de Memória Fiscal, aguarde.... Mensagem eventualmente enviada ao aplicativo, na abertura do movimento, durante a emissão automática da Leitura da Memória Fiscal, conforme exigência do convênio 85, referênte ao período mensal de operação. (ao receber esta mensagem, recomendase estender o tempo de espera pela resposta do comando)". Na procedure VerificaFimLeitura, adicionei o código 54 como não sendo um erro. E na procedure DescreveErro adicionei a mensagem "Emitindo Leitura de Memória Fiscal, aguarde...", quando o código de erro for o mesmo 54. Com essas alterações, fiz os devidos testes e funcionou perfeitamente. Segue em anexo o log após a alteração e a unit alterada para avaliação. ACBrECFSwedaSTX.pas log_pdv.txt
  17. O meu caso funciona perfeitamente, seguindo as configurações que o pessoal da Daruma me passou.
  18. Segue em anexo units alteradas. ACBrECFDaruma.pas ACBrECFEscECF.pas
  19. Bom dia. Também tive essa dificuldade e entrei em contato com o pessoal do suporte da Daruma, eles me passaram as seguintes correções. Também é ncessário atualizar as dlls. No método "ConfigurarDLL" da classe TACBrECFDaruma. // Estava assim Resp := xregAlterarValor_Daruma( 'START\Produto', 'FISCAL' ); if Resp <> 1 then raise EACBrECFERRO.Create( ACBrStr('Erro: '+IntToStr(Resp)+' '+GetDescricaoErroDLL(Resp)+sLineBreak+ 'ao chamar: '+sLineBreak+ 'xregAlterarValor_Daruma( "START\Produto", "ECF" ) ') ); Porém o correto é como esta na mensagem de erro xregAlterarValor_Daruma( 'START\Produto', 'ECF' ); Existe também, uma tag no DarumaFrameWork.xml denominada ECF\SCU\Habilitar, que serve para quando utilizarmos o protocolo EscECF. Resp := xregAlterarValor_Daruma( 'ECF\SCU\Habilitar', '1' ); if Resp <> 1 then raise EACBrECFERRO.Create( ACBrStr('Erro: '+IntToStr(Resp)+' '+GetDescricaoErroDLL(Resp)+sLineBreak+ 'ao chamar: '+sLineBreak+ 'xregAlterarValor_Daruma( "ECF\SCU\Habilitar", "1" ) ') ); Outra coisa, o pessoal me passou que a velocidade precisa ser sempre 115200, então teríamos que alterar o método CriarECFClassPorMarca da classe ACBrECFEscECF, para quando criar a ECFDaruma, colocar sempre a velocidade 115200. if IsBematech then Result := TACBrECFBematech.create(fpOwner) else if IsDaruma then begin Result := TACBrECFDaruma.create(fpOwner); Result.Device.Baud := 115200; end else if IsEpson then begin Result := TACBrECFEpson.create(fpOwner); Result.Device.Desativar; fsDeviceParams := fpDevice.Porta+':'+fpDevice.ParamsString; Result.Device.Porta := 'USB'; // Força DLL em USB Result.Device.Baud := 115200; end; Caso precisem de mais informações, fico a disposição.
  20. Ok, muito obrigado, vou continuar efetuando meus testes.
  21. Bom dia. Não estou conseguindo gerar o código de barra na ECF Daruma FS 800i, o comando é aceito, não gera erro, porém não imprime o código de barra. Gostaria de saber se alguém conseguiu gerar o código de barra nesse modelo de ECF? Segue log do processo. -- 20/11 10:52:56:497 AbreRelatorioGerencial -- 20/11 10:52:56:498 TX -> [SOH][7][FF][NUL][STX][NUL]1|[194] -- 20/11 10:52:56:507 RX <- [ACK] -- 20/11 10:52:56:508 Status TX -> [ENQ][NUL] -- 20/11 10:52:56:513 RX <- [WAK][16][SOH][NUL][NUL][NUL] (1) -- 20/11 10:52:56:564 Status TX -> [ENQ][NUL] -- 20/11 10:52:56:569 RX <- [WAK][16][SOH][NUL][NUL][NUL] (2) -- 20/11 10:52:56:620 Status TX -> [ENQ][NUL] -- 20/11 10:52:56:626 Resposta: SEQ:7 CMD:12 EXT:0 CAT:0 RET:[SOH][NUL][NUL]@ TBR:41 BRS:"196|20112015095345||DR101500000000000300|" CHK:211 -- 20/11 10:52:56:727 RX <- [SOH][7][FF][NUL][NUL][SOH][NUL][NUL]@)[NUL]196|20112015095345||DR101500000000000300|[211] -- 20/11 10:52:59:368 LinhaRelatorioGerencial( "<ean13>7898007821826</ean13>", 0 ) -- 20/11 10:52:59:378 TX -> [SOH][BS][TAB][NUL][23][NUL][ESC]b0138001789800782182[NUL]|[250] -- 20/11 10:52:59:383 RX <- [ACK] -- 20/11 10:52:59:383 Status TX -> [ENQ][NUL] -- 20/11 10:52:59:389 RX <- [WAK][16][SOH][NUL][NUL][NUL] (1) -- 20/11 10:52:59:439 Status TX -> [ENQ][NUL] -- 20/11 10:52:59:445 RX <- [WAK][16][SOH][NUL][NUL][NUL] (2) -- 20/11 10:52:59:496 Status TX -> [ENQ][NUL] -- 20/11 10:52:59:501 Resposta: SEQ:8 CMD:9 EXT:0 CAT:0 RET:[SOH][NUL][NUL]@ TBR:0 BRS:"" CHK:82 -- 20/11 10:52:59:602 RX <- [SOH][BS][TAB][NUL][NUL][SOH][NUL][NUL]@[NUL][NUL]R -- 20/11 10:52:59:602 FechaRelatorio -- 20/11 10:52:59:604 TX -> [SOH][TAB][LF][NUL][STX][NUL]1|[194] -- 20/11 10:52:59:609 RX <- [ACK] -- 20/11 10:52:59:610 Status TX -> [ENQ][NUL] -- 20/11 10:52:59:616 RX <- [WAK][16][SOH][NUL][NUL][NUL] (1) -- 20/11 10:52:59:666 Status TX -> [ENQ][NUL] -- 20/11 10:52:59:671 RX <- [WAK][16][SOH][NUL][NUL][NUL] (2) -- 20/11 10:52:59:722 Status TX -> [ENQ][NUL] -- 20/11 10:52:59:728 RX <- [WAK][16][SOH][NUL][NUL][NUL] (3) -- 20/11 10:52:59:778 Status TX -> [ENQ][NUL] -- 20/11 10:52:59:783 RX <- [WAK][16][SOH][NUL][NUL][NUL] (4) -- 20/11 10:52:59:833 Status TX -> [ENQ][NUL] -- 20/11 10:52:59:839 Resposta: SEQ:9 CMD:10 EXT:0 CAT:0 RET:[SOH][NUL][NUL]@ TBR:20 BRS:"196|20112015095348||" CHK:69 -- 20/11 10:52:59:940 RX <- [SOH][TAB][LF][NUL][NUL][SOH][NUL][NUL]@[20][NUL]196|20112015095348||E
  22. Na verdade no meu código fiz esse ajuste, testei se estava em linha, se não estiver mudo o Handshake para hsNenhum. Segue método alterado para analise. procedure TACBrECFEscECFProtocolo.Ativar; begin with fpECFEscECF do begin if not Device.IsSerialPort then raise EACBrECFERRO.Create(ACBrStr('A impressora: '+ModeloStr+' requer'+sLineBreak+ 'Porta Serial: (COM1, COM2, COM3, ...)')); AtivarDevice ; if not EmLinha( TimeOut ) then begin if Device.HandShake <> hsDTR_DSR then Device.HandShake := hsDTR_DSR if not EmLinha( TimeOut ) then if Device.HandShake <> hsNenhum then Device.HandShake := hsNenhum end; fsSincronizou := False; fsTentouSincronizar := False; fsTimeOutStatus := 0; RespostasComando.Clear; { Ajusta a sequencia } Sincronizar; end; end;
  23. Com o "HANDSHAKE= ", funcionou a comunicação e dessa forma "HANDSHAKE=DTR/DSR" não. Se observar o log a partir da linha 15, quando a configuração esta dessa forma "HANDSHAKE= ", as leituras foram efetuadas com sucesso.
  24. Bom dia. Também estou com esse problema, no log anexado, observei que com o "HANDSHAKE=DTR/DSR" dessa forma, a impressora retorna que não esta em linha, porém, mudando o mesmo para "HANDSHAKE= " a comunicação acontece normalmente. Tentei alterar a configuração de controle de fluxo da porta serial virtual, para as três opções que existem, porém não obtive sucesso em nenhuma delas, já refiz o processo de remover e reinstalar o driver várias vezes. log_pdv.txt
×
×
  • 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.