Ir para conteúdo
  • Cadastre-se

giulianon

Membros
  • Total de ítens

    415
  • Registro em

  • Última visita

  • Days Won

    4

Tudo que giulianon postou

  1. Dá uma olhada na velocidade da porta de comunicação. Já aconteceu várias vezes comigo da ecf voltar da intervenção com outra velocidade. Não só com a sweda como também com outras marcas. Tenta usar o ecf teste pra detectar a velocidade, ou no caso sweda se preferir, o lacrador disponível pra download no site. Att.
  2. Boa noite Daniel! Acho que dificilmente alguém vai disponibilizar um exemplo da maneira que você quer. Talvez você esteja confuso e sem saber qual componente usar, por não ter lido roteiro de análise funcional do paf por completo. Recomendo que leia tudo antes pra saber onde cada componente se encaixa. Se tiver dúvida sobre o que cada componente faz, de uma pesquisada aqui no fórum e se não encontrar crie um post expondo sua dúvida, que com certeza será esclarecida. Sobre os componentes ali que você mencionou, o ACBrAAC é o componente que trata do arquivo auxiliar criptografado, onde são mantidos os números de série das ecfs, GT de cada ecf, etc. Se procurar no roteiro por "arquivo auxiliar" vai encontrar vários requisitos e testes e se observar o exemplo do ACBrAAC vai ver que ele atende exatamente aos testes do roteiro. Ligando ele ao componente ACBrECF, tudo é feito praticamente de forma automática. O componente ACBrPAF é utilizado para gerar os arquivos exigidos pelo roteiro. Onde você encontrar no roteiro requisitos que sejam processos de geração de arquivos, pode ter certeza que o ACBrPAF gera. Mas veja bem, gera no sentido de criar o arquivo com o layout exigido pelo roteiro. A origem dos dados cabe a você. Ele também faz o tratamento do BLOCO VII no que diz respeito a inclusão, alteração e exclusão de registros. O componente ACBrEAD é utilizado para gerar o par de chaves e também assinar os arquivos gerados pelo ACBrPAF. Se der uma pesquisada no roteiro por EAD vai achar vários requisitos e testes com tal exigência. Att.
  3. Tem vários tópicos no fórum tratando disso. Seria interessante dar uma pesquisada antes de criar um novo. Seria interessante também dar uma olhada no programa exmplo ECFTeste que acompanha a instalação do ACBR. Nele tem exemplo de praticamente todos os comandos. De qualquer forma para lhe adiantar, o comando para tirar e memória fiscal em arquivo por data é: ACBrECF1.LeituraMemoriaFiscalSerial(DataInicio, DataFim, Arquivo); Att.
  4. Fiz o teste aqui. Daruma Fs700 conectada ao note com cabo serial->usb TU-S9, última versão do ACBr, utilizando o ECFTeste. Tudo normal! CPU em 1%, 2% no máximo. Att.
  5. Posso testar aqui Daniel. Estou com a Daruma aqui em mãos. Uso o cabo SERIAL->USB. Só preciso que o João me diga se está com a última versão do ACBR pois eu não estou e ai teria que atualizar. Att.
  6. Está usando qual modelo? SWEDA ou SWEDASTX? Att.
  7. Resposta da Daruma "Claro! Falamos com o Regys estes dias atrás e vamos fazer esta implemtacao na dll sim. So estamos com um LOG de atividades um pouco grande mas esta aqui em nossa lista de Atividades Claudenir C. Andrade| Gerente Integração e Desenvolvimento, P&D - Daruma Developers Community | MVP Microsoft Skype: claudenir_andrade | Tels: +55 12 3949 6033 Cel.: +55 11 8137 0262" \o/
  8. Encaminhei emails para a Daruma e para a Sweda pedindo que observassem o post também. Vamos aguardar o retorno dos mesmos. Att.
  9. Tem funções que OBRIGATORIAMENTE você terá que utilizar as DLLs das ecfs, tanto que o próprio ACRBrECF se utiliza das mesmas. Att.
  10. Bom dia! Acho que esse post pode ajudar. Dê uma olhada Att.
  11. Eu faço isso, mas a 2a. via faço tipo um comprovante usando o relatório gerencial. Se usasr 2x a sangria não vai ter jeito. Vai acumular no totalizador mesmo. Att.
  12. O par de chaves é gerado uma única vez e a partir dai apenas utilizado para assinar os arquivos. A chave privada eu particularmente utilizei como está nos exemplos do ACBRPaf, fixa no fonte, mas você pode carregar a mesma do arquivo, claro, mantendo a mesma critografada nele. A chave pública você utiliza na homologação do paf e quando for solicitada por algum fiscal, você deve fornec-la. Quanto a XML gerado, sinceramente não entendi qual a sua dúvida. Att.
  13. Vou baixar e tentar implementar Daniel. Qualquer coisa posto as dúvidas aqui pra você me ajudar. Obrigado! Att.
  14. Bem que eu queria Daniel, mas a maioria dos meus clientes, usa a leitura de CMC7 dos cheques pela ecf, modelos ST1000 e ST2000. E essa leitura só está implementada nada classe ecfSweda. Já tentei sem sucesso fazer essa implementação na classe ecfSwedaSTX Att.
  15. Segue os métodos da classe TACBrECFSweda procedure TACBrECFSweda.EfetuaPagamento(CodFormaPagto: String; Valor: Double; Observacao: AnsiString; ImprimeVinculado: Boolean); Var Espera : Integer ; begin if ImprimeVinculado then if (fsVersaoSweda < swdD) and (fsVinculado > 0) then raise Exception.Create(ACBrStr('Já existe Forma de Pagamento com '+sLineBreak+ 'comprovante NAO fiscal vinculado pendente. '+sLineBreak+ 'Impressora: '+fpModeloStr+' Modelo: '+fsModeloSweda+sLineBreak+ ' aceita apenas 1 Compr.NAO Fiscal Viculado por Cupom.')) else fsVinculado := fsVinculado + 1 ; If (fsVersaoSweda < swdB) or (Length(Trim(Observacao)) = 0) then Observacao := '' else Observacao := '{' + copy(Observacao,1,80) ; AguardaImpressao := ((fsModeloSweda = 'C') or (fsModeloSweda = 'B')) ; EnviaComando('10' + CodFormaPagto + IntToStrZero( Round(Valor*100) ,12) + Observacao ); ////////////////////////////////////////////////////////////////////////////////////////////////// Desligando a ecf aqui { Sweda pode demorar um pouco para entrar no estado de Pagmento, se tentar fechar o Cupom antes, o ECF pode para de responder } if fsTotalPago <= 0 then // É o primeiro pagamento ? begin if fsVersaoSweda < swdST then begin Espera := 0 ; try while (TotalPago = 0 ) and (Espera < 10) do begin sleep( 200 ) ; Inc(Espera) ; end; except end; end; fsTotalPago := 0 ; end ; ///////////////////////////////////////////////////////////////////////////////////////////////////// Não soma aqui fsTotalPago := fsTotalPago + Valor ; end; function TACBrECFSweda.GetTotalPago: Double; Var RetCmd, Status : AnsiString ; SubTot, Falta : Double ; P : Integer ; begin //////////////////////////////////////////////////////////////////////// Retorna o valor incorreto if fsTotalPago >= 0 then // Possui TotalPago acumulado ? begin Result := fsTotalPago ; exit ; end ; Result := 0 ; RetCmd := EnviaComando('28') ; If fsVersaoSweda > swdA then P := 10 else P := 07 ; { Status pode ser: C - concluida, P - Pendente, E - Erro no Comando } Status := UpperCase(copy(RetCmd,P,1)) ; if Status = 'P' then begin P := pos('!',RetCmd) ; if P > 0 then begin SubTot := RoundTo(StrToFloatDef(copy(RetCmd,P-24,12),0) / 100, -2) ; Falta := RoundTo(StrToFloatDef(copy(RetCmd,P+52,12),0) / 100, -2) ; Result := max( RoundTo(SubTot - Falta,-2) ,0) ; { evitar negativo } end ; end ; end;
  16. Foi exatamente o que eu fiz Daniel. Só que tem um probleminha. O retorno do TotalPago não está vindo corretamente. Estou usando a classe SWEDA e notei que quando a primeira forma de pagamento é enviada, o TotalPago é alimentado consultando a ECF, mas a partir da segunda forma de pagamento esse total é acrescido diretamente com o valor enviado ao método EfetuaPagamento, não consultando mais a ecf dai pra frente. Se eu desligar a ecf examente no envio de qualquer forma de pagamento a partir da 2a., ocorre o erro, não chegando assim no ponto em que o TotalPago é acrescido, ou seja, a partir dai o TotalPago está com o valor diferente do que realmente está na ecf. Para testar, alterei o fonte ali pra que o TotalPago fosse retornado sempre consultando a ECF e ai funcionou certinho. Mas creio que não seja o ideal, já que essa variável é utilizada em vários métodos da classe. Att.
  17. É mas no meu caso estamos falando de um PDV pra supermercado que não faz DAV, nem pré-venda e normalmente tem compras com 300, 350, 400 itens. Cancelar o cupom e passar tudo isso de novo seria um grande transtorno, retirando todos os produtos já das bolsas e passando novamente, gerando fila, etc. Alias qualquer problema na finalização da venda já gera transtorno, e por isso que estou tentando fazer um tratamento adequado e o mais automático possível pra isso. O problema o ocorre quando por exemplo a ecf é desligada exatamente quando envio uma forma de pagamento e não tenho o retorno se a mesma foi realmente registrada na ecf. No itens do cupom esse tratamento é fácil pois dá pra consultar o último item registrado na ecf. Mas no caso das formas de pagamento, até o onde eu vi aqui, só consigo consultar o total pago. Mas obrigado! Vou continuar tentando fazer esse tratamento pelo total pago. Att.
  18. Isso mesmo Gobbo! Durante a venda. Quando vou mandar as formas de pagamento, faço um loop e vou enviando uma a uma, mas caso ocorra a perda da comunicação com a ecf, falta de energia, etc, quero saber realmente quais formas de pagamento já foram registradas, para tratar de forma adequada a sequência. Att.
  19. Boa tarde colegas! Só pra ter certeza, não existe comando pra consultar quais as formas de pagamento já foram registradas pelas ecf certo? Procurei no ECFTeste e também dei uma olhada nos fontes e a princípio não encontrei. Só consigo saber quanto já foi registrado, pelo ACBrECF1.TotalPago correto? Att.
  20. Bom dia Alan! Homologuei agora em março e os registros que gerei foram: 10, 11, 50, 54, 60M, 60A, 60D, 75 e 90. Att.
  21. Que diz respeito ao anexo VI, do ATO COTEPE, o ACBr gera esse arquivo? Se sim, está em que exemplo? Obrigado! Gera mas as informações desse arquivo devem vir do seu banco de dados. Está no exemplo do ACBrPAF. Registros do tipo R. Att.
  22. Funcinou legal também. Só rezo pra eles não trocarem essas strings do título, hehehehehe. Obrigado! Att.
  23. É consegui obter sim Daniel. for i := 0 to ACBrTEFD1.Resp.Conteudo.Count - 1 do begin Linha := ACBrTEFD1.Resp.Conteudo.Linha[I]; Chave := LowerCase( Linha.Chave ); Valor := StringToBinaryString( Linha.Informacao.AsString ); if Chave = 'transacao_nsu_rede' then showmessage(valor); end; Na verdade nesse evento consigo obter qualquer informação. Mais uma vez obrigado Daniel! Att.
  24. Vou testar para ver se essa informação vem nesse evento.
  25. Não foi não Daniel. Na verdade eu já sou homologado. Sou estou fazendo a troca das rotinas que eu fiz não "mão," pelo componente ACBrTEFD, e essas foram as diferenças que eu encontrei. Tirando o cancelamento que tinha o problema, essas outras duas são meramente funcionais. A questão de passar os parâmetros do que tu não quero que seja coletado junto ao usuário, vai economizar tempo e evitar que o mesmo acabe informando algo que não deveria. E a questão da coleta da tag transacao_nsu_rede, é para a conciliação dos dados que vem das redes com as informações que coletamos em cada transação de cartão. Quem for fazer essa conciliação e utilizar o VeSPague vai precisar com certeza dessa informação. Att.
×
×
  • 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.