Business - Automação Comercial

Bematech Flash Builder - Retornando Informações da Impressora

Conforme mencionamos na edição anterior, nesta edição estaremos lendo da impressora fiscal algumas informações importantes, pertinentes à automação.

por André Luiz R. Munhoz



Conforme mencionamos na edição anterior, nesta edição estaremos lendo da impressora fiscal algumas informações importantes, pertinentes à automação.

Informações como:

- Alíquotas (ICMS ou ISS, valor percentual e valor acumulado);
- Dados da última redução Z (acréscimos, descontos, cancelamentos, sangria, suprimento, totalizadores de cupons, grande total e venda bruta);
- Formas de pagamento (índice, descrição e valor acumulado);
- Número de Série;
- Número do Caixa e;
- Número da Loja.

São apenas algumas informações que iremos trabalhar nesta edição, dando o início para que as demais possam ser acessadas e implementadas conforme sua necessidade.

Iremos criar um botão para cada informação citada e os dados serão mostrados em um TextBox de nome "txtInformacoes", MaxLength igual a True e ScrollBars igual a Vertical.

Não esqueça que o retorno das informações estão no namespace "Bematech.Fiscal.ECF.Informacoes".

em C#

// Botão Alíquotas
private void cmdAliquotas_Click(object sender, System.EventArgs e)
{
try
{
txtInformacoes.Text = "Indice | Aliquota | Tipo | Acumulado\r\n";
txtInformacoes.Text += "------------------------------------\r\n";

// Classe que encapsula a coleção de aliquotas cadastrada na impressora.
foreach ( Aliquota MinhasAliquotas in BematechFiscal.Informacao.Aliquotas )
{
txtInformacoes.Text += MinhasAliquotas.Indice.ToString() + " " +
MinhasAliquotas.Valor.ToString( "C" ) + " " +
MinhasAliquotas.Tipo + " " +
MinhasAliquotas.ValorAcumulado.ToString( "C" ) + "\r\n";
}
}
catch ( FiscalException MensagemErro )
{
MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message );
}
}

// Botão Dados Redução Z
private void cmdDadosUltimaReducaoZ_Click(object sender, System.EventArgs e)
{
try
{
txtInformacoes.Text = "Total de Acréscimos.........: " + BematechFiscal.Informacao.DadosUltimaReducao.AcrescimoTotal.ToString( "C" )
+ "\r\n";
txtInformacoes.Text += "Total de Descontos..........: " + BematechFiscal.Informacao.DadosUltimaReducao.DescontoTotal.ToString( "C" )
+ "\r\n";
txtInformacoes.Text += "Total de Cancelamentos......: " + BematechFiscal.Informacao.DadosUltimaReducao.CancelamentoTotal.ToString( "C" ) + "\r\n";
txtInformacoes.Text += "Sangria.....................: " + BematechFiscal.Informacao.DadosUltimaReducao.Sangria.ToString( "C" ) + "\r\n";
txtInformacoes.Text += "Suprimento..................: " + BematechFiscal.Informacao.DadosUltimaReducao.Suprimento.ToString( "C" ) + "\r\n";
txtInformacoes.Text += "Cupons Emitidos.............: " + BematechFiscal.Informacao.DadosUltimaReducao.NumeroCuponsEmitidos.ToString()
+ "\r\n";
txtInformacoes.Text += "Cupons Cancelados...........: " + BematechFiscal.Informacao.DadosUltimaReducao.NumeroCuponsCancelados.ToString() + "\r\n";
txtInformacoes.Text += "Número de Reduções Z........: " + BematechFiscal.Informacao.DadosUltimaReducao.NumeroReducoes.ToString() + "\r\n";
txtInformacoes.Text += "Total de Isenção (II).......: " + BematechFiscal.Informacao.DadosUltimaReducao.IsencaoTotal.ToString( "C" )
+ "\r\n";
txtInformacoes.Text += "Total de Não Incidência (NN): " + BematechFiscal.Informacao.DadosUltimaReducao.NaoIncidenciaTotal.ToString( "C" ) + "\r\n";
txtInformacoes.Text += "Total de Substituição (FF)..: " + BematechFiscal.Informacao.DadosUltimaReducao.SubstituicaoTotal.ToString( "C" ) + "\r\n";
txtInformacoes.Text += "Grande Total................: " + BematechFiscal.Informacao.DadosUltimaReducao.GrandeTotal.ToString( "C" )
+ "\r\n";
txtInformacoes.Text += "Venda Bruta.................: " + BematechFiscal.Informacao.DadosUltimaReducao.VendaBruta.ToString( "C" )
+ "\r\n";
}
catch ( FiscalException MensagemErro )
{
MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message );
}
}

