Jump to content
Fivewin Brasil

TEF - Impressao Relatorio GErencial daruma


jef2_tim

Recommended Posts

Ola amigos

Fui reprovado hj no Visa, Redecard passou normal mas o visa me quebrou as pernas.

Bem, o problema foi o seguinte:

Para fazer a venda com a impressao normal do comprovante TEF eu uso o comand da dll da daruma:


Daruma_TEF_ImprimirResposta("C:\TEF_DIAL\RESP\INTPOS.001",Des_Por_Tef,"1")

id=code>id=code>

Com este comando eu consigo imprimir normalmente e o sistema verifica se houver desligamento tanto na primeira via quanto na segunda via.

Agora para fazer um relatorio eu uso o mesmo comando com a diferenca de nao usar a forma de pagamento:


Daruma_TEF_ImprimirResposta("C:\TEf_Dial\Resp\INTPOS.001", " ", "1")

id=code>id=code>

Ae q esta o problema, como a daruma diz, com este comand no relatorio gerencial eu nao preciso nem usar o comando de abertura, ele faz normalmente. Para enviar entao as duas vias eu mando a impressao do arquivo duas vezes verificando a comunicacao com a impressora logo apos enviar o comand. Se eu desligar a impressora na PRIMEIRA via do relatorio o sistema me retorna impressora desligada e tal e consigo fazer os tratamentos, agora se eu desligar a impressora na segunda via do cupom ae a impressora nao me retorna q foi desligada, passa tudo normalmente como se nao houvesse erro!

Aqui esta a rotina


*--------------------------

Function Rel_X(Ope)

*--------------------------

Ret_VerStat := .T.

If Alltrim(oVar:Nme_Imp_Fisc) = "FS345"

MsgRun("Verificando Status da Impressora Fiscal","Aguarde Retorno",;

{ || Ret_VerStat := Verifica_Cupons() } )

If Ret_VerStat

Ret_Tef := Ver_Arq_Tef()

TransOK := Left(Ret_Tef,3)

Opera := Substr(Ret_Tef,4,3)

Menstef := Substr(Ret_tef,7,40)

oTelaPrincipal:Minimize()

SysRefresh()

oTelaPrincipal:Restore()

SysRefresh()

DaTefFocu("Impactus Automação Comercial Versão 5.0")

If TransOK = "IMP"

MsgRun( "Fazendo Beckup Do Arquivo Resposta TEF, Aguarde!!!","Aguarde Retorno Sistema", ;

{ || __copyfile( "C:\Tef_Dial\Resp\Intpos.001", "C:\Impac\BkpTef\INTPOS.001" ) } )

Do While .T. // Aqui, na primeira via vai normal

DaTeftec("1")

oDlg_Jef := Jef_Meter("Atencao!!! Mensagem Retorno TEF",MensTEF,1,100)

DaImpTef("C:\TEf_Dial\Resp\INTPOS.001", " ", "1")

Do While !Ver_Ret_Dar(.F.)

oDlg_Jef:End()

DaTeftec("0")

IF MsgYesNo( "Impressora Não Responde ! Tentar Imprimir Novamente ?","Erro de Impressão" )

DaCupAdFec()

If Ver_Ret_Dar(.F.)

Exit

Loop

Else

Loop

Endif

Else

Verifica_Cupons()

If Ope = "VND"

oVenda_OK:Disable()

Endif

tef_Ncn()

dele file "c:\TEF_DIAL\RESP\INTPOS.STS"

dele file "c:\TEF_DIAL\RESP\ATIVO.001"

dele file "c:\TEF_DIAL\RESP\intpos.001"

Dele File "C:\Impac\BkpTef\Intpos.001"

Return .F.

exit

Exit

Endif

Enddo

oDlg_Jef:End()

oDlg_Jef := Jef_Meter("Atencao!!! Mensagem Retorno TEF",MensTEF,1,100)

DaTeftec("1")

