Ejemplo n.º 1
0
        private void BtnConsultar_Click(object sender, EventArgs e)
        {
            TxtResultado.Clear();
            url          = TxtUrl.Text;
            cedula       = TxtCedula.Text;
            urlMasCedula = url + cedula;

            wrGETURL  = WebRequest.Create(urlMasCedula);
            objStream = wrGETURL.GetResponse().GetResponseStream();

            StreamReader objReader = new StreamReader(objStream);

            string sLine = "";
            int    i     = 0;

            while (sLine != null)
            {
                i++;
                sLine = objReader.ReadLine();
                if (sLine != null)
                {
                    //TxtResultado.AppendText($"{i}:{sLine}");
                    TxtResultado.AppendText($"{sLine}");
                }
            }

            string resultado = TxtResultado.Text;


            //JavaScriptSerializer js = new JavaScriptSerializer();
            //dynamic blogObject = js.Deserialize<dynamic>(resultado);
            //string name = blogObject["Name"];
            //string description = blogObject["Description"];


            //dynamic jsonObj = JsonConvert.DeserializeObject(resultado);
            //var numero = jsonObj[1]["numero"].ToString();

            ObjetoJson objJson = JsonConvert.DeserializeObject <ObjetoJson>(resultado);
            string     name    = objJson.Nombre;


            //var personaIntermedioObject = JObject.Parse(resultado);
            //System.Collections.Generic.Dictionary<string, object> dic = new System.Collections.Generic.Dictionary<string, object>();
            ////foreach (JProperty obj in personaIntermedioObject.Properties())
            //    foreach (JProperty obj in personaIntermedioObject.Properties())
            //    {
            //    dic.Add(obj.Name, obj.Value);
            //    // O bien, imprimirlos en consola:
            //    Console.WriteLine("Clave: {0} | Valor: {1}", obj.Name, obj.Value.ToString());
            //}
        }
Ejemplo n.º 2
0
 private void lista_Erros(int item, string mensagem)
 {
     TxtResultado.AppendText("** NOTA FISCAL: " + lstPedido[item].nfiscal + " **" + Environment.NewLine);
     TxtResultado.AppendText(mensagem + Environment.NewLine + Environment.NewLine);
     TxtResultado.ForeColor = Color.Maroon;
 }
Ejemplo n.º 3
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;
            }
        }