/// <summary>
 /// 添加异常日志
 /// </summary>
 /// <param name="ex">异常对象</param>
 /// <param name="paramObj">参数</param>
 /// <param name="controlOrClass">控制器或类名</param>
 /// <param name="actionName">方法名</param>
 /// <param name="currUser">当前用户</param>
 public static void AddExceptionLog(Exception ex, string paramObj, string controlOrClass = null, string actionName = null, UserInfo currUser = null)
 {
     if (ex == null)
     {
         return;
     }
     try
     {
         //构造对象
         Log_Exception exceptionLog = new Log_Exception();
         exceptionLog.ExceptionName   = ex.GetType().Name;
         exceptionLog.ExceptionSource = ex.Source;
         exceptionLog.ExceptionMsg    = ex.Message;
         exceptionLog.StackTrace      = ex.StackTrace;
         exceptionLog.ExceptionTime   = DateTime.Now;
         exceptionLog.ControllerName  = controlOrClass;
         exceptionLog.ActionName      = actionName;
         exceptionLog.CreateUserId    = currUser != null ? currUser.UserId : (Guid?)null;
         exceptionLog.CreateUserName  = UserInfo.GetUserAliasName(currUser);
         exceptionLog.CreateDate      = DateTime.Now;
         exceptionLog.ModifyDate      = DateTime.Now;
         exceptionLog.ModifyUserId    = currUser != null ? currUser.UserId : (Guid?)null;
         exceptionLog.ModifyUserName  = UserInfo.GetUserAliasName(currUser);
         exceptionLog.Id = Guid.NewGuid();
         //保存
         string errMsg = string.Empty;
         CommonOperate.OperateRecord <Log_Exception>(exceptionLog, OperateHandle.ModelRecordOperateType.Add, out errMsg, null, false);
     }
     catch { }
 }
