Ir para conteúdo
  • Cadastre-se

simons

Membros Pro
  • Total de ítens

    234
  • Registro em

  • Última visita

2 Seguidores

Sobre simons

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

simons's Achievements

Community Regular

Community Regular (8/14)

  • Dedicated Rare
  • Reacting Well Rare
  • First Post
  • Collaborator Rare
  • Week One Done

Recent Badges

52

Reputação

9

Community Answers

  1. minha sugestao de alteracao: procedure FazerRequisicaoSiTef linha do arquivo: 332 DoctoStr := IfEmptyThen(fpACBrTEFAPI.RespostasTEF.IdentificadorTransacao, DataStr+HoraStr); segue em anexo arquivo para avaliação. ACBrTEFAPICliSiTef.pas
  2. 2- O parâmetro CupomFiscal não deve se repetir e nem ser nulo em NENHUMA ocasião, ele deve sempre ser alterado de acordo com novas transações. Cancelamento de vendas, reimpressões e o tratamento de pendências também são tratados como novas transações e, por isso, devem ter um CupomFiscal diferente da transação realizada. 18:40:30: (00000000.SE000001) CliSiTefI : IFSI (IniciaFuncaoSiTefInterativo) - hCliSiTefi = [1028cac0] 18:40:30: (00000000.SE000001) CliSiTefI : IFSI - Modalidade = 130 18:40:30: (00000000.SE000001) CliSiTefI : IFSI - Valor = [0,00] 18:40:30: (00000000.SE000001) CliSiTefI : IFSI - CupomFiscal (78b7d63c/0) Outro exemplo: 18:40:33: (00000000.SE000001) CliSiTefI : IFSI (IniciaFuncaoSiTefInterativo) - hCliSiTefi = [1028cac0] 18:40:33: (00000000.SE000001) CliSiTefI : IFSI - Modalidade = 130 18:40:33: (00000000.SE000001) CliSiTefI : IFSI - Valor = [0,00] 18:40:33: (00000000.SE000001) CliSiTefI : IFSI - CupomFiscal (78b7d63c/0) acima o retorno da pre-homologacao referente ao tratamento de transacoes pendentes na inicializacao.
  3. @Daniel Simoes, ola, tem mais um detalhe nesta questao do processar transacao pendente na inicializacao, o homologador do sitef no processo de pre-homologacao me disse que todas as transacoes de reimpressao, cancelamento, pendencias devem ter um novo numero de documento (identificador da transacao), e no caso da pendencia na inicializacao eu nao tenho como passar essa informacao ... ele sugere que coloque algo como data e hora da transacao tipo assim yyyymmddhhmmss, seria possivel efetuar mais essa alteracao ?
  4. ola, ainda é possivel fazer manual essa confirmacao, para poder exibir a mensagem ao operador, configurando a propriedade TratamentoTransacaoInicializacao para não realizar tratamento nenhum o acbr continuara buscando as transacoes pendentes porem nao vai confirmar ou estornar e ai que entra o loop mencionado pelo colega @datilas.
  5. @Daniel Simoes, porem para homologacao é necessario a mensagem ao operador de que a operacao foi confirmda e precisa ser reimpresso o comprovante!!!
  6. @Daniel Simoes, agora funcionou a confirmação da transação que estava pendente, so ficou faltando alguma mensagem de que foi feito uma confirmacao para o operador saber que precisa fazer a reimpressao: - A aplicação deverá exibir uma mensagem na tela, informando ao operador o status do tratamento da transação pendente Exemplo de transação confirmada: "Transação T.E.F. realizada com sucesso. Para reimpressão, favor solicitar o último cupom. No caso da Cielo, utilize apenas os 6 últimos dígitos.” - Caso opte por cancelar a transação, não será gerado um comprovante T.E.F. para reimpressão. Além disso, no relatório de transações, o status da operação será registrado como CANC.PDV
  7. juliomar, percebi que o componente faz esse tratamento de forma interna, e agora um outro usuario me enviou oque ele fez para homologar, seque o topico: com vi que o componente ja faz o tratamento interno nao tem porque eu fazer novamente este tratamento no meu sistema!!!
  8. segue em anexo imagens das configuracoes !
  9. ola, estou iniciando a minha homologacao no tef clisitef, na sequencia 15 onde trata de transacoes pendentes não consegui fazer com que o acbr cofirme automaticamente a transação pendente na inicializacao. como reproduzir: primeiro precisa ter uma transacao pendente do sitdemo, marcar as configuracoes no acbr para cofirmar as transacoes automaticamente; pendencia na inicializacao = processar pendentes; simulei no demo do acbr e o resultado foi o mesmo, depois que o acbr coleta as transacoes pendentes do sitdemo usando a operacao 130, quando chega na procedure VerificarTransacoesPendentes do arquivo ACBrTefApiComum.pas procedure TACBrTEFAPIComum.VerificarTransacoesPendentes; var i: Integer; MsgErro: String; begin GravarLog('VerificarTransacoesPendentes'); for i := 0 to RespostasTEF.Count-1 do begin UltimaRespostaTEF.Assign(RespostasTEF[i]); if UltimaRespostaTEF.Confirmar then // Transação requer Confirmação ? begin if not UltimaRespostaTEF.CNFEnviado then // Ainda não enviou a Terceira Perna ? begin MsgErro := Format( ACBrStr(sACBrTEFAPITransacaoPendente), [UltimaRespostaTEF.Rede, UltimaRespostaTEF.NSU] ); ProcessarTransacaoPendente( MsgErro ); end; end end; end; na linha grifada o valor da propriedade esta sempre False e eu acho que o probelma esta no codigo a seguir no arquivo ACBrTefApiCliSitef.pas: procedure TACBrTEFAPIClassCliSiTef.CarregarRespostasPendentes( const AListaRespostasTEF: TACBrTEFAPIRespostas); var i, j: Integer; CupomFiscal, NumIdent, DataFiscal, HoraFiscal: String; ValorTransacao: Double; RespTEFPendente: TACBrTEFResp; InfValor: TACBrInformacao; begin AListaRespostasTEF.CarregarRespostasDoDiretorioTrabalho; i := 0; while i < AListaRespostasTEF.Count do begin RespTEFPendente := AListaRespostasTEF[i]; if not RespTEFPendente.CNFEnviado then // Transações não confirmadas, serão carregadas abaixo, pelo comando 130 AListaRespostasTEF.ApagarRespostaTEF(i) else Inc(i); end; // Solicita do TEF respostas pendentes ExecutarTransacaoSiTef(CSITEF_OP_ConsultarTrasPendente, 0); i := fpACBrTEFAPI.UltimaRespostaTEF.LeInformacao(210, 0).AsInteger; // Total number of pending issues if (i = 0) then Exit; // Varre o Log, e carrega em AListaRespostasTEF with fpACBrTEFAPI.UltimaRespostaTEF do begin i := 1; CupomFiscal := Trim(LeInformacao(160, i).AsString); while NaoEstaVazio(CupomFiscal) do begin NumIdent := Trim(LeInformacao(161, i).AsString); DataFiscal := Trim(LeInformacao(163, i).AsString); HoraFiscal := Trim(LeInformacao(164, i).AsString); ValorTransacao := LeInformacao(1319, i).AsFloat; RespTEFPendente := TACBrTEFRespCliSiTef.Create; InfValor := TACBrInformacao.Create; try RespTEFPendente.Conteudo.GravaInformacao(899,100,'CRT'); RespTEFPendente.Conteudo.GravaInformacao(899,102, CupomFiscal); RespTEFPendente.Conteudo.GravaInformacao(899,500, NumIdent); RespTEFPendente.Conteudo.GravaInformacao(105,000, DataFiscal + HoraFiscal); InfValor.AsFloat := ValorTransacao; RespTEFPendente.Conteudo.GravaInformacao(899,103, InfValor); RespTEFPendente.Finalizacao := CupomFiscal; RespTEFPendente.DocumentoVinculado := CupomFiscal; j := AListaRespostasTEF.AdicionarRespostaTEF(RespTEFPendente); // Cria Clone interno AListaRespostasTEF.Items[j].NSU := ''; AListaRespostasTEF.Items[j].CNFEnviado := False; AListaRespostasTEF.Items[j].Confirmar := True; finally InfValor.Free; RespTEFPendente.Free; end; inc(i); CupomFiscal := Trim(LeInformacao(160, i).AsString); end; end; end; apos adicioanr a resposata tef com a resposta pendente ele altera o objeto que veio por paramento com a diretiva const e essa alteracao nao permanece gravada!
  10. ai que esta, nao estou carregando em threads diferentes, estou fazendo o desinicializar em uma e inicializar em outra, não é ao mesmo tempo, oque parece é que mesmo fazendo o desinicializar a proteção continua ativa!
  11. @Daniel Simoessim daniel, ouvi, uma boa noticia seria essa implementacao por parte da paygo de uma funcionalidade para poder enviar qrcode (imagem) via dll do tef paygo para o pinpad que ja é uma demanda a tempo solicitada pela comunidade! vamos ver quanto tempo e se vai andar esse assunto. minha questão vai um pouco alem disse que é eu poder desinicializar a dll e inicializar quantas vezes eu quiser dentro de minha aplicacao para poder pular de um modulo exemplo faturamento de emissao de notas para outro modulo financeiro recebimento de crediario por exemplo e usar o tef nos dois... sem tomar uma mensagem dizendo que a pasta de instalacao esta bloqueada para gravação ou entao tomar um erro pinpad ao tentar transacionar como se tivesse duas aplicacoes tentando usar a porta do pinpad.
  12. pelo que vejo é so uma questao de o lib da paygo liberar a porta virtual com, eu preciso trabalhar no erp desta forma !
  13. em mercados é bem tranquilo posi o operador nao sai da tela de emissao de notas do pdv, porem em clientes onde o logista tem somente um pc que é para tudo usado! loja de confeccoes por exemplo, ele precisa lancar notas de compra ele precisa receber crediario uma serie de coisas que precisa sair da tela de emissao de notas!
  14. vou tentar ser mais claro, meu erp tem um menu principal que é um executavel, e totas as telas do sistema estao em dlls que chamo de modulo ex( modulo estoque/financeiro/faturamento etc), o no modulo faturamento é onde acontece a emissao de notas (nfce, nfe, nfse etc), neste modulo (dll) é onde faço o init no tef pois ele é utilizado na emissao de notas! porem isso so acontece quando o operador entra na tela de emissao de notas, ele sai as vezes para acessar outro modulo com por exemplo estoque para lancar notas de entrada ou financeiro para efetuar recebimento de crediario ou dar baixa em contas a pagar retorno de boletos etc, e ai as vezes acontece ao tentar voltar para tela de faturamento a mensagem de erro: falha de gravação no diretório tal que é o diretorio de trabalho do tef e neste momento somente reiniciando o pc esse problema se resolve! eu nao tinha esse problema antes com a dll do tef versao 15.2 ou 15.1 agora com a nova dll versao 30 isso esta acontecendo muitas vezes, entao vi a mensagem do juliomar dizendo que nao pode ficar inicializando e desinicializando toda hora a dll, porem no meu sistema preciso disso a menos que tivesse entao uma forma de inicializar ela oque demora muitooooo no menu principal do sistema e entao passar para os modulo a instancia do componente acbrtefd ou acbrtefapi que seja para poder continuar trabalhando com ele sem ter que fazer o processo de init etc, espero que tenha me explicado melhor! tenho mais um complicador, que as vezes o operador esta na tela de emissao de notas e precisa dar baixa em um crediario e esse sera pago em cartao isso la no modulo financeiro, hoje estou resolvendo da sequinte forma, desinicializo o tef na tela de emissao de notas e inicializo na tela do financeiro recebo o pagamento em tef, emito uma nota NFCe para vincular o pagamento em cartão e no retornar da tela do financeiro desinicializo o tef e inicializo novamente na tela de emissao de notas, esqueci de menciona sou aqui do RS.
  15. bom dia, tambem estou tendo muito esse problema nos clientes! com a mensagem falha de gravação no diretorio, que é o diretório de trabalho do tef, deixo sempre o padrao entao é criado a pasta dentro da pasta de minha aplicacao! sobre ficar inicializando e desinicializando, eu trabalho com modulos no sistema se eu inicializar no inicio da aplicacao ai teria que ter uma forma de compartilhar o handler entre os modulos sem ter que fazer esse processo toda vez, mas ainda continuaria com o problema de ao fechar o sistema totalmente e abrir novamente e isso acontece... tambem tem o problema! alguma sugestao ?
×
×
  • 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.

The popup will be closed in 10 segundos...