. . . cNSU = "122807" cValor = "100" " 1,00 cNomeRede =
"AMEX" cNumeroDOC = "547016" cData = "06062005" " DDMMAAAA cHora =
"122807" " HHMMSS
lRet = CancelaTransacaoTEF(cNSU, cValor, cNomeRede,
cNumeroDOC, cData, cHora) ImprimeGerencial . . .
" Função:
CancelaTransacaoTEF " Objetivo: Cancelar uma transação já confirmada "
Parâmetros: String com o número de identificação (NSU) "
String
com o valor da transação "
String
com o valor da transação "
String
com o nome e bandeira (REDE) "
String
com o número do documento
"
String com a data da transação no formato DDMMAAAA
"
String com a hora da transação no formato HHSMMSS " Retorno: True para OK ou
False para não OK Function CancelaTransacaoTEF(cNSU As String, cValor As
String, _ cNomeRede As String, cNumeroDOC As String,
cData As String, _ cHora As String) As Boolean
Dim cConteudo As String cConteudo
= "" cConteudo = "000-000 = CNC" + Chr(13) + Chr(10) + _
"001-000 = " + cNSU + Chr(13) + Chr(10) + _
"003-000 = " + cValor + Chr(13) + Chr(10) + _
"010-000 = " + cNomeRede + Chr(13) + Chr(10) + _
"012-000 = " + cNumeroDOC + Chr(13) + Chr(10) + _
"022-000 = " + cData + Chr(13) + Chr(10) + _
"023-000 = " + cHora + Chr(13) + Chr(10) + _
"999-999 = 0" Open App.Path & "\INTPOS.001" For Binary As
#1 Put #1, , cConteudo Close #1
FileCopy App.Path & "\INTPOS.001",
"C:\TEF_DIAL\REQ\INTPOS.001" Kill App.Path & "\INTPOS.001"
End Function
" Função: ImprimeGerencial " Objetivo: Imprimir
através do Relatório Gerencial a transação efetuada. " Retorno: 1 para OK ou
diferente de 1 para não OK Function ImprimeGerencial() As Integer
Dim cConteudo As String, cLinha As String, cSaltaLinha As
String, _ cLinhaArquivo As String
Dim iTentativas As Integer, _
iVezes As Integer, iImprimeGerencial As Integer Dim
bTransacao As Boolean cArquivoTemp = Dir(App.Path &
"\IMPRIME.TXT") If cArquivoTemp <> "" Then
Kill App.Path & "\IMPRIME.TXT"
End If iImprimeGerencial = 1
For iTentativas = 1 To 7 cLinhaArquivo = ""
cLinha = ""
Do While True
" Verifica se o
Gerenciador Padrão recebeu o INTPOS.001 da
" solicitação
cArquivoTemp =
Dir("C:\TEF_DIAL\RESP\INTPOS.STS")
If cArquivoTemp
<> "" Then
cArquivoTemp = Dir("C:\TEF_DIAL\RESP\INTPOS.001")
If
cArquivoTemp <> "" Then
Open "C:\TEF_DIAL\RESP\INTPOS.001" For Input As #1
Do While Not EOF(1)
Line Input #1, cLinhaArquivo
" Verifica se a Transação foi Aprovada
If (Mid(cLinhaArquivo, 1, 3) = "009") Then
If (Mid(cLinhaArquivo, 11, Len(cLinhaArquivo) _
- 10)) = "0" Then
bTransacao = True
End If
If (Mid(cLinhaArquivo, 11, Len(cLinhaArquivo) - 10)) _
<> "0" Then
bTransacao = False
End If
End If
" Verifica se existem linhas para serem impressas
If (Mid(cLinhaArquivo, 1, 3) = "028") Then
If (Int(Mid(cLinhaArquivo, 11, Len(cLinhaArquivo) - 10)) _
<> 0) And (bTransacao = True) Then
iImprimeGerencial = 1 " OK
For iVezes = 1 To Int(Mid(cLinhaArquivo, 11, _
Len(cLinhaArquivo) - 10))
Line Input #1, cLinhaArquivo
" Verifica se o campo é 029 e armazena as linhas
" que serão impressas
If Mid(cLinhaArquivo, 1, 3) = "029" Then
cLinha = cLinha + Mid(cLinhaArquivo, 12, _
Len(cLinhaArquivo) - 12) + Chr(13) + Chr(10)
End If
Next
End If
End If
" Verifica se o campo é o 030 para mostrar a mensagem para
" o operador
If (Mid(cLinhaArquivo, 1, 3) = "030") And (cLinha <> "") Then
" Está sendo usado um form para a exibição desta mensagem
frmMensagem.lblMensagem.Caption = Mid(cLinhaArquivo, 11, _
Len(cLinhaArquivo) - 10)
frmMensagem.Show
frmMensagem.Refresh
Sleep (5000)
Unload frmMensagem
frmPrincipal.Refresh
iImprimeGerencial = 1
End If
If (Mid(cLinhaArquivo, 1, 3) = "030") And (cLinha = "") Then
cArquivoTemp = Dir("C:\TEF_DIAL\REQ\INTPOS.001")
If cArquivoTemp <> "" Then
Kill App.Path & "C:\TEF_DIAL\REQ\INTPOS.001"
End If
MsgBox Mid(cLinhaArquivo, 11, Len(cLinhaArquivo) - 10), _
vbInformation + vbOKOnly, "Atenção" iImprimeGerencial = 0
End If
Loop
Exit Do
End
If End If
Loop
iTentativas = 8
Sleep (1000)
Next " Cria o arquivo temporário IMPRIME.TXT com a imagem
do comprovante If (cLinha <> "") Then
Close #1
Open App.Path & "\IMPRIME.TXT" For
Binary As #1 Put #1, , cLinha
Close #1 End If
Sleep (1000) If (iTentativas = 7)
Then Close #1
iImprimeGerencial = -1
End If If (iImprimeGerencial = 0)
Or (iImprimeGerencial = -2) Then Close
#1 cArquivoSTS =
Dir("C:\TEF_DIAL\RESP\INTPOS.STS") If
(cArquivoSTS <> "") Then
Kill
"C:\TEF_DIAL\RESP\INTPOS.STS" End If
cArquivoINTPOS =
Dir("C:\TEF_DIAL\RESP\INTPOS.001") If
(cArquivoSTS <> "") Then
Kill
"C:\TEF_DIAL\RESP\INTPOS.001" End If
End If " Bloqueia o teclado e o
mouse para a impressão do TEF iRetorno =
Bematech_FI_IniciaModoTEF() cArquivoTemp = Dir(App.Path
& "\IMPRIME.TXT") If cArquivoTemp <> "" Then
Open App.Path & "\IMPRIME.TXT" For
Input As #1 cConteudo = ""
cLinha = ""
Do While Not EOF(1)
Line Input #1, cLinha
cConteudo = cConteudo
+ cLinha + Chr(13) + Chr(10)
iRetorno =
Bematech_FI_RelatorioGerencial(cLinha + Chr(13))
VerificaRetornoFuncaoImpressora (iRetorno)
If EOF(1) Then
cSaltaLinha = Chr(13) + Chr(10) + Chr(13) + Chr(10) + _
Chr(13) + Chr(10) + Chr(13) + Chr(10) + Chr(13) + Chr(10)
iRetorno = Bematech_FI_RelatorioGerencial(cSaltaLinha)
VerificaRetornoFuncaoImpressora (iRetorno)
"
Está sendo usado um form para a exibição desta mensagem
frmMensagem.lblMensagem.Caption = "Por favor, destaque a 1ª Via"
frmMensagem.Show
frmMensagem.Refresh
Sleep (5000)
Unload frmMensagem
frmPrincipal.Refresh
iRetorno = Bematech_FI_RelatorioGerencial(cConteudo)
VerificaRetornoFuncaoImpressora (iRetorno)
End If
Loop
Close #1
cArquivoTemp = Dir(App.Path &
"\IMPRIME.TXT") If cArquivoTemp
<> "" Then Kill
App.Path & "\IMPRIME.TXT" End If
" Desbloqeia o teclado e o mouse
iRetorno =
Bematech_FI_FinalizaModoTEF() iRetorno
= Bematech_FI_FechaRelatorioGerencial()
VerificaRetornoFuncaoImpressora (iRetorno) End If End
Function FileCopy App.Path & "\INTPOS.001",
"C:\TEF_DIAL\REQ\INTPOS.001" Kill App.Path &
"\INTPOS.001" cArquivoSTS =
Dir("C:\TEF_DIAL\RESP\INTPOS.STS") If (cArquivoSTS
<> "") Then Kill
"C:\TEF_DIAL\RESP\INTPOS.STS" End If
cArquivoINTPOS = Dir("C:\TEF_DIAL\RESP\INTPOS.001")
If (cArquivoSTS <> "") Then
Kill "C:\TEF_DIAL\RESP\INTPOS.001"
End If MsgBox "Cancelada a
Transação" + Chr(13) + Chr(13) + "Rede: " + _
cNomeRede + Chr(13) + "Doc Nº: " + cNSU
+ Chr(13) + "Valor: " + _ Format(cValor
/ 100, "#,##0.00"), vbInformation + vbOKOnly, "Atenção" End
Function |