Ir para conteúdo
  • Cadastre-se

simons

Membros Pro
  • Total de ítens

    240
  • 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

53

Reputação

9

Community Answers

  1. ola, alguma novidade referente a esse topico?
  2. esta correto, a implementacao do @Daniel Simoes foi diferente da minha mas o resultado é o mesmo! eu alimento direto a variavel doctosrt : DoctoStr := IfEmptyThen(fpACBrTEFAPI.RespostasTEF.IdentificadorTransacao, DataStr+HoraStr); o daniel alimenta a propriedade identificadortransacao so isso a diferença acho que nao influencia isso!
  3. não poderia acontecer isso pois foi mudado o codigo do acbr com minha sugestao: [PortaPinPad=3;MultiplosCupons=1;VersaoAutomacaoCielo=PROJETO 10] 09/01/25 09:44:49:587 - Inicializado CliSiTEF 09/01/25 09:44:49:592 - *** IniciaFuncaoSiTefInterativo. Modalidade: 130 Valor: 0,00 Documento: 20250109094409 Data: 20250109 Hora: 094449 Operador: ParamAdic: 09/01/2 para que se nao for enviado uma finalizadora ele pegasse a data e hora da maquina que seria essa: Data: 20250109 Hora: 094449 minha sugestao de alteracao: procedure FazerRequisicaoSiTef linha do arquivo: 332 DoctoStr := IfEmptyThen(fpACBrTEFAPI.RespostasTEF.IdentificadorTransacao, DataStr+HoraStr); no arquivo ACBrTEFAPICliSiTef.pas que foi comitado no svn Commit [r36613]
  4. voce nao pode fazer assim: Ok := ACBrTEFAPI1.EfetuarPagamento( FormatDateTime('YYYYMMDDHHMMSS', now), AValor, Modalidade, CartoesAceitos, tefmfAVista ); pois nos pagamentos com multiplos cartoes precisa ir o mesmo numero de cupom e nao um diferente para cada cartao !
  5. lembrando que o sitef quer que toda transacao iniciada com ele tenha um cupom fiscal diferente, então não tem como passar o numero da nota fiscal desta forma eles mesmo dao a dica de passar uma mascara com data e hora.
  6. ola @Daniel Simoes, isso mesmo, resolvido!
  7. 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
  8. 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.
  9. @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 ?
  10. 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.
  11. @Daniel Simoes, porem para homologacao é necessario a mensagem ao operador de que a operacao foi confirmda e precisa ser reimpresso o comprovante!!!
  12. @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
  13. 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!!!
  14. segue em anexo imagens das configuracoes !
  15. 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!
×
×
  • 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...