// Botão Formas de Pagamento
private void cmdFormasPagamento_Click(object sender, System.EventArgs e)
{
txtInformacoes.Text = "Indice | Descrição | Valor Acumulado\r\n";
txtInformacoes.Text += "------------------------------------\r\n";
try
{
// Classe que encapsula a coleção de formas de pagamento cadastrada
// na impressora.
foreach( FormaPagamento MinhasFormas in
BematechFiscal.Informacao.FormasPagamento )
{
txtInformacoes.Text += MinhasFormas.Indice.ToString() + " " +
MinhasFormas.Descricao +
MinhasFormas.ValorAcumulado.ToString( "C" ) + "\r\n";
}
}
catch ( FiscalException MensagemErro )
{
MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message );
}
}

// Botão Número de Série
private void cmdNumeroSerie_Click(object sender, System.EventArgs e)
{
try
{
// Propriedade que retorna o número de série da impressora.
txtInformacoes.Text = BematechFiscal.Informacao.NumeroSerie;
}
catch ( FiscalException MensagemErro )
{
MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message );
}
}

// Botão Número do Caixa (ECF)
private void cmdNumeroCaixa_Click(object sender, System.EventArgs e)
{
try
{
// Propriedade que retorna o número do caixa (ECF).
txtInformacoes.Text = BematechFiscal.Informacao.NumeroCaixa.ToString();
}
catch ( FiscalException MensagemErro )
{
MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message );
}
}

// Botão Número da Loja
private void cmdNumeroLoja_Click(object sender, System.EventArgs e)
{
try
{
// Propriedade que retorna o número da loja.
txtInformacoes.Text = BematechFiscal.Informacao.NumeroLoja.ToString();
}
catch ( FiscalException MensagemErro )
{
MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message );
}
}

em VB.NET

" Botão Alíquotas
Private Sub cmdAliquotas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAliquotas.Click
Try
txtInformacoes.Text = "Indice | Aliquota | Tipo | Acumulado" + vbCrLf
txtInformacoes.Text += "------------------------------------" + vbCrLf

" Classe que encapsula a coleção de aliquotas cadastrada na impressora.
For Each MinhasAliquotas As Aliquota In BematechFiscal.Informacao.Aliquotas
txtInformacoes.Text += MinhasAliquotas.Indice.ToString() + " " + _
MinhasAliquotas.Valor.ToString("C") + " " + _
MinhasAliquotas.Tipo.ToString() + " " + _
MinhasAliquotas.ValorAcumulado.ToString("C") + vbCrLf
Next
Catch MensagemErro As FiscalException
MessageBox.Show("Mensagem Erro: " + MensagemErro.Message)
End Try
End Sub

