Business - Automação Comercial
Bematech Flash Builder - Desenvolvendo o primeiro Cupom Fiscal
Neste artigo, iremos desenvolver o nosso primeiro Cupom Fiscal, aproveitando todas as facilidades e agilidades que esta ferramenta nos oferece.
por André Luiz R. MunhozNeste artigo, iremos desenvolver o nosso primeiro Cupom Fiscal, aproveitando todas as facilidades e agilidades que esta ferramenta nos oferece.
Não esqueça que estaremos visualizando todas as rotinas em C# e Visual Basic .NET.
E, "mão na massa"!
Criando o Cupom Fiscal
No form principal, vamos criar 3 botões de comando, onde iremos abrir, vender e fechar o cupom fiscal.
• em C# // Botão Abre Cupom private void cmdAbreCupom_Click(object sender, System.EventArgs e) { try { // Método para a abertura do Cupom Fiscal sem passagem de parâmetro. BematechFiscal.Cupom.Abrir(); // Método para o retorno do número do cupom (COO), armazenando // na variável cNumeroCupom string cNumeroCupom = BematechFiscal.Cupom.Numero.ToString(); } catch ( FiscalException MensagemErro ) { MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message ); } } // Botão Vender Item private void cmdItem_Click(object sender, System.EventArgs e) { // Criado o objeto ItemVendido para representar o item a ser vendido. Item ItemVendido = new Item(); ItemVendido.Codigo = "1234567890123"; ItemVendido.Descricao = "Item de Teste"; ItemVendido.Aliquota = "FF"; ItemVendido.Quantidade = 1; ItemVendido.ValorUnitario = 1.00M; try { // Método para a venda do item passando como parâmetro o objeto ItemVendido. BematechFiscal.Cupom.Vender( ItemVendido ); } catch ( FiscalException MensagemErro ) { MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message ); } } // Botão Fecha Cupom private void cmdFechaCupom_Click(object sender, System.EventArgs e) { try { // Método para o fechamento do cupom passando como parâmetro a forma de // pagamento e a mensagem promocional. BematechFiscal.Cupom.Fechar( "Dinheiro", "Obrigado, volte sempre!" ); } catch ( FiscalException MensagemErro ) { MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message ); } } • em VB.NET " Botão Abre Cupom Private Sub cmdAbreCupomFiscal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAbreCupomFiscal.Click Try " Método para a abertura do Cupom Fiscal sem passagem de parâmetro. BematechFiscal.Cupom.Abrir() " Método para o retorno do número do cupom (COO), armazenando " na variável cNumeroCupom Dim cNumeroCupom As String = BematechFiscal.Cupom.Numero.ToString() Catch MensagemErro As FiscalException MsgBox("Mensagem Erro: " + MensagemErro.Message) End Try End Sub " Botão Vender Item Private Sub cmdVendaItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVendaItem.Click Try " Criado o objeto ItemVendido para representar o item a ser vendido. Dim ItemVendido As Item = New Item ItemVendido.Codigo = "1234567890123" ItemVendido.Descricao = "Item de Teste" ItemVendido.Aliquota = "FF" ItemVendido.Quantidade = 1 ItemVendido.ValorUnitario = 1.0 " Método para a venda do item passando como parâmetro o objeto ItemVendido. BematechFiscal.Cupom.Vender(ItemVendido) Catch MensagemErro As FiscalException MsgBox("Mensagem Erro: " + MensagemErro.Message) End Try End Sub " Botão Fecha Cupom Private Sub cmdFechaCupom_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFechaCupom.Click Try " Método para o fechamento do cupom passando como parâmetro a forma de " pagamento e a mensagem promocional. BematechFiscal.Cupom.Fechar("Dinheiro", "Obrigado, volte sempre!") Catch MensagemErro As FiscalException MsgBox("Mensagem Erro: " + MensagemErro.Message) End Try End Sub
Repare que as chamadas aos métodos foram feitas dentro de um "Try/Catch". Desta forma, podemos tratar o status da impressora durante a execução. Este tratamento é controlado pela exceção FiscalException instanciada ao objeto MensagemErro, onde através da propriedade Message é exibida a mensagem.
Ao entrar com o objeto BematechFiscal no código e pressionar o "." (ponto), os principais métodos dos namespaces adicionados aparecem, facilitando a pesquisa e agilizando o desenvolvimento.
Overloads
Overloads são sobrecargas de parâmetros, exibidos durante o uso dos métodos da ferramenta.
Quando abrimos o "(" (parênteses) para a passagem de parâmetro, os métodos exibem uma caixa contendo formas diferentes de usá-lo. Na figura abaixo, o método "Abrir" exibe o 4º overload dos 7 que possui, permitindo a entrada dos parâmetros CPF, Nome e Endereço do cliente, que serão impressos na abertura do cupom fiscal.
Para a escolha do overload, basta pressionar a seta para cima ou para baixo. Você pode optar pelo mais simples ao mais completo, a própria ferramenta se encarrega de identificar qual impressora está em uso e enviar os parâmetros correspondentes, e isso ocorre com todos os métodos que possuem overloads. Fantástico!
Sempre será exibido o conjunto de overloads, quando o método permitir.
No form load, vamos criar o seguinte tratamento:
- Quando a aplicação for inciada, iremos verificar se existe algum cupom fiscal aberto e se este possue itens vendidos. Se o cupom fiscal estiver aberto e não houver itens vendidos, iremos cancelá-lo, caso contrário iremos recuperar todos os itens que foram vendidos e exibir em um TextBox (chamado txtProduto) com a propriedade Multiline setada para True.
Imagine uma situação de queda de energia no meio de uma operação de venda, onde vários itens já foram vendidos.
Quando a aplicação é iniciada, todos estes itens são recuperados facilmente, ou seja, o cupom fiscal volta ao seu estado atual, sem a necessidade de realizamos este controle externamente. Veja como é simples!
• em C# private void frmPrincipal_Load(object sender, System.EventArgs e) { try { // Método para verificar se o cupom está aberto. if ( BematechFiscal.Cupom.Status.Aberto ) { // Método que retorna a quantidade de itens vendidos. if ( BematechFiscal.Cupom.ItensVendidos.Count != 0 ) { // A classe Item armazena todos os itens vendidos no cupom fiscal. foreach ( Item ItensVendidos in BematechFiscal.Cupom.ItensVendidos ) txtProduto.Text += ItensVendidos.Codigo + " " + ItensVendidos.Descricao + " " + ItensVendidos.Quantidade.ToString("0") + " " + ItensVendidos.ValorUnitario.ToString( "C" ) + "\r\n"; } else { // Método que retorna o modelo da impressora fiscal. string cModeloImpressora = BematechFiscal.Modelo.ToString(); // Métodos que retorna a versão do firmware da impressora fiscal. string cVersaoFirmware = BematechFiscal.Informacao.VersaoFirmware; if ( cModeloImpressora == "MP20FI" && cVersaoFirmware != "032600" ) { // Método para vender um item para o cancelamento do cupom fiscal. BematechFiscal.Cupom.Vender( "1", "Item para cancelamento", "II", 1, 0.01M ); // Método para cancelar o cupom fiscal. BematechFiscal.Cupom.Cancelar(); } else // Método para cancelar o cupom fiscal. BematechFiscal.Cupom.Cancelar(); } } } catch ( FiscalException MensagemErro ) { MessageBox.Show( "Mensagem Erro: " + MensagemErro.Message ); } } • em VB.NET Private Sub frmPrincipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try " Método para verificar se o cupom está aberto. If (BematechFiscal.Cupom.Status.Aberto) Then " Método que retorna a quantidade de itens vendidos. If (BematechFiscal.Cupom.ItensVendidos.Count <> 0) Then " A classe Item armazena todos os itens vendidos no cupom fiscal. For Each ItensVendidos As Item In BematechFiscal.Cupom.ItensVendidos txtProduto.Text += ItensVendidos.Codigo + " " + _ ItensVendidos.Descricao + " " + _ ItensVendidos.Quantidade.ToString("0") + " " + _ ItensVendidos.ValorUnitario.ToString("C") + vbCrLf Next Else " Método que retorna o modelo da impressora fiscal. Dim cModeloImpressora As String = BematechFiscal.Modelo.ToString() " Métodos que retorna a versão do firmware da impressora fiscal. Dim cVersaoFirmware As String = BematechFiscal.Informacao.VersaoFirmware If (cModeloImpressora = "MP20FI" And cVersaoFirmware <> "032600") Then " Método para vender um item para o cancelamento do cupom fiscal. BematechFiscal.Cupom.Vender("1", "Item para cancelamento", "II", 1, _ 0.01D) " Método para cancelar o cupom fiscal. BematechFiscal.Cupom.Cancelar() Else " Método para cancelar o cupom fiscal. BematechFiscal.Cupom.Cancelar() End If End If End If Catch MensagemErro As FiscalException MessageBox.Show("Mensagem Erro: " + MensagemErro.Message) End Try End Sub
Chamamos este processo de Serialização. A ferramenta faz um backup de todos os dados que estão em memória, salvando o estado atual da operação no momento em que ela é realizada, permitindo sua recuperada. As serializações são realizadas nas operações de cupom fiscal, cupom não fiscal, Sintegra e TEF.
Não perca o próximo artigo!
Iremos conhecer alguns métodos que retornam informações da impressora e realizar operações com cupom não fiscal vinculado e cupom de recebimento.
Até a próxima e boas implementações!
- DarumaFramework.SO no LinuxAutomação Comercial
- Palavra de status da impressora na DarumaFrameworkAutomação Comercial
- TEF – Comprovante de Crédito ou DébitoAutomação Comercial
- Comunicar com equipamentos Daruma em linguagens 16bits e DOSAutomação Comercial
- Verificando Redução Z nas Impressoras DarumaAutomação Comercial