Ver_Ret_Dar(.F.)

Inkey(5)

DaImpTef("C:\TEf_Dial\Resp\INTPOS.001", " ", "1") // Aqui q acho interessante. Ela nao me da o retorno

Do While !Ver_Ret_Dar(.F.)

oDlg_Jef:End()

DaTeftec("0")

IF MsgYesNo( "Impressora Não Responde ! Tentar Imprimir Novamente ?","Erro de Impressão" )

DaCupAdFec()

If Ver_Ret_Dar(.F.)

Exit

Loop

Else

Loop

Endif

Else

Verifica_Cupons()

If Ope = "VND"

oVenda_OK:Disable()

Endif

tef_Ncn()

dele file "c:\TEF_DIAL\RESP\INTPOS.STS"

dele file "c:\TEF_DIAL\RESP\ATIVO.001"

dele file "c:\TEF_DIAL\RESP\intpos.001"

Dele File "C:\Impac\BkpTef\Intpos.001"

Return .F.

exit

Exit

Endif

Enddo

Exit

Enddo

DaFechaRel()

Do While !Ver_Ret_Dar(.F.)

DaTeftec("0")

IF MsgYesNo( "Impressora Não Responde ! Tentar Imprimir Novamente ?","Erro de Impressão" )

DaTeftec("1")

DaCupAdFec()

Loop

Else

DaCupAdFec()

Ver_Ret_Dar(.T.)

Verifica_Cupons()

If Ope = "VND"

oVenda_OK:Disable()

Endif

TEF_NCN()

dele file "c:\TEF_DIAL\RESP\INTPOS.STS"

dele file "c:\TEF_DIAL\RESP\ATIVO.001"

dele file "c:\TEF_DIAL\RESP\intpos.001"

dele file "c:\Impac\intpos.002"

Dele File "C:\Impac\BkpTef\Intpos.001"

Return .F.

exit

Endif

Enddo

DaTeftec("0")

Else

MsgInfo(MensTef,"Atenção!!! Mensagem de Retorno Sistema T.E.F.")

Endif

Endif

If TransOK = "IMP"

DaTeftec("1")

MsgRun("Enviando Confirmação de Operação","Atenção!!! Mensagem de Retorno Sistema T.E.F.", ;

{ || Tef_Cnf() } )

oTelaPrincipal:Minimize()

SysRefresh()

oTelaPrincipal:Restore()

SysRefresh()

DaTefFocu("Orçamento / Venda de Produtos ou Serviços")

inkey(3)

DaTeftec("0")

Endif

id=code>id=code>

Se alguem tiver uma ideia ou uma rotina somente da impressao do arquivo em relatorio gerencial na daruma e puder me ajudar.. eu agradeco. Amanha vou ficar na seven ate pouco antes do encontro. Vou tentar conseguir um reagendamento.

valeu amigos

Um Xharbraço.

Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar

Impactus Automação Comercial

jef2_timber@hotmail.com

(91)-32387012

Belem-PA

Link to comment
Share on other sites

Ola amigos

Fui reprovado hj no Visa, Redecard passou normal mas o visa me quebrou as pernas.

Bem, o problema foi o seguinte:

Para fazer a venda com a impressao normal do comprovante TEF eu uso o comand da dll da daruma:


Daruma_TEF_ImprimirResposta("C:\TEF_DIAL\RESP\INTPOS.001",Des_Por_Tef,"1")

id=code>id=code>

Com este comando eu consigo imprimir normalmente e o sistema verifica se houver desligamento tanto na primeira via quanto na segunda via.

Agora para fazer um relatorio eu uso o mesmo comando com a diferenca de nao usar a forma de pagamento:


Daruma_TEF_ImprimirResposta("C:\TEf_Dial\Resp\INTPOS.001", " ", "1")

id=code>id=code>