" Botão Dados Redução Z
Private Sub cmdDadosUltimaReducaoZ_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDadosUltimaReducaoZ.Click
Try
txtInformacoes.Text = "Total de Acréscimos.........: " + _
BematechFiscal.Informacao.DadosUltimaReducao.AcrescimoTotal.ToString("C") _
+ vbCrLf
txtInformacoes.Text += "Total de Descontos..........: " + _
BematechFiscal.Informacao.DadosUltimaReducao.DescontoTotal.ToString("C") _
+ vbCrLf
txtInformacoes.Text += "Total de Cancelamentos......: " + _
BematechFiscal.Informacao.DadosUltimaReducao.CancelamentoTotal.ToString("C") _
+ vbCrLf
txtInformacoes.Text += "Sangria.....................: " + _
BematechFiscal.Informacao.DadosUltimaReducao.Sangria.ToString("C")
+ vbCrLf
txtInformacoes.Text += "Suprimento..................: " + _
BematechFiscal.Informacao.DadosUltimaReducao.Suprimento.ToString("C")
+ vbCrLf
txtInformacoes.Text += "Cupons Emitidos.............: " + _
BematechFiscal.Informacao.DadosUltimaReducao.NumeroCuponsEmitidos.ToString()
+ vbCrLf
txtInformacoes.Text += "Cupons Cancelados...........: " + _
BematechFiscal.Informacao.DadosUltimaReducao.NumeroCuponsCancelados.ToString() _
+ vbCrLf
txtInformacoes.Text += "Número de Reduções Z........: " + _
BematechFiscal.Informacao.DadosUltimaReducao.NumeroReducoes.ToString() _
+ vbCrLf
txtInformacoes.Text += "Total de Isenção (II).......: " + _
BematechFiscal.Informacao.DadosUltimaReducao.IsencaoTotal.ToString("C") _
+ vbCrLf
txtInformacoes.Text += "Total de Não Incidência (NN): " + _
BematechFiscal.Informacao.DadosUltimaReducao.NaoIncidenciaTotal.ToString("C") _
+ vbCrLf
txtInformacoes.Text += "Total de Substituição (FF)..: " + _
BematechFiscal.Informacao.DadosUltimaReducao.SubstituicaoTotal.ToString("C") _
+ vbCrLf
txtInformacoes.Text += "Grande Total................: " + _
BematechFiscal.Informacao.DadosUltimaReducao.GrandeTotal.ToString("C") + _
vbCrLf
txtInformacoes.Text += "Venda Bruta.................: " + _
BematechFiscal.Informacao.DadosUltimaReducao.VendaBruta.ToString("C") + _
vbCrLf
Catch MensagemErro As FiscalException
MessageBox.Show("Mensagem Erro: " + MensagemErro.Message)
End Try
End Sub

" Botão Formas de Pagamento
Private Sub cmdFormasPagamento_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFormasPagamento.Click
txtInformacoes.Text = "Indice | Descrição | Valor Acumulado" + vbCrLf
txtInformacoes.Text += "------------------------------------" + vbCrLf
Try
" Classe que encapsula a coleção de formas de pagamento
" cadastrada na impressora.
For Each MinhasFormas As FormaPagamento In _
BematechFiscal.Informacao.FormasPagamento
txtInformacoes.Text += MinhasFormas.Indice.ToString() + " " + _
MinhasFormas.Descricao + _
MinhasFormas.ValorAcumulado.ToString("C") + vbCrLf
Next
Catch MensagemErro As FiscalException
MessageBox.Show("Mensagem Erro: " + MensagemErro.Message)
End Try
End Sub

" Botão Número de Série
Private Sub cmdNumeroSerie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNumeroSerie.Click
Try
" Propriedade que retorna o número de série da impressora.
txtInformacoes.Text = BematechFiscal.Informacao.NumeroSerie
Catch MensagemErro As FiscalException
MessageBox.Show("Mensagem Erro: " + MensagemErro.Message)
End Try
End Sub

" Botão Número do Caixa (ECF)
Private Sub cmdNumeroCaixa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNumeroCaixa.Click
Try
" Propriedade que retorna o número do caixa (ECF).
txtInformacoes.Text = BematechFiscal.Informacao.NumeroCaixa.ToString()
Catch MensagemErro As FiscalException
MessageBox.Show("Mensagem Erro: " + MensagemErro.Message)
End Try
End Sub

" Botão Número da Loja
Private Sub cmdNumeroLoja_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNumeroLoja.Click
Try
" Propriedade que retorna o número da loja.
txtInformacoes.Text = BematechFiscal.Informacao.NumeroLoja.ToString()
Catch MensagemErro As FiscalException
MessageBox.Show("Mensagem Erro: " + MensagemErro.Message)
End Try
End Sub

Repare como é simples obter informações da impressora, principalmente quando você precisa ler mais do que uma informação, para compor um determinado relatório ou para auditoria em seu aplicativo (por exemplo).

Através do Bematech Flash Builder, as informações são disponibilizadas em forma de propriedades, ou seja, você pode escolher que tipo de informação deseja, sem a necessidade de "caçá-la" internamente na impressora ou em uma string qualquer, facilitando e agilizando o processo.

Um exemplo típico que demonstra esta utilização é o botão Dados Redução Z, onde usamos várias propriedades separadamente, sem precisar "cortar" nenhuma informação (necessário quando as informações são retornandas em forma de uma string).

Na próxima edição estaremos trabalhando com a classe de Relatórios Fiscais.

Não perca!

Até lá e boas implementações!

André Luiz R. Munhoz

André Luiz R. Munhoz - Bematech: DSP - Desenvolvimento de Software e Parcerias.
Visite o site: http://www.bematech.com.br.