Bematech Software Partners

 
  • jun 02 2009

    Edição 38 – Acessando o módulo ADM

    Caro Parceiro,

    Vamos implementar agora, a rotina que fará o acesso ao módulo administrativo das bandeiras – o Módulo ADM.

    Este módulo permite acessar as funções de cancelamento, emissão de relatórios, fechamento de lote de transações, re-impressão de TEF e demais configurações específicas da bandeira escolhida.

    Como já estamos familiarizados com as referências de dlls e também com as funções da classe TEF, podemos ir direto ao ponto, implementando a chamada ao módulo ADM.

    Então, criamos um novo botão dando o nome de “FUNÇÕES ADMINISTRATIVAS”, conforme ilustração:

    frm_adm

    Abrimos o código deste botão e implementamos:

    - em C#

    private void btnfuncoesadm_Click(object sender, EventArgs e)
    {
      try
      {
        // CRIAÇÃO DA CHAMADA DO MÓDULO ADM DAS BANDEIRAS
        SolicitacaoAdministrativa solicitacaoadm = BematechFiscal.TEF.CriarSolicitacaoAdministrativa(); 

        Transacao resp = BematechFiscal.TEF.EnviarSolicitacao(solicitacaoadm);

        if (Convert.ToInt32(resp.QuantidadeLinhas) > 0) 
        {
          while (true)
          {
            try
            {
              BematechFiscal.TEF.TravarTeclado(true);
              BematechFiscal.TEF.Vias = 1;
              BematechFiscal.TEF.Imprimir(resp, true);
              BematechFiscal.TEF.TravarTeclado(false);
              break;
            }
            catch 
            {
              BematechFiscal.TEF.TravarTeclado(false);
              if (MessageBox.Show(“Impressora não responde. Tentar imprimir novamente ?”, “Atenção”, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) == DialogResult.No)
                break;
            }
          }
        }
      }
      catch (GerenciadorInativoException MensagemErro)
      {
        MessageBox.Show( “Mensagem Erro: ” + MensagemErro.Message );
      }
      BematechFiscal.TEF.Vias = 2;
    }

    - em VB.NET

    Private Sub btnfuncoesadm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnfuncoesadm.Click
      Try
        ‘ CRIAÇÃO DA CHAMADA DO MÓDULO ADM DAS BANDEIRAS 
        Dim solicitacaoadm As SolicitacaoAdministrativa = BematechFiscal.TEF.CriarSolicitacaoAdministrativa()

        Dim resp As Transacao = BematechFiscal.TEF.EnviarSolicitacao(solicitacaoadm)

        If (Convert.ToInt32(resp.QuantidadeLinhas > 0)) Then
          While (True)
            Try
              BematechFiscal.TEF.TravarTeclado(True)
              BematechFiscal.TEF.Vias = 1
              BematechFiscal.TEF.Imprimir(resp, True)
              BematechFiscal.TEF.TravarTeclado(False)
              Exit While
            Catch
              BematechFiscal.TEF.TravarTeclado(False)
              If (MessageBox.Show(“Impressora não responde. Tentar imprimir novamente ?”, “Atenção”, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) = DialogResult.No) Then
                Exit While
              End If
            End Try
          End While
        End If
      Catch MensagemErro As GerenciadorInativoException
        MessageBox.Show(“Mensagem Erro: ” + MensagemErro.Message)
      End Try
      BematechFiscal.TEF.Vias = 2
    End Sub

    O acesso ao módulo administrativo é bem simples! Em nosso exemplo, criamos um objeto do tipo “SolicitacaoAdministrativa” e enviamos o mesmo ao GP através do método “EnviarSolicitacao”.

    Obs: Note que estamos tratando um tipo de exceção que é a “GerenciadorInativoException” exclusiva para retornos relacionados ao GP das bandeiras.

    Ao executar o código, teremos a janela do GP aberta para a escolha da bandeira que faremos a operação ADM. Dependendo da operação, podemos ou não ter uma resposta para imprimir, por exemplo, se optarmos por fazer uma re-impressão do TEF, um cancelamento de TEF ou um fechamento de lote, teremos resposta para imprimir. Sendo assim, usamos o método “Imprimir” semelhante a rotina de impressão dos comprovantes do TEF já vista nos Flash-Tips anteriores, porém com uma condição: através do método “QuantidadeLinhas” da classe “Transacao”, sabemos se a transação realizada possui ou não linhas para imprimir, se houverem linhas para impressão executamos a rotina, caso contrário não.

    Fazemos também, o teste de verificação com a impressora. Se houver uma falha na comunicação, exibimos uma mensagem ao operador perguntando se deseja continuar a impressão ou não.

    Próxima edição:

    Em nosso último Flash-TIP da série sobre a “Classe TEF”, vamos explorar mais esta classe e conhecer como tratar o conteúdo do arquivo INTPOS.001 via Flash Builder.

    Não perca!

    Até lá e boas implementações!

    Related posts:

    1. Edição 33 – Conhecendo a BemaSB32.dll Caro Parceiro, Agora, vamos conhecer a interface que iremos utilizar...
    2. Transferência Eletrônica de Fundos (T.E.F.) – Discado – Passo 3/10 ...
    3. Programando o horário de verão Com a chegada do horário de verão, as impressoras fiscais...
    4. Edição 62 – Analisando o Retorno Estendido Caro Partner e Desenvolvedor,  Quando trabalhamos com o ECF (Emissor...
    5. Edição 82 – Identificando o Consumidor no Cupom Fiscal  Caro Partner e Desenvolvedor Bematech,   Nesta edição de nosso Flash...

     

Nenhum Comentário

Deixe um comentário