Ae q esta o problema, como a daruma diz, com este comand no relatorio gerencial eu nao preciso nem usar o comando de abertura, ele faz normalmente. Para enviar entao as duas vias eu mando a impressao do arquivo duas vezes verificando a comunicacao com a impressora logo apos enviar o comand. Se eu desligar a impressora na PRIMEIRA via do relatorio o sistema me retorna impressora desligada e tal e consigo fazer os tratamentos, agora se eu desligar a impressora na segunda via do cupom ae a impressora nao me retorna q foi desligada, passa tudo normalmente como se nao houvesse erro!

Aqui esta a rotina


*--------------------------

Function Rel_X(Ope)

*--------------------------

Ret_VerStat := .T.

If Alltrim(oVar:Nme_Imp_Fisc) = "FS345"

MsgRun("Verificando Status da Impressora Fiscal","Aguarde Retorno",;

{ || Ret_VerStat := Verifica_Cupons() } )

If Ret_VerStat

Ret_Tef := Ver_Arq_Tef()

TransOK := Left(Ret_Tef,3)

Opera := Substr(Ret_Tef,4,3)

Menstef := Substr(Ret_tef,7,40)

oTelaPrincipal:Minimize()

SysRefresh()

oTelaPrincipal:Restore()

SysRefresh()

DaTefFocu("Impactus Automação Comercial Versão 5.0")

If TransOK = "IMP"

MsgRun( "Fazendo Beckup Do Arquivo Resposta TEF, Aguarde!!!","Aguarde Retorno Sistema", ;

{ || __copyfile( "C:\Tef_Dial\Resp\Intpos.001", "C:\Impac\BkpTef\INTPOS.001" ) } )

Do While .T. // Aqui, na primeira via vai normal

DaTeftec("1")

oDlg_Jef := Jef_Meter("Atencao!!! Mensagem Retorno TEF",MensTEF,1,100)

DaImpTef("C:\TEf_Dial\Resp\INTPOS.001", " ", "1")

Do While !Ver_Ret_Dar(.F.)

oDlg_Jef:End()

DaTeftec("0")

IF MsgYesNo( "Impressora Não Responde ! Tentar Imprimir Novamente ?","Erro de Impressão" )

DaCupAdFec()

If Ver_Ret_Dar(.F.)

Exit

Loop

Else

Loop

Endif

Else

Verifica_Cupons()

If Ope = "VND"

oVenda_OK:Disable()

Endif

tef_Ncn()

dele file "c:\TEF_DIAL\RESP\INTPOS.STS"

dele file "c:\TEF_DIAL\RESP\ATIVO.001"

dele file "c:\TEF_DIAL\RESP\intpos.001"

Dele File "C:\Impac\BkpTef\Intpos.001"

Return .F.

exit

Exit

Endif

Enddo

oDlg_Jef:End()

oDlg_Jef := Jef_Meter("Atencao!!! Mensagem Retorno TEF",MensTEF,1,100)

DaTeftec("1")

Ver_Ret_Dar(.F.)

Inkey(5)

DaImpTef("C:\TEf_Dial\Resp\INTPOS.001", " ", "1") // Aqui q acho interessante. Ela nao me da o retorno

Do While !Ver_Ret_Dar(.F.)

oDlg_Jef:End()

DaTeftec("0")

IF MsgYesNo( "Impressora Não Responde ! Tentar Imprimir Novamente ?","Erro de Impressão" )

DaCupAdFec()

If Ver_Ret_Dar(.F.)

Exit

Loop

Else

Loop

Endif

Else

Verifica_Cupons()

If Ope = "VND"

oVenda_OK:Disable()

Endif

tef_Ncn()

dele file "c:\TEF_DIAL\RESP\INTPOS.STS"

dele file "c:\TEF_DIAL\RESP\ATIVO.001"

dele file "c:\TEF_DIAL\RESP\intpos.001"

Dele File "C:\Impac\BkpTef\Intpos.001"

Return .F.

exit

Exit

Endif

Enddo

Exit

Enddo

