Пример #1
0
        private void btnImp_ImprimirTexto_Click(object sender, EventArgs e)
        {
            MP2032.ConfiguraModeloImpressora(7); //Bematech MP-4200 TH
            MP2032.IniciaPorta("USB");

            MP2032.BematechTX(txtImp_TextoLivre.Text + "\n");
        }
Пример #2
0
        private void bntTestarCon_Click(object sender, EventArgs e)
        {
            MP2032.FechaPorta();

            MP2032.ConfiguraModeloImpressora(7); //Bematech MP-4200 TH
            MP2032.IniciaPorta("USB");

            int iRetorno;


            iRetorno = MP2032.Le_Status();

            if (iRetorno == 0)
            {
                MessageBox.Show("Erro ao se comunicar com a Impressora Bematech MP-4200 TH, verifique por favor.", "** ATENÇÃO **", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (iRetorno == 5)
            {
                MessageBox.Show("Impressora com pouco papel, verifique por favor.", "** ATENÇÃO **", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (iRetorno == 9)
            {
                MessageBox.Show("Impressora com a tampa aberta, verifique por favor.", "** ATENÇÃO **", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (iRetorno == 32)
            {
                MessageBox.Show("Impressora sem papel, verifique por favor.", "** ATENÇÃO **", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                MessageBox.Show("Papel OK!" + Environment.NewLine + "Tampa fechada OK!" + Environment.NewLine + "Comunicação OK!", "STATUS", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            MP2032.FechaPorta();
        }
Пример #3
0
        private void VerificaStatusImpressora()
        {
            MP2032.ConfiguraModeloImpressora(7); // Bematech MP-4200 TH
            MP2032.IniciaPorta("USB");

            var codigoRetorno = MP2032.Le_Status();

            if (codigoRetorno == 0)
            {
                MessageBox.Show("Erro ao se comunicar com a Impressora Bematech MP-4200 TH, verifique por favor.", "** ATENÇÃO **", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (codigoRetorno == 5)
            {
                MessageBox.Show("Impressora com pouco papel, verifique por favor.", "** ATENÇÃO **", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (codigoRetorno == 9)
            {
                MessageBox.Show("Impressora com a tampa aberta, verifique por favor.", "** ATENÇÃO **", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                MP2032.FechaPorta();
                return;
            }
            else if (codigoRetorno == 32)
            {
                MessageBox.Show("Impressora sem papel, verifique por favor.", "** ATENÇÃO **", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
Пример #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (MP2032.ConfiguraModeloImpressora(0) > 0)
            {
                ;
            }
            MessageBox.Show("Configurada impressora");

            if (MP2032.IniciaPorta("COM3") > 0)
            {
                MessageBox.Show("Configurada porta");
            }
        }
Пример #5
0
        public void ConectarAImpressora()
        {
            try
            {
                int iPorta = 0;
                int iVerificarImpressora = 0;
                int impressora           = 0;
                //8 MP 2500 TH
                //7 MP 4200 TH
                if (lblImpressora.Text.ToString() == "MP4200TH")
                {
                    impressora = 7;
                }
                else if (lblImpressora.Text.ToString() == "MP2500TH")
                {
                    impressora = 8;
                }
                iVerificarImpressora = MP2032.ConfiguraModeloImpressora(impressora);
                //Vaidar Impressora se 0 significa que a empressora não foi encontrada, se for 1 impressora foi
                if (iVerificarImpressora == 0)
                {
                    lblmsg.Text = ("Impressora não encontrata!");
                    // MessageBox.Show("Impressora não encontrata!");
                }
                else
                {
                    lblmsg.Text = ("Impressora encontrada!");
                }
                iPorta = MP2032.IniciaPorta(("USB")); //inicia a porta com o valor da combo (exceto ethernet)

                if (iPorta <= 0)                      //testa se a conexão da porta foi bem sucedido
                {
                    lblmsg.Text = ("Não foi possível conectar com a impressora!!!");
                    // Application.Exit();
                }
                else
                {
                    lblmsg.Text = ("Impressora conectada!!!");
                    // MessageBox.Show("Impressora conectada!!!");
                }
            }
            catch (Exception ex)
            {
                lblmsg.Text = ("ERROR 001 : " + ex.Message);
                // MessageBox.Show("ERROR 001 : " + ex.Message);
            }
        }
Пример #6
0
        private void btnImp_ImprimirCabecalhoNFCe_Click(object sender, EventArgs e)
        {
            MP2032.ConfiguraModeloImpressora(7); //Bematech MP-4200 TH
            MP2032.IniciaPorta("USB");

            //CADA LINHA DO CUPOM CONTEM 50 COLUNAS COM LETRA NORMAL
            MP2032.BematechTX("\x1B\x61\x1"); //Centraliza

            //Informações do Cabeçalho
            MP2032.FormataTX(Emitente.getInstance.nome + "\n", 2, 0, 0, 0, 1);
            MP2032.FormataTX("CNPJ " + String.Format(@"{0:00\.000\.000\/0000\-00}", Convert.ToInt64(Emitente.getInstance.cnpj)) + "\n", 2, 0, 0, 0, 0);
            MP2032.FormataTX("Av. Amaral Peixoto, 507 - LJ05, Centro, Niterói-RJ" + "\n", 2, 0, 0, 0, 0);
            MP2032.FormataTX("\n", 2, 0, 0, 0, 0);
            MP2032.FormataTX("Documento Auxiliar da Nota Fiscal de Consumidor Eletrônica" + "\n", 1, 0, 0, 0, 0);
            //MP2032.BematechTX("Documento Auxiliar da Nota Fiscal de Consumidor Eletrônica" + "\n");
            MP2032.FormataTX("\n", 2, 0, 0, 0, 0);

            //Informações de detalhes de produtos/serviços
            MP2032.FormataTX("Codigo  Descricao        Qtd Un   Vl.Unit    Total" + "\n", 2, 0, 0, 0, 0);
            MP2032.FormataTX("-------------------------------------------------------------------", 1, 0, 0, 0, 0);

            MP2032.AcionaGuilhotina(0);
            MP2032.FechaPorta();
        }
Пример #7
0
 private void cmdCorteParcial_Click(object sender, EventArgs e)
 {
     MP2032.AcionaGuilhotina(0);
 }
Пример #8
0
        static void Main(string[] args)
        {
            try
            {
                MP2032.ConfiguraModeloImpressora(7); // Bematech MP-4200 TH
                MP2032.IniciaPorta("USB");


                bool isSangria = true;

                decimal valor = 10.50m;

                if (!ImpressoraBematech.isSangriaAcrescimo(isSangria, DateTime.Now, valor, "Mercado"))
                {
                    return;
                }

                GeraXml.AmbienteNFCe = "1";

                CertificadoDigital.getInstance.Seleciona_Certificado();
                (new EmitenteDao()).SelecionaEmitente();

                var control = (new ControleFiscalDao()).getControle();
                if (control != null)
                {
                    ControleFiscal.GetInstance.TokenHomologacao      = control.TokenHomologacao;
                    ControleFiscal.GetInstance.TokenProducao         = control.TokenProducao;
                    ControleFiscal.GetInstance.CaminhoXmlAutorizado  = control.CaminhoXmlAutorizado;
                    ControleFiscal.GetInstance.CaminhoXmlCancelado   = control.CaminhoXmlCancelado;
                    ControleFiscal.GetInstance.CaminhoXmlInutilizado = control.CaminhoXmlInutilizado;

                    control = null;
                }

                var dataInicial = new DateTime(2018, 10, 03);
                var dataFinal   = new DateTime(2018, 10, 03);

                var pedidos = (new PedidoDao()).GetPedidosDoCaixa(dataInicial, dataFinal);

                foreach (var pedido in pedidos)
                {
                    pedido.DataDigitacao = DateTime.Now;


                    pedido.NFiscal = (new ControleFiscalDao()).GetUltimoNumeroNFiscalGerado() + 1;

                    pedido.Cliente    = (new ClienteDao()).GetClienteConsumidorNaoIdentificado();
                    pedido.Operacao   = (new OperacaoDao()).GetOperacaoPorPedido(pedido.NumDoc);
                    pedido.Pagamentos = (new TipoPagamentoDao()).GetPagametosDoPedido(pedido.NumDoc);

                    pedido.ItensDoPedido = (new PedidoItemDao()).GetItensDoPedido(pedido.NumDoc);
                    pedido.ItensDoPedido.ForEach(pedidoItem =>
                    {
                        pedidoItem.Produto             = (new ProdutoDao().GetProduto(pedidoItem.ProdutoId));
                        pedidoItem.Produto.GrupoFiscal = (new ProdutoGrupoFiscalDao()).GetGrupoFiscalPorProduto(pedidoItem.ProdutoId);
                    });

                    var geraXml = new GeraXml();

                    //Gerando XML
                    var xml      = geraXml.GeraXmlNFCe(pedido);
                    var GravaXml = File.CreateText(@"C:\Users\Succo\Desktop\xmlGerado.xml");
                    GravaXml.Write(xml.InnerXml);
                    GravaXml.Close();

                    //Assinando XML
                    var xmlAssinado      = (new AssinaXml()).AssinaXML(xml.InnerXml, "infNFe", CertificadoDigital.getInstance.oCertificado);
                    var GravaXmlAssinado = File.CreateText(@"C:\Users\Succo\Desktop\xmlAssinado.xml");
                    GravaXmlAssinado.Write(xmlAssinado.InnerXml);
                    GravaXmlAssinado.Close();


                    //Validando XML
                    try
                    {
                        // Validando o XML
                        var retValidar = (new ValidaXml()).Valida(xmlAssinado, "NFe");

                        //Inserindo a URL QRCode no xml já assinado
                        xmlAssinado.LoadXml(xmlAssinado.InnerXml.Replace("</infNFe>", "</infNFe><infNFeSupl><qrCode><![CDATA[" +
                                                                         geraXml.GetUrlQRCode(xmlAssinado, pedido) + "]]></qrCode><urlChave>http://www4.fazenda.rj.gov.br/consultaNFCe/QRCode</urlChave></infNFeSupl>"));
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("** Erro ao validar **");
                        Console.WriteLine(ex.Message);
                    }

                    var GravaXmlAssinadoComQrCode = File.CreateText(@"C:\Users\Succo\Desktop\xmlAssinadoComQrCode.xml");
                    GravaXmlAssinadoComQrCode.Write(xmlAssinado.InnerXml);
                    GravaXmlAssinadoComQrCode.Close();



                    var retornoDaTransmicao = (new TransmiteXml()).XML_NFCe4(xmlAssinado, pedido.NFiscal.ToString(), CertificadoDigital.getInstance.oCertificado);

                    if (retornoDaTransmicao.Substring(0, 4) != "Erro")
                    {
                        var xmlRetorno = new XmlDocument();
                        xmlRetorno.LoadXml(retornoDaTransmicao);

                        var GravaXmlTransmitido = File.CreateText(@"C:\Users\Succo\Desktop\xmlTransmitido.xml");
                        GravaXmlTransmitido.Write(xmlRetorno.InnerXml);
                        GravaXmlTransmitido.Close();

                        // Lote processado
                        if (xmlRetorno.GetElementsByTagName("cStat")[0].InnerText == "104")
                        {
                            // Autorizado
                            if (xmlRetorno.GetElementsByTagName("cStat")[1].InnerText == "100")
                            {
                                pedido.Chave     = xmlRetorno.GetElementsByTagName("chNFe")[0].InnerText;
                                pedido.Protocolo = xmlRetorno.GetElementsByTagName("nProt")[0].InnerText;

                                // Separar somente o conteúdo a partir da tag <protNFe> até </protNFe>
                                var nPosI   = retornoDaTransmicao.IndexOf("<protNFe");
                                var nPosF   = retornoDaTransmicao.Length - (nPosI + 13);
                                var strProc = retornoDaTransmicao.Substring(nPosI, nPosF);


                                // XML pronto para salvar
                                var strXmlProcNfe = @"<?xml version=""1.0"" encoding=""utf-8"" ?><nfeProc xmlns=""http://www.portalfiscal.inf.br/nfe"" versao=""4.00"">" + xmlAssinado.InnerXml + strProc + "</nfeProc>";

                                pedido.Xml = new Xml()
                                {
                                    NumDoc     = pedido.NumDoc,
                                    ArquivoXml = strXmlProcNfe,
                                    Data       = DateTime.Now,
                                    Modelo     = pedido.ModeloNFiscal,
                                    StatNFCe   = "100"
                                };



                                using (var db = new Database("stringConexao"))
                                {
                                    db.BeginTransaction();

                                    try
                                    {
                                        db.Update("Update Controle Set NFiscal=" + pedido.NFiscal + " Where ChvControle = 1");
                                        db.Update("Update Movdb Set data_nfiscal = '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "', NFiscal= " + pedido.NFiscal + ", Chave='" + pedido.Chave + "' ,Protocolo='" + pedido.Protocolo + "', status_nfce = '" + pedido.Xml.StatNFCe + "' Where NumDoc = " + pedido.NumDoc);

                                        db.CompleteTransaction();
                                    }
                                    catch (Exception)
                                    {
                                        db.AbortTransaction();
                                    }

                                    if (!string.IsNullOrEmpty(ControleFiscal.GetInstance.CaminhoXmlAutorizado))
                                    {
                                        //Salvando o arquivo XML na pasta
                                        var Grava = File.CreateText(ControleFiscal.GetInstance.CaminhoXmlAutorizado.Remove(ControleFiscal.GetInstance.CaminhoXmlAutorizado.Length - 1) + DateTime.Now.Month + @"\" + pedido.Chave + "-procNfe.xml");
                                        Grava.Write(pedido.Xml.ArquivoXml);
                                        Grava.Close();
                                    }
                                }
                            }
                        }
                        else
                        {
                            Console.WriteLine("Erro no lote");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Console.ReadKey();
            }
        }