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()); //} }
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; }
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; } }