DaFechaRel()

Do While !Ver_Ret_Dar(.F.)

DaTeftec("0")

IF MsgYesNo( "Impressora Não Responde ! Tentar Imprimir Novamente ?","Erro de Impressão" )

DaTeftec("1")

DaCupAdFec()

Loop

Else

DaCupAdFec()

Ver_Ret_Dar(.T.)

Verifica_Cupons()

If Ope = "VND"

oVenda_OK:Disable()

Endif

TEF_NCN()

dele file "c:\TEF_DIAL\RESP\INTPOS.STS"

dele file "c:\TEF_DIAL\RESP\ATIVO.001"

dele file "c:\TEF_DIAL\RESP\intpos.001"

dele file "c:\Impac\intpos.002"

Dele File "C:\Impac\BkpTef\Intpos.001"

Return .F.

exit

Endif

Enddo

DaTeftec("0")

Else

MsgInfo(MensTef,"Atenção!!! Mensagem de Retorno Sistema T.E.F.")

Endif

Endif

If TransOK = "IMP"

DaTeftec("1")

MsgRun("Enviando Confirmação de Operação","Atenção!!! Mensagem de Retorno Sistema T.E.F.", ;

{ || Tef_Cnf() } )

oTelaPrincipal:Minimize()

SysRefresh()

oTelaPrincipal:Restore()

SysRefresh()

DaTefFocu("Orçamento / Venda de Produtos ou Serviços")

inkey(3)

DaTeftec("0")

Endif

id=code>id=code>

Se alguem tiver uma ideia ou uma rotina somente da impressao do arquivo em relatorio gerencial na daruma e puder me ajudar.. eu agradeco. Amanha vou ficar na seven ate pouco antes do encontro. Vou tentar conseguir um reagendamento.

valeu amigos

Um Xharbraço.

Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar

Impactus Automação Comercial

jef2_timber@hotmail.com

(91)-32387012

Belem-PA

Link to comment
Share on other sites

Um 0 q esta me custando, por enquanto, 2mil reais.

Amigos.. eu olhei uns lances no Help da daruma e troquei a verificacao do erro e tal por apenas ver se foi ou nao o comando, ou seja 1 = foi legal, 0 nao foi. E parece q funcionou normalmente.

Vou postar aqui para q se algum amigo ver algo q pode me ferrar depois e puder deixar a dica.


*--------------------------

Function Rel_X(Ope)

*--------------------------

Ret_VerStat := .T.

If Alltrim(oVar:Nme_Imp_Fisc) = "FS345"

MsgRun("Verificando Status da Impressora Fiscal","Aguarde Retorno",;

{ || Ret_VerStat := Verifica_Cupons() } )

If Ret_VerStat

Ret_Tef := Ver_Arq_Tef()

TransOK := Left(Ret_Tef,3)

Opera := Substr(Ret_Tef,4,3)

Menstef := Substr(Ret_tef,7,40)

oTelaPrincipal:Minimize()

SysRefresh()

oTelaPrincipal:Restore()

SysRefresh()

DaTefFocu("Impactus Automação Comercial Versão 5.0")

x := 0

If TransOK = "IMP"

DaTeftec("1")

MsgRun( "Fazendo Beckup Do Arquivo Resposta TEF, Aguarde!!!","Aguarde Retorno Sistema", ;

{ || __copyfile( "C:\Tef_Dial\Resp\Intpos.001", "C:\Impac\BkpTef\INTPOS.001" ) } )

Do While x < 2

X++

oDlg_Jef := Jef_Meter("ATENCAO!!! Mensagem de Retorno TEF...",MensTEF,1,100)

mRet := DaImpTef("C:\TEF_DIAL\RESP\INTPOS.001", " ", "1")

// Eu criei aqui a var mREt q recebe o retorno da funcao, se 1 ou 0... E faco o tratamento por ela agora e parece q assim funcionou normal.

Do While mRet = 0

