Ir para conteúdo
  • Cadastre-se

amarildolacerda

Membros
  • Total de ítens

    186
  • Registro em

  • Última visita

Tudo que amarildolacerda postou

  1. Tem algumas alterações que foram aplicadas nos últimos dias que tratam de parâmetros da porta serial. Se ainda não o fez, tenta atualizar para o código atual do Trunk2 e verifica se o problema continua.
  2. Olá davilajunior, poderia anexar o fonte alterado. Estou agendando um trabalho que envolve a impressão PDF usando Fortes.
  3. Daniel, Ficou bom, eu já tinha visto este problema, mas não tive tempo de fazer alteração. Agora ficou legal.
  4. Aqui usamos o evento "AntesCancelarCupom": function xxxx.GetNomeXMLSAT(ChaveCFe:string):string; begin result := FACBrSAT.CalcCFeNomeArq (FACBrSAT.ConfigArquivos.PastaCFeVenda, FACBrSAT.ConfigArquivos.PrefixoArqCFe + ChaveCFe); end; procedure xxxx.DoAntesCancelarCupom(snd: TObject); begin if TipoEmissor = emissorSAT then begin FACBrSAT.CFe.NomeArquivo := GetNomeXMLSAT(ChaveCFe); end; end; Detalhe: Notando que em alguns casos os dados do xml não estavam carregados na memória, então fizemos; FACBrSAT.CFe.LoadFromFile( GetNomeXMLSAT(ChaveCFe) ); FACBrSAT.CancelarUltimaVenda(); Verifica se: SalvarCFe := true; PastaCFeVenda := <caminho de gravacao>
  5. Daniel, Fiz uma revisão sobre a questão estou mudando de opinião - você tem razão, não deve mesmo cortar...
  6. Segue um exemplo. Neste XML não foi informado os percentuais de PIS/COFINS. Foi processado pelo emulador normalmente. Usando um equipamento real, houve casos que exigiu o percentual correto. AD20150812182558-100066-env.xml
  7. Testei em duas máquinas, uma usa windows 10 e a outra usa windows 7. Vou fazer o teste na segunda-feira.
  8. Ajustado chamadas de funções e units para rodar com trunk2 DANFE-NFe-Rave-Trunk2.rar
  9. Isto mesmo, usamos o TmVirtualPort para criar uma porta virtual com a USB. Falei com o Juliomar ontem, ele ficou de dar uma olhada - confirmando que não conseguiu fazer funcionar a ECF que ele tem.
  10. A Mensagem que retorna é uma string simples.... (texto), não tem nenhum PIPE de separação, diferente de outros comandos que retornam com separadores. 20150812130811: Iniciando carga no arquivo de configuração 20150812130813: Iniciando carga no arquivo de configuração 20150812130813: Iniciando execução do comando 20150812130813: Iniciando carga no arquivo de configuração 20150812130813: Erro ao abrir a porta serial 20150812130813: Erro na abertura da porta serial 20150812130853: Iniciando carga no arquivo de configuração 20150812130853: Iniciando carga no arquivo de configuração 20150812130853: Iniciando execução do comando 20150812130853: Iniciando carga no arquivo de configuração 20150812130853: Erro ao abrir a porta serial 20150812130853: Erro na abertura da porta serial 20150812130916: Iniciando carga no arquivo de configuração 20150812130916: Iniciando carga no arquivo de configuração 20150812130916: Iniciando execução do comando 20150812130916: Iniciando carga no arquivo de configuração 20150812130916: Erro ao abrir a porta serial 20150812130916: Erro na abertura da porta serial 20150812130951: Iniciando carga no arquivo de configuração 20150812130951: Iniciando carga no arquivo de configuração 20150812130951: Iniciando execução do comando 20150812130951: Iniciando carga no arquivo de configuração 20150812130951: [AVISO] não foi possível detectar a porta automaticamente! 20150812130951: Problema com o arquivo de configuração, por favor verifique o arquivo BemaSAT.xml 20150812130951: Erro ao abrir a porta serial 20150812130951: Erro na abertura da porta serial 20150812131105: Iniciando carga no arquivo de configuração 20150812131105: [AVISO] não foi possível detectar a porta automaticamente! 20150812131105: Problema com o arquivo de configuração, por favor verifique o arquivo BemaSAT.xml 20150812131105: Iniciando carga no arquivo de configuração 20150812131106: [AVISO] não foi possível detectar a porta automaticamente! 20150812131106: Problema com o arquivo de configuração, por favor verifique o arquivo BemaSAT.xml 20150812131106: Iniciando execução do comando 20150812131106: Iniciando carga no arquivo de configuração 20150812131106: [AVISO] não foi possível detectar a porta automaticamente! 20150812131106: Problema com o arquivo de configuração, por favor verifique o arquivo BemaSAT.xml 20150812131106: Erro ao abrir a porta serial 20150812131106: Erro na abertura da porta serial 20150812131217: Iniciando carga no arquivo de configuração 20150812131217: Iniciando carga no arquivo de configuração 20150812131217: Iniciando execução do comando 20150812131217: Iniciando carga no arquivo de configuração 20150812131217: Erro ao abrir a porta serial 20150812131217: Erro na abertura da porta serial 20150812131233: Iniciando carga no arquivo de configuração 20150812131233: Iniciando carga no arquivo de configuração 20150812131233: Iniciando execução do comando 20150812131233: Iniciando carga no arquivo de configuração 20150812131233: Erro ao abrir a porta serial 20150812131233: Erro na abertura da porta serial 20150812131249: Iniciando carga no arquivo de configuração 20150812131249: Iniciando carga no arquivo de configuração 20150812131249: Iniciando execução do comando 20150812131249: Iniciando carga no arquivo de configuração 20150812131249: Erro ao abrir a porta serial 20150812131249: Erro na abertura da porta serial 20150812132754: Iniciando carga no arquivo de configuração 20150812132755: Iniciando carga no arquivo de configuração 20150812132755: Iniciando execução do comando 20150812132755: Iniciando carga no arquivo de configuração 20150812132755: Erro ao abrir a porta serial 20150812132755: Erro na abertura da porta serial 20150812132808: Iniciando carga no arquivo de configuração 20150812132808: Iniciando carga no arquivo de configuração 20150812132808: Iniciando execução do comando 20150812132808: Iniciando carga no arquivo de configuração 20150812132808: Erro ao abrir a porta serial 20150812132808: Erro na abertura da porta serial 20150812133913: Iniciando carga no arquivo de configuração 20150812133913: Iniciando carga no arquivo de configuração 20150812133913: Iniciando execução do comando 20150812133913: Iniciando carga no arquivo de configuração 20150812133913: Erro ao abrir a porta serial 20150812133913: Erro na abertura da porta serial 20150812134513: Iniciando carga no arquivo de configuração 20150812134513: Iniciando carga no arquivo de configuração 20150812134513: Iniciando execução do comando 20150812134513: Iniciando carga no arquivo de configuração 20150812134513: Erro ao abrir a porta serial 20150812134513: Erro na abertura da porta serial 20150812144931: Iniciando carga no arquivo de configuração 20150812144934: Iniciando carga no arquivo de configuração 20150812144934: Iniciando execução do comando 20150812144934: Iniciando carga no arquivo de configuração 20150812144934: Porta serial aberta com sucesso
  11. Notamos que o SAT da Bematech usa o servidor ntp.cais.rnp.br para sincronizar o relógio (porta 123). Para testar se porta e endereço estão comunicando e não tem bloqueio de firewall, utilizamos este aplicativo. NTPTeste.rar
  12. Por enquanto resolvemos da seguinte forma: type TACBrECFVirtualClassHack = class(TACBrECFVirtualClass) end; procedure TIFACbrInterfaced.DoFecharCupomError(var Tratado: Boolean); var sNomeArquivo: string; procedure TratadoFalhaImpressao; begin with TACBrECFVirtualClassHack(FServer.ECFVirtual) do begin fpEstado := estLivre ; // necessario para mudar o estado se o evento foi tratado. fpTotalPago := 0; GravaArqINI; end; end; begin Tratado := False; if TipoEmissor in [emissorSAT] then begin // nao imprimiu o cupom de Venda. while FServer.FACBrSAT.Resposta.codigoDeRetorno = 6000 do begin CancelarCFeTransmitido := False; ChaveCFe := TACBrECFVirtualSATClass(FServer.ecf).chaveCupom; sNomeArquivo := GetNomeXMLSAT(ChaveCFe); FServer.FACBrSAT.CFe.LoadFromFile(sNomeArquivo); AtributosTransacaoSAT; if (simnao('Houve um erro ao imprimir, tentar novamente..') = 'S') then begin try FServer.FACBrExtrato.ImprimirExtrato(FServer.FACBrSAT.CFe); Tratado := True; TratadoFalhaImpressao; break; except end; end else begin if simnao('Cancelar o cupom ...') = 'S' then begin CancelarCFeTransmitido := True; Tratado := True; TratadoFalhaImpressao; exit; end; end; end; end; end;
  13. Olá, Eu uso USB quando é ecfEpson, mas quando é ecfEscECF não tem este recurso (estou enganado?). O firmware é 01.01.00, o mesmo que já estava rodando. O Aplicativo anterior, funciona e na mesma máquina não funciona o aplicativo novo. Isto ocorre em duas máquinas diferentes.
  14. Eu uso: TACBrECFVirtualSAT, TACBrSAT
  15. Durante a fechamento da venda, o SAT processou a requisição e já acumulou na memória, em seguida, faltou papel para imprimir - resumo: tenho um cupom emitido na SEFAZ, mas não impresso. Olhando o evento de OnErroFecharVenda - permite tratar o evento e pedir para reimprimir.... (respondendo tratado:=true); Se a impressão foi retomada com sucesso, e não ocorrendo nenhum outro evento, o "estado" continua "estPagamento", impedindo continuar vendendo. O problema surge quando precisa fazer o cancelamento do CFe. O evento "OnErroFecharVenda" responde que foi tratado e o "estado" da venda não é alterado, se tentar cancelar o cupom - será cancelado como se fosse uma venda em andamento e não envia o cancelamento para o SAT. Desta forma tenho um cupom cancelado localmente e não transmitido o cancelamento para o SAT. Como estou resolvendo: No evento "OnErroFecharVenda", marco uma variável indicando que o usuário não confirmou a impressão e portanto temos um CFe válido mas, não impresso; O evento responde que o "erro" foi tratado, e retorna para o aplicativo. No aplicativo, olha a variável e então executa o cancelamento do cupom e também do CFe (duas chamadas para executar a operação); - chamada 1: limpa as variáveis alterando o "estado"; - chamada 2: enviar o pedido de cancelamento direto para o SAT;
  16. Estava com uma mensagem de List Index[2] quando enviava o cupom para o SAT. Investigando, notei que ao enviar para o SAT não conseguiu abrir a porta de comunicação (estava configurado errado no bemasat); Fiz uma alteração para retornar erro se isto ocorrer, assim fica mais transparente a mensagem para usuário. mensagem := EnviarDadosVenda; if pos('erro',lowercase(copy(mensagem,1,10)))>0 then raise EACBrSATErro.Create('Erro ao enviar Dadosda Venda:'+sLineBreak +mensagem); ACBrECFVirtualSAT.pas
  17. A Idéia deste modelo é ter 2 vias de impressão de cancelamento. Daí creio que cortar não seria problema... mas de verdade, não sei te responder.
  18. Daniel, Já estava funcionando com o "Trunk", depois que troquei para "Trunk2", agora não consigo iniciar a porta serial.... Ele retorna erro quando executa esta chamada: windows.setcommstate( ...) - retorna erro 87 parâmetro inválido. Não consegui localizar o problema. Testei em uma outra máquina onde roda a versão anterior (que funciona) e quando troca para a versão do "Trunk2" ocorre o mesmo erro (87); Vc sabe de algum teste com sucesso, depois que trocou para o Trunk2 ?
  19. Vi que algumas pessoas postaram no forum falando sobre as incializações para Simples Nacional. A sugestão é alterar para incializar por padrão quando for simples nacional: CSOSN: 102 (sem direito a crédito) CST: 49 (outras) (PIS e COFINS) Se o dado a ser utilizado for diferente do padrão, utilizar o evento para indicar o valor. A idéia é facilitar quem esta iniciando. Não desprezar a necessidade de utilizar o evento: <QuandoVenderItem> ele irá proporcionar a aplicação correta a cada produto.
  20. Encontrei o problema - o tipo de assinatura dos metodos que acessavam a DLL estavam setados em desacordo com o que estava na DLL. Voltei o código para o original... Esta funcionado.
  21. Tinha uma erro na definição da porta quando não era indicado a porta de comunicação. Alterado. Alterei também para manter a conexão tcp desligada... nos testes, a impressora não estava estável (o link tcp com a rede) daí a conexão se perdia... não vai resolver todas a situações, mas vai diminuir. ACBrDevice.pas
  22. Já faz algum tempo que tenho me envolvido com alguns projetos relacionado a automação residencial. Depois de muitas idas e vindas encontrei um material interessante em www.mysensors.com A infraestrutura deste projeto tem por base o Arduino com transmissão por rádio de dados coletados em campo. Tenho alguns projetos em andamentos em laboratório que utiliza este modelo e tem se mostrado bastante robusto. Estou anexando o protocolo de troca de dados utilizado neste projeto, pensando em levantar qual o interesse da comunidade e também porque ele usa algumas partes do projeto ACBr na estrutura de comunicação (ACBrSerial). MySensors.rar
×
×
  • 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.