示例#2
0
        private void cmdViewNotas_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            try
            {
                lstMovdia.Items.Clear();


                Lista_Pedidos();


                if (lstPedido.Count == 0)
                {
                    MessageBox.Show("Não há notas a serem emitidas.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                lblSelecionados.Text = "(Selecionados: " + lstMovdia.Items.Count + ")";
                InicializaButtons();

                this.Cursor = Cursors.Default;
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Erro ao buscar pedidos: " + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                this.Cursor = Cursors.Default;
                return;
            }
        }
        //------------------------------------------------------------------------------



        public string XML_NFCe(XmlDocument xmlAssinado, string nfiscal, X509Certificate2 _X509Cert)
        {
            try
            {
                GerarXML geraxml = new GerarXML();

                //Gerando o xml de Lote
                xmlLote = geraxml.Lote(xmlAssinado, nfiscal);

                xmlDados = xmlLote.DocumentElement;


                ServicePoint();


                if (GerarXML.str_Ambiente == "1")
                {
                    //NFCeRecepcaoP - PRODUCAO  /  NFCeRecepcaoH - HOMOLOGACAO
                    NFCeAutorizacaoP.NfeAutorizacao WsHRecepcao = new NFCeAutorizacaoP.NfeAutorizacao();

                    WsHRecepcao.ClientCertificates.Add(_X509Cert);
                    WsHRecepcao.Timeout = Convert.ToInt32(240000);
                    WsHRecepcao.InitializeLifetimeService();

                    NFCeAutorizacaoP.nfeCabecMsg cabec = new NFCeAutorizacaoP.nfeCabecMsg();
                    cabec.cUF                    = "33";
                    cabec.versaoDados            = "3.10";
                    WsHRecepcao.nfeCabecMsgValue = cabec;
                    TextoXML = WsHRecepcao.nfeAutorizacaoLote(xmlDados).OuterXml;
                    WsHRecepcao.Dispose();
                }
                else
                {
                    //NFeRecepcaoP - PRODUCAO  /  NFeRecepcaoH - HOMOLOGACAO
                    NFCeAutorizacaoH.NfeAutorizacao WsHRecepcao = new NFCeAutorizacaoH.NfeAutorizacao();

                    WsHRecepcao.ClientCertificates.Add(_X509Cert);
                    WsHRecepcao.Timeout = Convert.ToInt32(240000);
                    WsHRecepcao.InitializeLifetimeService();

                    NFCeAutorizacaoH.nfeCabecMsg cabec = new NFCeAutorizacaoH.nfeCabecMsg();
                    cabec.cUF                    = "33";
                    cabec.versaoDados            = "3.10";
                    WsHRecepcao.nfeCabecMsgValue = cabec;
                    TextoXML = WsHRecepcao.nfeAutorizacaoLote(xmlDados).OuterXml;
                    WsHRecepcao.Dispose();
                }


                return(TextoXML);
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                return("Erro de conexão na recepção...! " + ex.Message);
            }
        }
示例#4
0
        private void cmdLocalizar_Click(object sender, EventArgs e)
        {
            try
            {
                txtResultado.Text = string.Empty;
                this.Cursor       = Cursors.WaitCursor;

                p = (new PedidoDao()).getPedido(txtNFInicial.Text);

                if (p == null)
                {
                    MessageBox.Show("Esse pedido não foi encontrado dentro do sistema, verifique por favor ou informe ao administrador do sistema.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    LimpaCampos();
                    this.Cursor = Cursors.Default;
                    return;
                }

                if (!string.IsNullOrEmpty(p.chave) || !string.IsNullOrEmpty(p.protocolo))
                {
                    MessageBox.Show("Essa Nota Fiscal já foi emitida, verifique por favor.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LimpaCampos();
                    this.Cursor = Cursors.Default;
                    return;
                }

                p.lstPedidoItem = (new PedidoItemDao()).getlst_Itens(p.numdoc);
                p.operacao      = (new OperacaoDao()).getOperacaoPedido(p.numdoc);
                p.cliente       = (new ClienteDao()).getClientePedido(p.numdoc);
                p.cliente.end   = (new EnderecoDao()).getEnderecoCliente(p.numdoc);
                p.xml           = new XML();

                lblNFiscal.Text     = p.nfiscal.ToString();
                lblDatDoc.Text      = p.datadigitacao.ToString().Substring(0, 10);
                lblCodNat.Text      = p.operacao.codoperacao.ToString();
                lblValDoc.Text      = p.valdoc.ToString("######0.00");
                lblRazaoSocial.Text = string.IsNullOrEmpty(p.cliente.firma) ? "" : p.cliente.firma;
                lblEndereco.Text    = string.IsNullOrEmpty(p.cliente.end.logradouro) ? "" : p.cliente.end.logradouro + " " + p.cliente.end.complemento;
                lblCidade.Text      = string.IsNullOrEmpty(p.cliente.end.municipio) ? "" : p.cliente.end.municipio;
                lblUF.Text          = string.IsNullOrEmpty(p.cliente.end.uf) ? "" : p.cliente.end.uf;


                this.Cursor = Cursors.Default;
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                txtResultado.AppendText("Ocorreu um erro inesperado. Informe ao administrador do sistema!" + Environment.NewLine + ex.Message);
                txtResultado.ForeColor = Color.Maroon;
                this.Cursor            = Cursors.Default;
                return;
            }
        }
        //------------------------------------------------------------------------------

        public string XML_InutilizacaoNFCe4(XmlDocument xmlAssinado, X509Certificate2 _X509Cert)
        {
            try
            {
                //Transmitindo em ambiente de homologação
                xmlDados = xmlAssinado.DocumentElement;

                ServicePoint();

                if (GerarXML.str_Ambiente == "1")
                {
                    //NFCeRecepcaoP - PRODUCAO  /  NFCeRecepcaoH - HOMOLOGACAO
                    NFCeInutilizacao4P.NFeInutilizacao4 WsHInutilizacao = new NFCeInutilizacao4P.NFeInutilizacao4();

                    WsHInutilizacao.ClientCertificates.Add(_X509Cert);
                    WsHInutilizacao.Timeout = Convert.ToInt32(240000);
                    WsHInutilizacao.InitializeLifetimeService();

                    //NFCeInutilizacao2P.nfeCabecMsg cabec = new NFCeInutilizacao2P.nfeCabecMsg();
                    //cabec.cUF = "33";
                    //cabec.versaoDados = "3.10";
                    //WsHInutilizacao.nfeCabecMsgValue = cabec;
                    TextoXML = WsHInutilizacao.nfeInutilizacaoNF(xmlDados).OuterXml;
                    WsHInutilizacao.Dispose();
                }
                else
                {
                    //NFCeRecepcaoP - PRODUCAO  /  NFCeRecepcaoH - HOMOLOGACAO
                    NFCeInutilizacao2H.NfeInutilizacao2 WsHInutilizacao = new NFCeInutilizacao2H.NfeInutilizacao2();

                    WsHInutilizacao.ClientCertificates.Add(_X509Cert);
                    WsHInutilizacao.Timeout = Convert.ToInt32(240000);
                    WsHInutilizacao.InitializeLifetimeService();

                    NFCeInutilizacao2H.nfeCabecMsg cabec = new NFCeInutilizacao2H.nfeCabecMsg();
                    cabec.cUF         = "33";
                    cabec.versaoDados = "3.10";
                    WsHInutilizacao.nfeCabecMsgValue = cabec;
                    TextoXML = WsHInutilizacao.nfeInutilizacaoNF2(xmlDados).OuterXml;
                    WsHInutilizacao.Dispose();
                }


                return(TextoXML);
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                return("Erro de conexão na recepção...! " + ex.Message);
            }
        }
示例#6
0
        private void btnFinalizar_Click(object sender, EventArgs e)
        {
            try
            {
                Finaliza_Venda();
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Ocorreu um erro inesperado, tente novamente... Erro : " + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
示例#7
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                AtualizaTotal_ItenseVenda(Convert.ToInt32(lstItens.SelectedItems[0].SubItems[2].Text) * -1, Convert.ToDecimal(lstItens.SelectedItems[0].SubItems[5].Text) * -1);

                lstpedidoItem.RemoveAll(delegate(PedidoItem p) { return(p.codpro == Convert.ToInt32(lstItens.SelectedItems[0].SubItems[0].Text)); });

                lstItens.SelectedItems[0].Remove();
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Ocorreu um erro inesperado, tente novamente... Erro : " + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
示例#8
0
        /// <summary>
        /// Salva o arquivo de XML na tabela designada.
        /// <para>Valores para o parametro 'tipoNFe'</para>
        /// <para>"NFe" - Nota Fiscal Eletronica.</para>
        /// <para>"Canc" - Nota de Cancelamento.</para>
        /// <para>"CCe" - Nota de Carta de Correção.</para>
        /// <para>"Inut" - Nota de Inutilização.</para>
        /// </summary>
        public bool Grava_XML(XML xml)
        {
            try
            {
                if ((new PetaPoco.Database("stringConexao")).Insert("XML_NFe", "idXML", false, xml) != null)
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                return(false);
            }

            return(true);
        }
示例#9
0
        private void Unload_Form()
        {
            try
            {
                pdao          = null;
                plojaDao      = null;
                pedido        = null;
                produto       = null;
                lstpedidoItem = null;

                this.Close();
                this.Dispose();
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);
                MessageBox.Show("Ocorreu um erro inesperado, tente novamente... Erro : " + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
        private void Lista_Produto(Produto p, int quantidade)
        {
            try
            {
                ListViewItem ls = new ListViewItem(p.codpro.ToString());

                ls.SubItems.Add(quantidade.ToString());
                ls.SubItems.Add(p.prcvenda.ToString("0.00"));
                ls.SubItems.Add((p.prcvenda * quantidade).ToString("0.00"));
                ls.SubItems.Add(p.descricao);

                lstvwProduto.Items.Add(ls);
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);
                MessageBox.Show("Ocorreu um erro inesperado! " + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
示例#11
0
        private void lstPedidos_SelectedIndexChanged(object sender, EventArgs e)
        {
            lstItens.Items.Clear();
            TxtChaveNFe.Text     = string.Empty;
            TxtNumProtocolo.Text = string.Empty;


            if (lstvwPedidos.FocusedItem == null)
            {
                return;
            }

            try
            {
                var item = lstvwPedidos.FocusedItem;

                TxtChaveNFe.Text     = item.SubItems[8].Text;
                TxtNumProtocolo.Text = item.SubItems[9].Text;

                foreach (PedidoItem pditem in lstp[item.Index].lstPedidoItem)
                {
                    ListViewItem ls = new ListViewItem(pditem.codpro.ToString());
                    ls.SubItems.Add(pditem.produto.descricao);
                    ls.SubItems.Add(pditem.qtditens.ToString());
                    ls.SubItems.Add(pditem.valitens.ToString("0.00"));
                    ls.SubItems.Add(pditem.dscitens.ToString());
                    ls.SubItems.Add(pditem.prcitens.ToString("0.00"));

                    lstItens.Items.Add(ls);
                }
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Erro: " + ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
示例#12
0
        private void Lista_Produto(Produto p, decimal valDesc, int quantidade = 0, decimal total = 0)
        {
            try
            {
                ListViewItem ls = new ListViewItem(p.codpro.ToString());


                if (quantidade == 0)
                {
                    quantidade = Convert.ToInt32(txtQuantidade.Text);
                }

                if (total == 0)
                {
                    total = Convert.ToDecimal(lblTotal.Text);
                }


                ls.SubItems.Add(p.descricao);
                //ls.SubItems.Add(txtQuantidade.Text);
                ls.SubItems.Add(quantidade.ToString());
                ls.SubItems.Add(p.prcvenda.ToString("0.00"));
                ls.SubItems.Add(p.produto_loja.desconto.ToString());
                //ls.SubItems.Add(Convert.ToDecimal(lblTotal.Text).ToString("0.00"));
                ls.SubItems.Add(total.ToString("0.00"));
                ls.SubItems.Add(total.ToString("0.00"));
                ls.SubItems.Add(valDesc.ToString("0.00"));

                lstItens.Items.Add(ls);
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);
                MessageBox.Show("Ocorreu um erro inesperado! " + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
示例#13
0
        // ========================================================================
        private bool Gera_NFCe(Pedido pedido)
        {
            var msg = new StringBuilder();

            XmlDocument xmlNFe          = new XmlDocument();
            XmlDocument xmlNFe_Assinado = new XmlDocument();

            GerarXML      gerarXml      = new GerarXML();
            AssinarXML    assinarXml    = new AssinarXML();
            ValidarXML    validarXml    = new ValidarXML();
            TransmitirXML transmitirXml = new TransmitirXML();
            Email         email         = new Email();
            XMLDao        xmlDao        = new XMLDao();

            StreamWriter Grava;

            string retValidar;
            string strProc;
            string strXmlProcNfe;
            string retTransmitir;
            string cStatus_LoteProcessado;
            string cStatus_Autorizado;

            int nPosI;
            int nPosF;

            try
            {
                retTransmitir = string.Empty;
                retValidar    = string.Empty;

                cStatus_LoteProcessado = string.Empty;
                cStatus_Autorizado     = string.Empty;

                try
                {
                    // Gerando o XML
                    xmlNFe = (gerarXml.NFe(pedido));

                    //MensagemSistema("Arquivo Gerado ...", Color.OliveDrab);

                    // Assinando o XML
                    xmlNFe_Assinado = assinarXml.AssinaXML(xmlNFe.InnerXml, "infNFe", Certificado.getInstance.oCertificado);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("** Erro ao ASSINAR XML NFC-e, tente novamente **" + Environment.NewLine + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(false);
                }


                try
                {
                    // Validando o XML
                    retValidar = validarXml.Valida(xmlNFe_Assinado, "NFe");

                    //Inserindo a URL QRCode no xml já assinado
                    xmlNFe_Assinado.LoadXml(xmlNFe_Assinado.InnerXml.Replace("</infNFe>", "</infNFe><infNFeSupl><qrCode><![CDATA[" +
                                                                             gerarXml.Gera_Url_QRCode(xmlNFe_Assinado, pedido) + "]]></qrCode><urlChave>http://www4.fazenda.rj.gov.br/consultaNFCe/QRCode</urlChave></infNFeSupl>"));
                }
                catch (Exception ex)
                {
                    //Log_Exception.Monta_ArquivoLog(ex);
                    MessageBox.Show("** Erro ao VALIDAR XML NFC-e **" + Environment.NewLine + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(false);
                }

                if (retValidar == string.Empty)
                {
                    try
                    {
                        //MensagemSistema("Enviando a NFC-e", Color.OliveDrab);

                        // Recebendo o XML de retorno da transmissão
                        retTransmitir = transmitirXml.XML_NFCe4(xmlNFe_Assinado, pedido.nfiscal, Certificado.getInstance.oCertificado);

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

                            // Lote processado
                            if (xmlRetorno.GetElementsByTagName("cStat")[0].InnerText == "104")
                            {
                                // Autorizado
                                if (xmlRetorno.GetElementsByTagName("cStat")[1].InnerText == "100")
                                {
                                    try
                                    {
                                        //MensagemSistema("Autorizado o uso da NFC-e", Color.OliveDrab);

                                        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>
                                        nPosI   = retTransmitir.IndexOf("<protNFe");
                                        nPosF   = retTransmitir.Length - (nPosI + 13);
                                        strProc = retTransmitir.Substring(nPosI, nPosF);

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

                                        pedido.xml = new XML
                                        {
                                            numdoc     = pedido.numdoc,
                                            arquivoXML = strXmlProcNfe,
                                            data       = DateTime.Now,
                                            Modelo     = pedido.modelo,
                                            statNFCe   = "100"
                                        };


                                        //Salva arquivo XML no Banco SQL (NFe)
                                        if (xmlDao.Grava_XML(pedido.xml))
                                        {
                                            // Atualizando o pedido com a Chave, Protocolo, e statNFCe
                                            if ((new PedidoDao()).Update_ChaveProtocolo_condDoc_StatNFCe(pedido.numdoc, pedido.chave, pedido.protocolo, pedido.xml.statNFCe))
                                            {
                                                if (GerarXML.str_Ambiente == "1")
                                                {
                                                    if (!string.IsNullOrEmpty(Controle.getInstance.caminho_XMLAutorizado))
                                                    {
                                                        //Salvando o arquivo XML na pasta
                                                        Grava = File.CreateText(Controle.getInstance.caminho_XMLAutorizado.Remove(Controle.getInstance.caminho_XMLAutorizado.Length - 1) + DateTime.Now.Month + @"\" + pedido.chave + "-procNfe.xml");
                                                        Grava.Write(pedido.xml.arquivoXML);
                                                        Grava.Close();
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show("** NOTA EMITIDA **, mas houve um erro inesperado" + Environment.NewLine + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        return(false);
                                    }
                                }
                                else
                                {
                                    //MessageBox.Show("Erro ao Transmitir(004) XML NFC-e" + Environment.NewLine + xmlRetorno.GetElementsByTagName("xMotivo")[1].InnerText, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);


                                    msg.Append("** NOTA EMITIDA **, mas houve um erro inesperado");
                                    msg.Append(Environment.NewLine);
                                    msg.Append(xmlRetorno.GetElementsByTagName("xMotivo")[1].InnerText);

                                    txtErro.Visible   = true;
                                    btnEmitir.Visible = true;

                                    txtErro.Text = msg.ToString();

                                    msg.Clear();

                                    return(false);
                                }
                            }
                            else
                            {
                                //MessageBox.Show("Erro ao Transmitir(003) XML NFC-e" + Environment.NewLine + xmlRetorno.GetElementsByTagName("xMotivo")[0].InnerText, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);

                                msg.Append("** Erro ao Transmitir(003) XML NFC-e**");
                                msg.Append(Environment.NewLine);
                                msg.Append(xmlRetorno.GetElementsByTagName("xMotivo")[0].InnerText);

                                txtErro.Visible   = true;
                                btnEmitir.Visible = true;

                                txtErro.Text = msg.ToString();

                                msg.Clear();


                                return(false);
                            }
                        }
                        else
                        {
                            //MessageBox.Show("Erro ao Transmitir(002) XML NFC-e" + Environment.NewLine + retTransmitir, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);

                            msg.Append("** Erro ao Transmitir(002) XML NFC-e **");
                            msg.Append(Environment.NewLine);
                            msg.Append(retTransmitir);

                            txtErro.Visible   = true;
                            btnEmitir.Visible = true;

                            txtErro.Text = msg.ToString();

                            msg.Clear();


                            return(false);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erro ao Transmitir(001) XML NFC-e" + Environment.NewLine + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return(false);
                    }
                }
                else
                {
                    MessageBox.Show("Erro ao validar XML NFC-e" + Environment.NewLine + retValidar, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);
                MessageBox.Show("Ocorreu um erro inesperado, informe ao administrador do sistema!" + Environment.NewLine + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }

            return(true);
        }
示例#14
0
        private void cmdLocalizar_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            lstvwPedidos.Items.Clear();
            lstItens.Items.Clear();
            lstp.Clear();

            lblAutorizado.Text = "000";
            lblCancelado.Text  = "000";


            if (cboProcurar.SelectedIndex != 0 & txtProcurar.Text == string.Empty)
            {
                MessageBox.Show("Digite o (" + cboProcurar.Text + ") por favor.", "Mensagem - Busca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Cursor = Cursors.Default;
                return;
            }

            if (cboProcurar.SelectedIndex == 0 & (dtInicial.Checked == false || dtFinal.Checked == false))
            {
                MessageBox.Show("Entre com a (" + cboProcurar.Text + ") por favor.", "Mensagem - Busca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Cursor = Cursors.Default;
                return;
            }

            string strWhere = string.Empty;

            try
            {
                switch (cboProcurar.Text)
                {
                case "Data da Nota Fiscal":

                    if (cboFormaPagamento.Text != "Todos")
                    {
                        strWhere = "TipoPgto = " + cboFormaPagamento.SelectedValue;
                    }

                    if (cboStatus.Text != "Todos")
                    {
                        if (strWhere != string.Empty)
                        {
                            strWhere += " And StatNFCe = " + strStatNFCe;
                        }
                        else
                        {
                            strWhere += "StatNFCe = " + strStatNFCe;
                        }
                    }


                    lstp = pd.getlstPedidos(cboLoja.Text, Convert.ToInt32(cboUsuario.SelectedValue), string.Format("{0:yyyy-MM-dd 00:00:00}", dtInicial.Value), string.Format("{0:yyyy-MM-dd 23:59:59}", dtFinal.Value), strWhere);


                    break;


                case "N° da Nota Fiscal":
                    lstp.Add(pd.getPedido(txtProcurar.Text));
                    break;

                case "N° do Pedido":
                    lstp.Add(pd.getPedido(Convert.ToInt32(txtProcurar.Text)));
                    break;
                }


                if (lstp.Count == 0)
                {
                    MessageBox.Show("Pedido(s) não encontrado(s)!", "Mensagem - Busca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    lstp.Clear();
                    lstItens.Items.Clear();
                    cmdExportaXML.Enabled = false;
                    TxtChaveNFe.Text      = string.Empty;
                    TxtNumProtocolo.Text  = string.Empty;
                    this.Cursor           = Cursors.Default;
                    return;
                }

                if (lstp[0] == null)
                {
                    MessageBox.Show("Pedido(s) não encontrado(s)!", "Mensagem - Busca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    lstp.Clear();
                    lstItens.Items.Clear();
                    cmdExportaXML.Enabled = false;
                    TxtChaveNFe.Text      = string.Empty;
                    TxtNumProtocolo.Text  = string.Empty;
                    this.Cursor           = Cursors.Default;
                    return;
                }


                Lista_Pedidos();
                cmdExportaXML.Enabled = true;
            }

            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Ocorreu um erro inesperado: " + ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            this.Cursor = Cursors.Default;
        }
        private void Valida_UsuarioeSenha()
        {
            if (txtLogin.Text.Trim().Length == 0)
            {
                MessageBox.Show("Entre com o nome do usuário.", "Erro - Login", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            if (txtSenha.Text.Trim().Length == 0)
            {
                MessageBox.Show("Entre com a senha do usuário.", "Erro - Senha", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            try
            {
                if (!(new UsuarioDao()).SelecionaUsuario(txtLogin.Text, txtSenha.Text, cboLoja.Text))
                {
                    MessageBox.Show("Nome de usuário ou senha incorretos.", "Erro Login", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro inesperado ao se comunicar com o banco de dados." + Environment.NewLine + "Erro: " + ex.Message, "Erro de Conexão", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            try
            {
                // Selecionando o certificado
                Certificado.getInstance.Seleciona_Certificado();

                // Iniciando o certificado
                if (Certificado.getInstance.oCertificado == null)
                {
                    MessageBox.Show("Certificado não encontrado." + Environment.NewLine + "Tente novamente...", "Certificado - Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                if ((Certificado.getInstance.dValidadeFinal - DateTime.Now).Days <= 7)
                {
                    if ((Certificado.getInstance.dValidadeFinal - DateTime.Now).Days <= 0)
                    {
                        MessageBox.Show("CERTIFICADO EXPIRADO!" + Environment.NewLine + "Informe imediatamente ao gerente do Setor.", "Certificado - Validade", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        //return;
                    }

                    //MessageBox.Show("Atenção, faltam " + (Certificado.getInstance.dValidadeFinal - DateTime.Now).Days + " dias para o certificado expirar!", "Atenção - Validade", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }

                LogonSuccessful = true;
                this.Close();
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Erro ao selecionar CERTIFICADO DIGITAL no computador, verifique por favor!" + Environment.NewLine + "Retorno do erro: " + ex.Message, "Login - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                LogonSuccessful = false;
                return;
            }
        }
示例#16
0
        private void cmdInutilizar_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;

            string retValidar    = string.Empty;
            string retTransmitir = string.Empty;

            txtResultado.Text = string.Empty;

            GerarXML      geraxml    = new GerarXML();
            TransmitirXML transmitir = new TransmitirXML();
            ValidarXML    validarXml = new ValidarXML();
            AssinarXML    assinar    = new AssinarXML();
            StreamWriter  Grava;

            try
            {
                //Gerando xml
                xmlInut = geraxml.InutilizacaoNFe(Convert.ToInt32(txtNFInicial.Text), Convert.ToInt32(txtNFInicial.Text), p.serienfiscal, "Erro interno do sistema", p.modelo);

                //Assinando xml
                xmlInut_Assinado = assinar.AssinaXML(xmlInut.InnerXml, "infInut", Certificado.getInstance.oCertificado);
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                txtResultado.AppendText("Erro ao assinar XML: " + ex.Message + Environment.NewLine);
                txtResultado.ForeColor = Color.Maroon;
                this.Cursor            = Cursors.Default;
                return;
            }



            try
            {
                // Validando o XML
                retValidar = validarXml.Valida(xmlInut_Assinado, "Inut");
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                txtResultado.AppendText("Erro ao validar XML: " + ex.Message + Environment.NewLine);
                txtResultado.ForeColor = Color.Maroon;
                this.Cursor            = Cursors.Default;
                return;
            }


            if (retValidar == string.Empty)
            {
                try
                {
                    //Recebendo xml de retorno da transmissão
                    retTransmitir = transmitir.XML_InutilizacaoNFCe4(xmlInut_Assinado, Certificado.getInstance.oCertificado);


                    if (retTransmitir.Substring(0, 4) != "Erro")
                    {
                        XmlDocument retxml = new XmlDocument();
                        retxml.LoadXml(retTransmitir);

                        //Lote Processado
                        if (retxml.GetElementsByTagName("cStat")[0].InnerText == "102")
                        {
                            try
                            {
                                XMLDao xmlDao = new XMLDao();

                                p.xml.numdoc     = p.numdoc;
                                p.xml.data       = DateTime.Now;
                                p.xml.arquivoXML = retxml.InnerXml;
                                p.xml.Modelo     = p.modelo;
                                p.xml.statNFCe   = "102";

                                if (!string.IsNullOrEmpty(Controle.getInstance.caminho_XMLInutilizado))
                                {
                                    //Salvando o arquivo XML na pasta selecionada no FORM Parametros > aba Arquivos
                                    Grava = File.CreateText(Controle.getInstance.caminho_XMLInutilizado + @"\NOTA " + p.nfiscal + " - INUTILIZADA.xml");
                                    Grava.Write(p.xml.arquivoXML);
                                    Grava.Close();
                                }


                                //Atualizando o status do pedido para inutilizada
                                (new PedidoDao()).Update_StatNFCe_CondDoc(p.numdoc, "102");



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

                                        foreach (PedidoItem pItem in p.lstPedidoItem)
                                        {
                                            db.Update("UPDATE produto " +
                                                      "SET Estoque = Estoque + " + pItem.qtditens * 1 +
                                                      ",ValorVnd = ValorVnd + " + (pItem.valitens * -1).ToString().Replace(",", ".") +
                                                      " WHERE CodPro = " + pItem.codpro);
                                        }

                                        //Boleta cancelada
                                        db.Update("UPDATE Boleta set condicao = 2 where numdoc = " + p.numdoc);


                                        db.CompleteTransaction();
                                    }
                                    catch (Exception)
                                    {
                                        db.AbortTransaction();
                                        MessageBox.Show("Houve um erro inesperado ao atualizar o estoque e cancelar as boletas, informe imediatamente ao administrador do sistema!", "Mensagem de erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        return;
                                    }
                                }


                                txtResultado.AppendText("Nota Fiscal inutilizada com sucesso!");
                                txtResultado.ForeColor = Color.Green;
                            }
                            catch (Exception ex)
                            {
                                Log_Exception.Monta_ArquivoLog(ex);

                                txtResultado.AppendText("Nota Fiscal inutilizada com sucesso, porém houve um erro inesperado, informe ao administrador do sistema!");
                                txtResultado.ForeColor = Color.Maroon;
                            }
                        }
                        else
                        {
                            txtResultado.AppendText("Erro ao transmitir XML (002): " + retxml.GetElementsByTagName("xMotivo")[0].InnerText + Environment.NewLine);
                            txtResultado.ForeColor = Color.Maroon;
                        }
                    }
                    else
                    {
                        txtResultado.AppendText("Erro ao transmitir XML (001): " + retTransmitir + Environment.NewLine);
                        txtResultado.ForeColor = Color.Maroon;
                    }
                }
                catch (Exception ex)
                {
                    Log_Exception.Monta_ArquivoLog(ex);

                    txtResultado.AppendText("Erro ao finalizar XML: " + ex.Message + Environment.NewLine);
                    txtResultado.ForeColor = Color.Maroon;
                }
            }

            this.Cursor = Cursors.Default;
        }
示例#17
0
        private void Gerando_NFCe()
        {
            PedidoDao    pdDao  = new PedidoDao();
            XMLDao       xmlDao = new XMLDao();
            StreamWriter Grava;

            string retValidar;
            string strProc;
            string strXmlProcNfe;
            int    nPosI;
            int    nPosF;

            string cStatus_LoteProcessado;
            string cStatus_Autorizado;

            //TxtResultado.Text = string.Empty;
            //txtDadosXML.Text = string.Empty;


            try
            {
                retTransmitir = string.Empty;
                retValidar    = string.Empty;

                cStatus_LoteProcessado = string.Empty;
                cStatus_Autorizado     = string.Empty;

                try
                {
                    // Gerando o XML
                    xmlNFe = (gerarXml.NFe(pedido));

                    MensagemSistema("Arquivo Gerado", Color.Green);


                    txtChave.Text = gerarXml.strChave;

                    // Assinando o XML
                    xmlNFe_Assinado = assinarXml.AssinaXML(xmlNFe.InnerXml, "infNFe", Certificado.getInstance.oCertificado);
                }
                catch (Exception ex)
                {
                    Log_Exception.Monta_ArquivoLog(ex);
                    MensagemSistema("** Erro ao ASSINAR **" + Environment.NewLine + "Erro: " + ex.Message, Color.Maroon);
                    return;
                }

                MensagemSistema("Arquivo Assinado", Color.Green);

                try
                {
                    // Validando o XML
                    retValidar = validarXml.Valida(xmlNFe_Assinado, "NFe");
                }
                catch (Exception ex)
                {
                    Log_Exception.Monta_ArquivoLog(ex);

                    MensagemSistema("** Erro ao VALIDAR **" + Environment.NewLine + "Erro: " + ex.Message, Color.Maroon);
                    return;
                }


                //Inserindo a URL QRCode no xml já assinado
                xmlNFe_Assinado.LoadXml(xmlNFe_Assinado.InnerXml.Replace("</infNFe>", "</infNFe><infNFeSupl><qrCode><![CDATA[" +
                                                                         gerarXml.Gera_Url_QRCode(xmlNFe_Assinado, pedido) + "]]></qrCode></infNFeSupl>"));



                //==========================================================================
                string caminho = @"C:\Documents and Settings\Renan\Desktop\XmlAssinado.xml";
                Grava = File.CreateText(caminho);
                Grava.Write(xmlNFe_Assinado.InnerXml);
                Grava.Close();
                //==========================================================================



                if (retValidar == string.Empty)
                {
                    try
                    {
                        MensagemSistema("Enviando a NFC-e", Color.Black);

                        // Recebendo o XML de retorno da transmissão
                        retTransmitir = transmitirXml.XML_NFCe(xmlNFe_Assinado, pedido.nfiscal, Certificado.getInstance.oCertificado);

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

                            // Lote processado
                            if (xmlRetorno.GetElementsByTagName("cStat")[0].InnerText == "104")
                            {
                                // Autorizado
                                if (xmlRetorno.GetElementsByTagName("cStat")[1].InnerText == "100")
                                {
                                    try
                                    {
                                        MensagemSistema("Autorizado o uso da NFC-e", Color.Green);

                                        pedido.chave     = xmlRetorno.GetElementsByTagName("chNFe")[0].InnerText;
                                        pedido.protocolo = xmlRetorno.GetElementsByTagName("nProt")[0].InnerText;

                                        txtProtocolo.Text = pedido.protocolo;
                                        txtData.Text      = DateTime.Now.ToString();

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

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

                                        pedido.xml            = new XML();
                                        pedido.xml.numdoc     = pedido.numdoc;
                                        pedido.xml.arquivoXML = strXmlProcNfe;
                                        pedido.xml.data       = DateTime.Now;
                                        pedido.xml.Modelo     = pedido.modelo;


                                        if (GerarXML.str_Ambiente == "1")
                                        {
                                            //SalvarArquivoXML_Pasta(i);
                                        }

                                        //SalvarArquivoXML_Pasta(@"C:\Documents and Settings\Renan\Desktop\NFCE EMITIDA.xml", pedido.xml.arquivoXML);



                                        //==========================================================================
                                        caminho = @"C:\Documents and Settings\Renan\Desktop\NFCE EMITIDA.xml";
                                        Grava   = File.CreateText(caminho);
                                        Grava.Write(strXmlProcNfe);
                                        Grava.Close();
                                        //==========================================================================



                                        // Salvando o xml no Banco de Dados
                                        if (xmlDao.Grava_XML(pedido.xml))
                                        {
                                            // Atualizando o pedido com Chave e Protocolo
                                            if (pdDao.Update_ChaveProtocolo(pedido.numdoc, pedido.chave, pedido.protocolo))
                                            {
                                                //Atualizando a data do pedido
                                                pdDao.Update_DataNFiscal(pedido.numdoc, DateTime.Now);
                                            }
                                        }
                                        else
                                        {
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        Log_Exception.Monta_ArquivoLog(ex);
                                        MensagemSistema("** NOTA EMITIDA **, mas houve um erro inesperado ao salvar (005)" + Environment.NewLine + "Erro: " + ex.Message, Color.Maroon);
                                        return;
                                    }
                                }
                                else
                                {
                                    MensagemSistema("Erro ao Transmitir (004)" + Environment.NewLine + "Erro: " + xmlRetorno.GetElementsByTagName("xMotivo")[1].InnerText, Color.Maroon);
                                    return;
                                }
                            }
                            else
                            {
                                MensagemSistema("Erro ao Transmitir (003)" + Environment.NewLine + "Erro: " + xmlRetorno.GetElementsByTagName("xMotivo")[0].InnerText, Color.Maroon);
                                return;
                            }
                        }
                        else
                        {
                            MensagemSistema("Erro ao Transmitir (002)" + Environment.NewLine + "Erro: " + retTransmitir, Color.Maroon);
                            return;
                        }
                    }
                    catch (Exception ex)
                    {
                        Log_Exception.Monta_ArquivoLog(ex);

                        MensagemSistema("Erro ao Transmitir (001)" + Environment.NewLine + "Erro: " + ex.Message, Color.Maroon);
                        return;
                    }
                }
                else
                {
                    MensagemSistema("Erro no XML" + Environment.NewLine + "XML Shema: " + retValidar, Color.Maroon);
                    return;
                }
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);
                MensagemSistema("Ocorreu um erro inesperado, informe ao administrador do sistema!" + Environment.NewLine + ex.Message, Color.Maroon);
                return;
            }
        }
        private void CmdCancela_Click(object sender, EventArgs e)
        {
            if ((DateTime.Now - p.datadigitacao).TotalHours > 24)
            {
                MessageBox.Show("Prazo de Cancelamento Superior ao Previsto na Legislação.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            if (p.conddoc == "C")
            {
                MessageBox.Show("NF-e já cancelada.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            if (cboMotivo.Text.Trim().Length < 15)
            {
                MessageBox.Show("Minimo de 15 caracteres!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            this.Cursor = Cursors.WaitCursor;

            StreamWriter  Grava;
            GerarXML      geraxml    = new GerarXML();
            AssinarXML    assinar    = new AssinarXML();
            ValidarXML    validar    = new ValidarXML();
            TransmitirXML transmitir = new TransmitirXML();
            XMLDao        xmldao     = new XMLDao();

            string retValidar    = string.Empty;
            string xMotivo       = cboMotivo.Text;
            string retTransmitir = string.Empty;

            txtResultado.Text = string.Empty;

            try
            {
                //Gerando xml
                xmlCanc = geraxml.CancelamentoNFe(p, xMotivo);

                //Assinando xml
                xmlCanc_Assinado = assinar.AssinaXML(xmlCanc.InnerXml, "infEvento", Certificado.getInstance.oCertificado);
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Erro ao assinar: " + ex.Message, "Mensagem", MessageBoxButtons.OK);
                this.Cursor = Cursors.Default;
                return;
            }

            try
            {
                //Validando o xml assinado
                retValidar = validar.Valida(xmlCanc_Assinado, "Canc");
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Erro ao Validar: " + ex.Message, "Mensagem", MessageBoxButtons.OK);
                this.Cursor = Cursors.Default;
                return;
            }


            if (retValidar == string.Empty)
            {
                try
                {
                    //Recebendo xml de retorno da transmissão
                    retTransmitir = transmitir.XML_CancelamentoNFCe4(xmlCanc_Assinado, p.nfiscal, Certificado.getInstance.oCertificado);

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

                        //Lote processado
                        if (xmlRetorno.GetElementsByTagName("cStat")[0].InnerText == "128")
                        {
                            //Evento registrado e vinculado a NFC-e
                            if (xmlRetorno.GetElementsByTagName("cStat")[1].InnerText == "135")
                            {
                                try
                                {
                                    p.xml.numdoc     = p.numdoc;
                                    p.xml.data       = DateTime.Now;
                                    p.xml.arquivoXML = xmlRetorno.InnerXml;
                                    p.xml.Modelo     = p.modelo;
                                    p.xml.statNFCe   = "135";


                                    if (!string.IsNullOrEmpty(Controle.getInstance.caminho_XMLCancelado))
                                    {
                                        //Salva o arquivo XML na pasta
                                        Grava = File.CreateText(Controle.getInstance.caminho_XMLCancelado + @"\110111-" + p.chave + "-1-procEventoNfe.xml");
                                        Grava.Write(p.xml.arquivoXML);
                                        Grava.Close();
                                    }

                                    //Salva arquivo XML no Banco SQL (NFe)
                                    if (xmldao.Grava_XML(p.xml))
                                    {
                                        //Atualizando o status do pedido para cancelada (135)
                                        (new PedidoDao()).Update_StatNFCe_CondDoc(p.numdoc, p.xml.statNFCe);


                                        var db = new Database("stringConexao");

                                        try
                                        {
                                            db.BeginTransaction();

                                            foreach (PedidoItem pItem in p.lstPedidoItem)
                                            {
                                                db.Update("UPDATE produto " +
                                                          "SET Estoque = Estoque + " + pItem.qtditens * 1 +
                                                          ",ValorVnd = ValorVnd + " + (pItem.valitens * -1).ToString().Replace(",", ".") +
                                                          " WHERE CodPro = " + pItem.codpro);
                                            }

                                            //Boleta cancelada
                                            db.Update("UPDATE Boleta set condicao = 2 where numdoc = " + p.numdoc);


                                            db.CompleteTransaction();
                                        }
                                        catch (Exception)
                                        {
                                            db.AbortTransaction();
                                            MessageBox.Show("Houve um erro inesperado ao atualizar o estoque e cancelar as boletas, informe imediatamente ao administrador do sistema!", "Mensagem de erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            return;
                                        }


                                        txtResultado.AppendText("Pedido cancelado com sucesso!");
                                        txtResultado.ForeColor = Color.Green;
                                    }
                                    else
                                    {
                                        txtResultado.AppendText("Pedido cancelado com sucesso, porém houve um erro ao salvar o arquivo XML no banco de dados, informe ao administrador do sistema!");
                                        txtResultado.ForeColor = Color.Green;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Log_Exception.Monta_ArquivoLog(ex);

                                    txtResultado.AppendText("Pedido cancelado com sucesso, porém houve um erro inesperado, informe ao administrador do sistema!");
                                    txtResultado.ForeColor = Color.Green;
                                }
                            }
                            else
                            {
                                txtResultado.AppendText("Erro ao cancelar (002): " + xmlRetorno.GetElementsByTagName("xMotivo")[1].InnerText + Environment.NewLine);
                                txtResultado.ForeColor = Color.Maroon;
                                this.Cursor            = Cursors.Default;
                                return;
                            }
                        }
                        else
                        {
                            txtResultado.AppendText("Erro ao cancelar (001): " + xmlRetorno.GetElementsByTagName("xMotivo")[0].InnerText + Environment.NewLine);
                            txtResultado.ForeColor = Color.Maroon;
                            this.Cursor            = Cursors.Default;
                            return;
                        }
                    }
                    else
                    {
                        txtResultado.AppendText("Erro ao transmitir (001): " + retTransmitir + Environment.NewLine);
                        txtResultado.ForeColor = Color.Maroon;
                        this.Cursor            = Cursors.Default;
                        return;
                    }
                }
                catch (Exception ex)
                {
                    Log_Exception.Monta_ArquivoLog(ex);

                    MessageBox.Show("Erro ao Transmitir XML: " + ex.Message, "Mensagem", MessageBoxButtons.OK);
                    this.Cursor = Cursors.Default;
                    return;
                }
            }
            else
            {
                txtResultado.AppendText("Erro na validação do XML: " + retValidar + Environment.NewLine);
                txtResultado.ForeColor = Color.Maroon;
                this.Cursor            = Cursors.Default;
                return;
            }

            this.Cursor = Cursors.Default;
        }
示例#19
0
        private void cmdTransmitirXML_Click(object sender, EventArgs e)
        {
            if (lstMovdia.CheckedItems.Count == 0)
            {
                MessageBox.Show("Selecione uma Nota Fiscal na lista abaixo.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                lstMovdia.Focus();
                return;
            }


            PedidoDao pdDao  = new PedidoDao();
            XMLDao    xmlDao = new XMLDao();
            //StreamWriter Grava;

            string retValidar;
            string strProc;
            string strXmlProcNfe;
            int    nPosI;
            int    nPosF;

            string cStatus_LoteProcessado;
            string cStatus_Autorizado;

            TxtResultado.Text = string.Empty;
            txtDadosXML.Text  = string.Empty;

            progressBar1.Value   = 0;
            progressBar1.Maximum = lstMovdia.Items.Count;

            try
            {
                for (int i = 0; i <= lstMovdia.Items.Count - 1; i++)
                {
                    progressBar1.Value = progressBar1.Value + 1;

                    if (lstMovdia.Items[i].Checked == true)
                    {
                        retTransmitir = string.Empty;
                        retValidar    = string.Empty;

                        cStatus_LoteProcessado = string.Empty;
                        cStatus_Autorizado     = string.Empty;

                        try
                        {
                            // Gerando o XML
                            xmlNFe = (gerarXml.NFe(lstPedido[i]));

                            // Assinando o XML
                            xmlNFe_Assinado = assinarXml.AssinaXML(xmlNFe.InnerXml, "infNFe", Certificado.getInstance.oCertificado);
                        }
                        catch (Exception ex)
                        {
                            Log_Exception.Monta_ArquivoLog(ex);

                            lst_Color(i, "Erro ao Assinar", Color.Red);
                            lista_Erros(i, "Erro: " + ex.Message);
                            continue;
                        }


                        try
                        {
                            // Validando o XML
                            retValidar = validarXml.Valida(xmlNFe_Assinado, "NFe");
                        }
                        catch (Exception ex)
                        {
                            Log_Exception.Monta_ArquivoLog(ex);

                            lst_Color(i, "Erro inesperado ao Validar", Color.Red);
                            lista_Erros(i, "Erro ao Validar: " + ex.Message);
                            continue;
                        }


                        if (lstPedido[i].modelo == "65")
                        {
                            //Inserindo a URL QRCode no xml já assinado
                            xmlNFe_Assinado.LoadXml(xmlNFe_Assinado.InnerXml.Replace("</infNFe>", "</infNFe><infNFeSupl><qrCode><![CDATA[" +
                                                                                     gerarXml.Gera_Url_QRCode(xmlNFe_Assinado, lstPedido[i]) + "]]></qrCode></infNFeSupl>"));
                        }

                        /*
                         * // Gravando o arquivo xml na pasta de Saidas
                         * Grava = File.CreateText(@"C:\Documents and Settings\Renan\Desktop\xxxx1.XML");
                         * Grava.Write(xmlNFe_Assinado.InnerXml);
                         * Grava.Close();
                         */


                        if (retValidar == string.Empty)
                        {
                            try
                            {
                                // Recebendo o XML de retorno da transmissão
                                //retTransmitir = lstPedido[i].modelo == "65" ? transmitirXml.XML_NFCe(xmlNFe_Assinado, lstPedido[i].nfiscal, Certificado.getInstance.oCertificado) : transmitirXml.XML_NFe(xmlNFe_Assinado, lstPedido[i].nfiscal, Certificado.getInstance.oCertificado);

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

                                    // Lote processado
                                    if (xmlRetorno.GetElementsByTagName("cStat")[0].InnerText == "104")
                                    {
                                        // Autorizado
                                        if (xmlRetorno.GetElementsByTagName("cStat")[1].InnerText == "100")
                                        {
                                            try
                                            {
                                                lstPedido[i].chave     = xmlRetorno.GetElementsByTagName("chNFe")[0].InnerText;
                                                lstPedido[i].protocolo = xmlRetorno.GetElementsByTagName("nProt")[0].InnerText;

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

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

                                                lstPedido[i].xml.numdoc     = lstPedido[i].numdoc;
                                                lstPedido[i].xml.arquivoXML = strXmlProcNfe;
                                                lstPedido[i].xml.data       = DateTime.Now;
                                                lstPedido[i].xml.Modelo     = lstPedido[i].modelo;


                                                if (GerarXML.str_Ambiente == "1")
                                                {
                                                    SalvarArquivoXML_Pasta(i);
                                                }



                                                // Salvando o xml no Banco de Dados
                                                if (xmlDao.Grava_XML(lstPedido[i].xml))
                                                {
                                                    // Atualizando o pedido com Chave e Protocolo
                                                    if (pdDao.Update_ChaveProtocolo(lstPedido[i].numdoc, lstPedido[i].chave, lstPedido[i].protocolo))
                                                    {
                                                        lst_Color(i, xmlRetorno.GetElementsByTagName("xMotivo")[1].InnerText, Color.Green);

                                                        txtDadosXML.AppendText("Nota Fiscal: " + lstPedido[i].nfiscal + " emitida com sucesso..." + Environment.NewLine);
                                                        txtDadosXML.AppendText("Arquivo XML salvo com sucesso..." + Environment.NewLine);
                                                        txtDadosXML.AppendText("Chave: " + lstPedido[i].chave + Environment.NewLine);
                                                        txtDadosXML.AppendText("Protocolo: " + lstPedido[i].protocolo + Environment.NewLine + Environment.NewLine);

                                                        /*
                                                         * if (Usuario.getInstance.empresa == 1)
                                                         * {
                                                         *  if (GerarXML.str_Ambiente == "1")
                                                         *  {
                                                         *      // Enviando email para o cliente
                                                         *      if (email.EnviaEmailNFe(lstPedido[i])) { pdDao.Atualiza_Pedido_Email(lstPedido[i].numdoc); }
                                                         *  }
                                                         * }*/
                                                    }
                                                    else
                                                    {
                                                        lst_Color(i, xmlRetorno.GetElementsByTagName("xMotivo")[1].InnerText, Color.Green);
                                                        lista_Erros(i, "NOTA EMITIDA, mas houve um erro ao atualizar o pedido com a CHAVE e o PROTOCOLO, informe imediatamente ao administrador do sistema!");
                                                    }
                                                }
                                                else
                                                {
                                                    lst_Color(i, xmlRetorno.GetElementsByTagName("xMotivo")[1].InnerText, Color.Green);
                                                    lista_Erros(i, "NOTA EMITIDA, mas houve um erro ao salvar o arquivo de XML no banco de dados, informe imediatamente ao administrador do sistema!");
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                Log_Exception.Monta_ArquivoLog(ex);

                                                lista_Erros(i, ex.Message);
                                                lst_Color(i, "NOTA EMITIDA, mas houve um erro inesperado (005)", Color.Red);
                                                continue;
                                            }
                                        }
                                        else
                                        {
                                            lista_Erros(i, xmlRetorno.GetElementsByTagName("xMotivo")[1].InnerText);
                                            lst_Color(i, "Erro ao Transmitir (004)", Color.Red);
                                            continue;
                                        }
                                    }
                                    else
                                    {
                                        lista_Erros(i, xmlRetorno.GetElementsByTagName("xMotivo")[0].InnerText);
                                        lst_Color(i, "Erro ao Transmitir (003)", Color.Red);
                                        continue;
                                    }
                                }
                                else
                                {
                                    lista_Erros(i, retTransmitir);
                                    lst_Color(i, "Erro ao Transmitir (002)", Color.Red);
                                    continue;
                                }
                            }
                            catch (Exception ex)
                            {
                                Log_Exception.Monta_ArquivoLog(ex);

                                lista_Erros(i, ex.Message);
                                lst_Color(i, "Erro ao Transmitir (001)", Color.Red);
                                continue;
                            }
                        }
                        else
                        {
                            lst_Color(i, "Erro no XML", Color.Red);
                            lista_Erros(i, "XML Shema: " + retValidar);
                            continue;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                TxtResultado.AppendText("Ocorreu um erro inesperado, informe ao administrador do sistema!" + Environment.NewLine + ex.Message + Environment.NewLine);
                return;
            }
        }
        private void cmdLocalizar_Click(object sender, EventArgs e)
        {
            txtResultado.Text = string.Empty;

            if (txtNumDoc.Text.Trim() == string.Empty)
            {
                MessageBox.Show("Digite o (" + cboProcurar.Text + ") por favor.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            cboMotivo.Text = "PEDIDO DIGITADO INDEVIDAMENTE";
            cboMotivo.Focus();

            this.Cursor = Cursors.WaitCursor;

            try
            {
                if (cboProcurar.SelectedIndex == 0)
                {
                    //Por nota fiscal
                    p = pdao.getPedido(txtNumDoc.Text.Trim());
                }
                else
                {
                    //Por pedido
                    p = pdao.getPedido(Convert.ToInt32(txtNumDoc.Text.Trim()));
                }


                if (p == null)
                {
                    MessageBox.Show("Pedido não encontrado, verifique por favor.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Cursor = Cursors.Default;
                    return;
                }

                if (string.IsNullOrEmpty(p.chave) || string.IsNullOrEmpty(p.protocolo))
                {
                    MessageBox.Show("Não existe Chave e Protocolo nesse pedido, verifique por favor.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Cursor = Cursors.Default;
                    return;
                }

                p.operacao      = (new OperacaoDao()).getOperacaoPedido(p.numdoc);
                p.cliente       = (new ClienteDao()).getClientePedido(p.numdoc);
                p.operacao      = (new OperacaoDao()).getOperacaoPedido(p.numdoc);
                p.lstPedidoItem = (new PedidoItemDao()).getlst_Itens(p.numdoc);
                p.cliente.end   = (new EnderecoDao()).getEnderecoCliente(p.numdoc);
                p.xml           = new XML();

                lblNFiscal.Text     = p.nfiscal.ToString();
                lblDatDoc.Text      = p.datadigitacao.ToString().Substring(0, 10);
                lblCodNat.Text      = p.operacao.codoperacao.ToString();
                lblValDoc.Text      = p.valdoc.ToString("######0.00");
                lblRazaoSocial.Text = p.cliente.firma;
                lblEndereco.Text    = p.cliente.end.logradouro + " " + p.cliente.end.complemento;
                lblCidade.Text      = p.cliente.end.municipio;
                lblUF.Text          = p.cliente.end.uf;

                TxtChaveNFe.Text     = p.chave;
                TxtNumProtocolo.Text = p.protocolo;

                CmdCancela.Enabled = true;

                this.Cursor = Cursors.Default;
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Ocorreu um erro inesperado. Informe imediatamente o administrador do sistema!" + Environment.NewLine + ex.Message, "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Cursor = Cursors.Default;
                return;
            }
        }
示例#21
0
        private void frmCaixa_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Escape)
            {
                if (!statusCaixa)
                {
                    Unload_Form();
                    return;
                }

                Reinicia_Venda();
            }
            else if (e.KeyData == Keys.F2)
            {
                if (!statusCaixa)
                {
                    Inicia_Venda();
                }
                else
                {
                    MessageBox.Show("O caixa já está aberto, finalize ou cancele para iniciar novamente!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            else if (e.KeyData == Keys.F5)
            {
                if (!statusCaixa)
                {
                    return;
                }

                try
                {
                    Finaliza_Venda();
                }
                catch (Exception ex)
                {
                    Log_Exception.Monta_ArquivoLog(ex);
                    MessageBox.Show("Tente novamente " + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            else if (e.KeyData == Keys.F8)
            {
                if (MessageBox.Show("Confirma fechar a aplicação ?", "Venda", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    Unload_Form();
                }
            }
            else if (e.KeyData == Keys.F4)
            {
                if (!statusCaixa)
                {
                    return;
                }

                frmPesquisaProduto frmPesquisa = new frmPesquisaProduto();
                frmPesquisa.ShowDialog();

                produto = frmPesquisa.produto;

                if (produto != null)
                {
                    Seleciona_Produto(produto);
                    txtQuantidade.Focus();
                }
            }
        }
示例#22
0
        private void Form1_Load(object sender, EventArgs e)
        {
            //===========================================================================
            //===========================================================================
            (new EmitenteDao()).SelecionaEmitente();

            // Selecionando o certificado
            Certificado.getInstance.Seleciona_Certificado();

            // Iniciando o certificado
            if (Certificado.getInstance.oCertificado == null)
            {
                MessageBox.Show("Certificado não encontrado." + Environment.NewLine + "Tente novamente...", "Certificado - Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            if ((Certificado.getInstance.dValidadeFinal - DateTime.Now).Days <= 7)
            {
                if ((Certificado.getInstance.dValidadeFinal - DateTime.Now).Days <= 0)
                {
                    MessageBox.Show("CERTIFICADO EXPIRADO!" + Environment.NewLine + "Informe imediatamente ao gerente do Setor.", "Certificado - Validade", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                MessageBox.Show("Atenção, faltam " + (Certificado.getInstance.dValidadeFinal - DateTime.Now).Days + " dias para o certificado expirar!", "Atenção - Validade", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            //===========================================================================
            //===========================================================================


            this.Text = "Menu Principal (NFCe 3.10)";

            try
            {
                Iniciando_Configuracao();


                if (!(new EmitenteDao()).SelecionaEmitente())
                {
                    MessageBox.Show("Dados do Emitente não encontrado, tente novamente!", "Erro Login", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                stbPrincipal.Items[0].Text = Emitente.getInstance.nome;
                stbPrincipal.Items[1].Text = "CNPJ: " + String.Format(@"{0:00\.000\.000\/0000\-00}", Convert.ToInt64(Emitente.getInstance.cnpj));
                stbPrincipal.Items[2].Text = "IE: " + Emitente.getInstance.inscest;
                stbPrincipal.Items[3].Text = DateTime.Now.ToString("dd/MM/yyyy");
                stbPrincipal.Items[5].Text = "Usuário: " + Usuario.getInstance.nomeUser;
                stbPrincipal.Items[6].Text = "Loja: " + (Usuario.getInstance.loja.Equals(0)?"Livraria":"Cafeteria");
            }
            catch (Exception ex)
            {
                Log_Exception.Monta_ArquivoLog(ex);

                MessageBox.Show("Ocorreu um erro ao buscar os dados do Emitente no banco de dados, verfique por favor ou contate o administrador do sistema! " + Environment.NewLine + "Retorno do erro: " + ex.Message, "Erro inesperado", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }


            //===========================================
            // Definindo o ambiente
            GerarXML.str_Ambiente = "1";
            //===========================================


            if (GerarXML.str_Ambiente == "1")
            {
                stbPrincipal.Items[4].Text = "Ambiente PRODUÇÃO";
            }
            else
            {
                stbPrincipal.Items[4].Text = "Ambiente HOMOLOGAÇÃO";
            }
        }
示例#23
0
        private void btnEmitir_Click(object sender, EventArgs e)
        {
            if (lstvwPedidos.FocusedItem == null)
            {
                return;
            }

            if (lstp[lstvwPedidos.FocusedItem.Index].datadigitacao.Date < DateTime.Now.Date)
            {
                lstp[lstvwPedidos.FocusedItem.Index].datanfiscal = DateTime.Now;
            }


            if (lstp[lstvwPedidos.FocusedItem.Index].nfiscal.Equals("0") || lstp[lstvwPedidos.FocusedItem.Index].nfiscal.Equals(""))
            {
                var db = new Database("stringConexao");

                try
                {
                    db.BeginTransaction();


                    lstp[lstvwPedidos.FocusedItem.Index].nfiscal = ((new ControleNFiscalDao()).getNumNFiscal() + 1).ToString();


                    db.Update("Update Controle Set NFiscal_NFCe=" + Convert.ToInt32(lstp[lstvwPedidos.FocusedItem.Index].nfiscal.Trim()) + " Where ChvControle = 1");
                    db.Update("Update Movdb Set nfiscal = '" + lstp[lstvwPedidos.FocusedItem.Index].nfiscal.Trim() + "' Where NumDoc=" + lstp[lstvwPedidos.FocusedItem.Index].numdoc);

                    db.CompleteTransaction();

                    Controle.getInstance.ultima_NFCe = Convert.ToInt32(lstp[lstvwPedidos.FocusedItem.Index].nfiscal);
                }
                catch (Exception ex)
                {
                    //RollBack
                    db.AbortTransaction();

                    Log_Exception.Monta_ArquivoLog(ex);

                    MessageBox.Show("Houve um erro de conexão com o Banco de Dados." + Environment.NewLine + "Tente Novamente.." + Environment.NewLine + ex.Message, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }


            foreach (var ls in lstvwPedidos.CheckedItems)
            {
                var l = (ListViewItem)ls;


                if (Gera_NFCe(lstp[l.Index]))
                {
                    //MessageBox.Show("NFC-e Emitida com Sucesso!", "Emissão Nota Fiscal Eletrônica", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }


            MessageBox.Show("NFC-e Emitida com Sucesso!", "Emissão Nota Fiscal Eletrônica", MessageBoxButtons.OK, MessageBoxIcon.Information);
            cmdLocalizar_Click(sender, e);

            //if (Gera_NFCe(lstp[lstvwPedidos.FocusedItem.Index]))
            //{
            //    MessageBox.Show("NFC-e Emitida com Sucesso!", "Emissão Nota Fiscal Eletrônica", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //    cmdLocalizar_Click(sender, e);
            //}
        }