oDlg_Jef:End()

DaTeftec("0")

IF MsgYesNo( "Impressora Não Responde ! Tentar Imprimir Novamente ?","Erro de Impressão" )

DaTeftec("1")

mRet := DaCupAdFec()

If mRet # 0

X := 0

Endif

Else

oDlg_Jef:End()

Verifica_Cupons()

If Ope = "VND"

oVenda_OK:Disable()

Endif

tef_Ncn()

dele file "c:\TEF_DIAL\RESP\INTPOS.STS"

dele file "c:\TEF_DIAL\RESP\ATIVO.001"

dele file "c:\TEF_DIAL\RESP\intpos.001"

Dele File "C:\Impac\BkpTef\Intpos.001"

Return .F.

exit

Exit

Endif

Enddo

If x = 1

DaTeftec("1")

mRet := DaImpTef("C:\Impac\P_Lin.Txt", " ", "1")

Do While mRet = 0

oDlg_Jef:End()

DaTeftec("0")

IF MsgYesNo( "Impressora Não Responde ! Tentar Imprimir Novamente ?","Erro de Impressão" )

DaTeftec("1")

mRet := DaCupAdFec()

If mRet # 0

X := 0

Endif

Else

oDlg_Jef:End()

Verifica_Cupons()

If Ope = "VND"

oVenda_OK:Disable()

Endif

tef_Ncn()

dele file "c:\TEF_DIAL\RESP\INTPOS.STS"

dele file "c:\TEF_DIAL\RESP\ATIVO.001"

dele file "c:\TEF_DIAL\RESP\intpos.001"

Dele File "C:\Impac\BkpTef\Intpos.001"

Return .F.

exit

Exit

Endif

Enddo

Inkey(5)

Endif

oDlg_Jef:End()

Enddo

DaTeftec("1")

DaFechaRel()

Do While !Ver_Ret_Dar(.F.)

DaTeftec("0")

IF MsgYesNo( "Impressora Não Responde ! Tentar Imprimir Novamente ?","Erro de Impressão" )

DaTeftec("1")

DaCupAdFec()

Loop

Else

DaCupAdFec()

Ver_Ret_Dar(.T.)

Verifica_Cupons()

If Ope = "VND"

oVenda_OK:Disable()

Endif

TEF_NCN()

dele file "c:\TEF_DIAL\RESP\INTPOS.STS"

dele file "c:\TEF_DIAL\RESP\ATIVO.001"

dele file "c:\TEF_DIAL\RESP\intpos.001"

dele file "c:\Impac\intpos.002"

Dele File "C:\Impac\BkpTef\Intpos.001"

Return .F.

exit

Endif

Enddo

DaTeftec("0")

Else

MsgInfo(MensTef,"Atenção!!! Mensagem de Retorno Sistema T.E.F.")

Endif

Endif

If TransOK = "IMP"

DaTeftec("1")

MsgRun("Enviando Confirmação de Operação","Atenção!!! Mensagem de Retorno Sistema T.E.F.", ;

{ || Tef_Cnf() } )

oTelaPrincipal:Minimize()

SysRefresh()

oTelaPrincipal:Restore()

SysRefresh()

DaTefFocu("Orçamento / Venda de Produtos ou Serviços")

inkey(3)

DaTeftec("0")

Endif

id=code>id=code>

Um Xharbraço.

Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar

Impactus Automação Comercial

jef2_timber@hotmail.com

(91)-32387012

Belem-PA

Link to comment
Share on other sites

Jef2_tim, tem um escritório da daruma, ai na avenida paulista, justamente para ajudar os programadores que forem homologar sistema com tef, vale a pena dar uma passada lá. Só não sei o endereço, entre em contato com eles.

Kleyton

xHarbour 99.5 Clipper5.2E+Clipper5.3b+Blink7+FW2.0d+Fwh 2.5 (xHarbour 0.99.3)

cleitonbala@bol.com.br

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...