protected void ComprobantesGridView_RowCommand(object sender, GridViewCommandEventArgs e) { FeaEntidades.InterFacturas.lote_comprobantes lote = new FeaEntidades.InterFacturas.lote_comprobantes(); System.Xml.Serialization.XmlSerializer x; int item = Convert.ToInt32(e.CommandArgument); List <Entidades.Comprobante> lista = (List <Entidades.Comprobante>)ViewState["Comprobantes"]; Entidades.Comprobante comprobante = lista[item]; switch (e.CommandName) { case "Seleccionar": Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); string script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); break; case "XML": ////Generar Lote //lote = GenerarLote(false); ////Grabar en base de datos //RN.Comprobante c = new RN.Comprobante(); //lote.cabecera_lote.DestinoComprobante = "ITF"; //lote.comprobante[0].cabecera.informacion_comprobante.Observacion = ""; //c.Registrar(lote, null, "ITF", ((Entidades.Sesion)Session["Sesion"])); x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(comprobante.Cuit); sb.Append("-"); sb.Append(comprobante.NroPuntoVta.ToString("0000")); sb.Append("-"); sb.Append(comprobante.TipoComprobante.Id.ToString("00")); sb.Append("-"); sb.Append(comprobante.Nro.ToString("00000000")); sb.Append(".xml"); //System.IO.MemoryStream m = new System.IO.MemoryStream(); //System.IO.StreamWriter sw = new System.IO.StreamWriter(m); //sw.Flush(); //System.Xml.XmlWriter writerdememoria = new System.Xml.XmlTextWriter(m, System.Text.Encoding.GetEncoding("ISO-8859-1")); System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); xmlDoc.LoadXml(comprobante.Request); xmlDoc.Save(Server.MapPath(@"~/Temp/" + sb.ToString())); //x.Serialize(writerdememoria, xmlDoc); //m.Seek(0, System.IO.SeekOrigin.Begin); //Descarga directa del XML //System.IO.FileStream fs = new System.IO.FileStream(Server.MapPath(@"~/Temp/" + sb.ToString()), System.IO.FileMode.Create); //m.WriteTo(fs); //fs.Close(); Server.Transfer("~/DescargaTemporarios.aspx?archivo=" + sb.ToString(), false); break; default: break; } }
protected void ComprobantesGridView_RowCommand(object sender, GridViewCommandEventArgs e) { FeaEntidades.InterFacturas.lote_comprobantes lote = new FeaEntidades.InterFacturas.lote_comprobantes(); System.Xml.Serialization.XmlSerializer x; int item = Convert.ToInt32(e.CommandArgument); List<Entidades.Comprobante> lista = (List<Entidades.Comprobante>)ViewState["Comprobantes"]; Entidades.Comprobante comprobante = lista[item]; switch (e.CommandName) { case "Seleccionar": Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); string script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); break; case "XML": ////Generar Lote //lote = GenerarLote(false); ////Grabar en base de datos //RN.Comprobante c = new RN.Comprobante(); //lote.cabecera_lote.DestinoComprobante = "ITF"; //lote.comprobante[0].cabecera.informacion_comprobante.Observacion = ""; //c.Registrar(lote, null, "ITF", ((Entidades.Sesion)Session["Sesion"])); x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(comprobante.Cuit); sb.Append("-"); sb.Append(comprobante.NroPuntoVta.ToString("0000")); sb.Append("-"); sb.Append(comprobante.TipoComprobante.Id.ToString("00")); sb.Append("-"); sb.Append(comprobante.Nro.ToString("00000000")); sb.Append(".xml"); //System.IO.MemoryStream m = new System.IO.MemoryStream(); //System.IO.StreamWriter sw = new System.IO.StreamWriter(m); //sw.Flush(); //System.Xml.XmlWriter writerdememoria = new System.Xml.XmlTextWriter(m, System.Text.Encoding.GetEncoding("ISO-8859-1")); System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); xmlDoc.LoadXml(comprobante.Request); xmlDoc.Save(Server.MapPath(@"~/Temp/" + sb.ToString())); //x.Serialize(writerdememoria, xmlDoc); //m.Seek(0, System.IO.SeekOrigin.Begin); //Descarga directa del XML //System.IO.FileStream fs = new System.IO.FileStream(Server.MapPath(@"~/Temp/" + sb.ToString()), System.IO.FileMode.Create); //m.WriteTo(fs); //fs.Close(); Server.Transfer("~/DescargaTemporarios.aspx?archivo=" + sb.ToString(), false); break; default: break; } }
private void LeerFormatoDetalleIBK(EventArgs e, FeaEntidades.InterFacturas.lote_comprobantes lc, System.IO.MemoryStream ms) { //Formato detalle_factura IBK ms.Seek(0, System.IO.SeekOrigin.Begin); FeaEntidades.InterFacturas.comprobante c = new FeaEntidades.InterFacturas.comprobante(); System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(c.GetType()); c = (FeaEntidades.InterFacturas.comprobante)x.Deserialize(ms); FeaEntidades.InterFacturas.comprobante[] cArray = new FeaEntidades.InterFacturas.comprobante[1]; cArray[0] = c; lc.comprobante = cArray; Session["ComprobanteAConsultar"] = lc; Entidades.Comprobante comprobante = new Entidades.Comprobante(); string XML = ""; RN.Comprobante.SerializarLc(out XML, lc); comprobante.Request = XML; Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); string script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); }
protected void ComprobantesGridView_RowCommand(object sender, GridViewCommandEventArgs e) { MensajeLabel.Text = ""; int item = Convert.ToInt32(e.CommandArgument); List<Entidades.Comprobante> lista = (List<Entidades.Comprobante>)ViewState["Comprobantes"]; Entidades.Comprobante comprobante = lista[item]; string script; Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"]; string DetalleIBKUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["DetalleIBKUtilizarServidorExterno"]; org.dyndns.cedweb.detalle.DetalleIBK clcdyndns = new org.dyndns.cedweb.detalle.DetalleIBK(); org.dyndns.cedweb.detalle.cecd cecd = new org.dyndns.cedweb.detalle.cecd(); List<FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado> listaR = new List<FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado>(); switch (e.CommandName) { case "Consulta": Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); break; } }
private void LeerFormatoLoteIBK(EventArgs e, FeaEntidades.InterFacturas.lote_comprobantes lc, System.IO.MemoryStream ms) { try { //Formato Lote IBK ms.Seek(0, System.IO.SeekOrigin.Begin); FeaEntidades.InterFacturas.XML.consulta_lote_comprobantes_response clr = new FeaEntidades.InterFacturas.XML.consulta_lote_comprobantes_response(); System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(clr.GetType()); clr = (FeaEntidades.InterFacturas.XML.consulta_lote_comprobantes_response)x.Deserialize(ms); lc = clr.consulta_lote_response.lote_comprobantes; Entidades.Comprobante comprobante = new Entidades.Comprobante(); string XML = ""; RN.Comprobante.SerializarLc(out XML, lc); comprobante.Request = XML; Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); string script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch { MensajeLabel.Text = "El archivo no cumple con el esquema de Interfacturas"; } }
protected void AccionDropDownList_SelectedIndexChanged(object sender, EventArgs e) { MensajeLabel.Text = String.Empty; DropDownList ddl = (DropDownList)sender; GridViewRow row = (GridViewRow)ddl.Parent.Parent; int item = row.RowIndex; List<Entidades.Comprobante> lista = (List<Entidades.Comprobante>)ViewState["Comprobantes"]; Entidades.Comprobante comprobante = lista[item]; string comando = ddl.SelectedValue; ddl.ClearSelection(); FeaEntidades.InterFacturas.lote_comprobantes lote; Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"]; string certificado; string DetalleIBKUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["DetalleIBKUtilizarServidorExterno"]; org.dyndns.cedweb.detalle.DetalleIBK clcdyndns = new org.dyndns.cedweb.detalle.DetalleIBK(); org.dyndns.cedweb.detalle.cecd cecd = new org.dyndns.cedweb.detalle.cecd(); List<FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado> listaR = new List<FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado>(); System.Xml.Serialization.XmlSerializer x; byte[] bytes; System.IO.MemoryStream ms; string resp; string script; Session.Remove("ComprobanteATratar"); Session.Remove("EsComprobanteOriginal"); switch (comando) { case "ActualizarOnLine": #region ActualizarOnLine try { if (comprobante.NaturalezaComprobante.Id == "Venta") { if (comprobante.Estado == "Vigente") { MensajeLabel.Text = "El comprobante ya está vigente. No es posible actualizar su estado."; return; } if (comprobante.IdDestinoComprobante == "ITF") { if (sesion.Cuit.NroSerieCertifITF.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), "Consulta de Lote CUIT: " + comprobante.Cuit + " Nro.Lote: " + comprobante.NroLote + " Nro. Punto de Vta.: " + comprobante.NroPuntoVta); RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), "NroSerieCertifITF: " + sesion.Cuit.NroSerieCertifITF); certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(sesion.Cuit.NroSerieCertifITF, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); org.dyndns.cedweb.consulta.ConsultaIBK clcdyndnsConsultaIBK = new org.dyndns.cedweb.consulta.ConsultaIBK(); string ConsultaIBKUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKUtilizarServidorExterno"]; RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), "Parametro ConsultaIBKUtilizarServidorExterno: " + ConsultaIBKUtilizarServidorExterno); if (ConsultaIBKUtilizarServidorExterno == "SI") { clcdyndnsConsultaIBK.Url = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]; RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), "Parametro ConsultaIBKurl: " + System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]); } org.dyndns.cedweb.consulta.ConsultarResult clcrdyndns = new org.dyndns.cedweb.consulta.ConsultarResult(); clcrdyndns = clcdyndnsConsultaIBK.Consultar(Convert.ToInt64(comprobante.Cuit), comprobante.NroLote, comprobante.NroPuntoVta, certificado); FeaEntidades.InterFacturas.lote_comprobantes lc = new FeaEntidades.InterFacturas.lote_comprobantes(); lc = Funciones.Ws2Fea(clcrdyndns); string XML = ""; RN.Comprobante.SerializarLc(out XML, lc); comprobante.Response = XML; if (lc.cabecera_lote.resultado == "A") { //Controlar que sea el mismo comprobante (local vs on-line) if (comprobante.Nro != lc.comprobante[0].cabecera.informacion_comprobante.numero_comprobante) { MensajeLabel.Text = "(Campo: Nro. de Comprobante). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. No se puede actualizar el estado."; return; } if (comprobante.TipoComprobante.Id != lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante) { MensajeLabel.Text = "(Campo: Tipo de Comprobante). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. No se puede actualizar el estado."; return; } if (comprobante.Importe != lc.comprobante[0].resumen.importe_total_factura) { MensajeLabel.Text += "(Campo: Importe). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. Igualmente se pudo actualizar la información y el estado."; comprobante.Importe = lc.comprobante[0].resumen.importe_total_factura; } if (comprobante.Moneda != lc.comprobante[0].resumen.codigo_moneda) { MensajeLabel.Text += "(Campo: Moneda). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. Igualmente se pudo actualizar la información y el estado."; comprobante.Moneda = lc.comprobante[0].resumen.codigo_moneda; } if (lc.comprobante[0].resumen.importes_moneda_origen != null) { if (comprobante.ImporteMoneda != lc.comprobante[0].resumen.importes_moneda_origen.importe_total_factura) { MensajeLabel.Text += "(Campo: Importe Moneda). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. Igualmente se pudo actualizar la información y el estado."; comprobante.ImporteMoneda = lc.comprobante[0].resumen.importes_moneda_origen.importe_total_factura; } } else { if (comprobante.ImporteMoneda != 0) { MensajeLabel.Text += "(Campo: Importe Moneda). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. Igualmente se pudo actualizar la información y el estado."; comprobante.ImporteMoneda = 0; } } if (comprobante.TipoCambio != lc.comprobante[0].resumen.tipo_de_cambio) { MensajeLabel.Text += "(Campo: Tipo de cambio). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. Igualmente se pudo actualizar la información y el estado."; comprobante.TipoCambio = lc.comprobante[0].resumen.tipo_de_cambio; } //if (comprobante.Fecha != lc.comprobante[0].cabecera.informacion_comprobante.fecha_emision) //{ // MensajeLabel.Text += "(Campo: Tipo de cambio). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. Igualmente se pudo actualizar la información y el estado."; // comprobante.Fecha = lc.comprobante[0].resumen.fecha_emision; //} //if (comprobante.Fecha != lc.comprobante[0].cabecera.informacion_comprobante.fecha_vencimiento) //{ // MensajeLabel.Text += "(Campo: Tipo de cambio). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. Igualmente se pudo actualizar la información y el estado."; // comprobante.FechaVto = lc.comprobante[0].resumen.fecha_vencimiento; //} if (comprobante.Documento.Tipo.Id != lc.comprobante[0].cabecera.informacion_comprador.codigo_doc_identificatorio.ToString()) { MensajeLabel.Text += "(Campo: Cod.Doc). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. Igualmente se pudo actualizar la información y el estado."; comprobante.Documento.Tipo.Id = lc.comprobante[0].cabecera.informacion_comprador.codigo_doc_identificatorio.ToString(); } if (comprobante.Documento.Nro != lc.comprobante[0].cabecera.informacion_comprador.nro_doc_identificatorio) { MensajeLabel.Text += "(Campo: Nro.Doc). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. Igualmente se pudo actualizar la información y el estado."; comprobante.Documento.Nro = lc.comprobante[0].cabecera.informacion_comprador.nro_doc_identificatorio; } comprobante.WF.Estado = "Vigente"; RN.Comprobante.Actualizar(comprobante, (Entidades.Sesion)Session["Sesion"]); Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); script = "window.open('/ComprobanteConsulta.aspx', '');"; BuscarButton_Click(sender, new EventArgs()); RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), script); ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } else if (lc.cabecera_lote.resultado == "R") { comprobante.WF.Estado = "Rechazado"; RN.Comprobante.Actualizar(comprobante, (Entidades.Sesion)Session["Sesion"]); string motivo = ""; if (lc.cabecera_lote.motivo != null) { motivo = "Motivo: " + lc.cabecera_lote.motivo; } if (lc.comprobante != null && lc.comprobante[0].cabecera.informacion_comprobante.motivo != null) { if (motivo != "") { motivo += " "; } motivo += "Motivo del comprobante: " + lc.comprobante[0].cabecera.informacion_comprobante.motivo; } script = Funciones.TextoScript("Respuesta de ITF o AFIP: " + "Resultado: " + lc.cabecera_lote.resultado + " " + motivo); RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), script); MensajeLabel.Text = script; //ScriptManager.RegisterStartupScript(this, typeof(Page), "Message", script, true); } else { MensajeLabel.Text = "No se puede realizar la actualización, cuando el comprobante se encuentra en el siguiente estado en Interfacturas ( Estado: " + clcrdyndns.comprobante[0].cabecera.informacion_comprobante.resultado + ")."; return; } } else { string respuesta = ""; //Deserializar FeaEntidades.InterFacturas.lote_comprobantes lcFea = new FeaEntidades.InterFacturas.lote_comprobantes(); string xml = comprobante.Request; var serializer = new System.Xml.Serialization.XmlSerializer(typeof(FeaEntidades.InterFacturas.lote_comprobantes)); using (TextReader reader = new StringReader(xml)) { lcFea = (FeaEntidades.InterFacturas.lote_comprobantes)serializer.Deserialize(reader); } string caeNro; string caeFecVto; string caeFecPro; respuesta = RN.ComprobanteAFIP.ConsultarAFIP(out caeNro, out caeFecVto, out caeFecPro, lcFea, (Entidades.Sesion)Session["Sesion"]); if (respuesta.Length >= 12 && respuesta.Substring(0, 12) == "Resultado: A") { comprobante.WF.Estado = "Vigente"; if (caeNro != "") { lcFea.cabecera_lote.resultado = "A"; lcFea.comprobante[0].cabecera.informacion_comprobante.resultado = "A"; lcFea.comprobante[0].cabecera.informacion_comprobante.cae = caeNro; lcFea.comprobante[0].cabecera.informacion_comprobante.caeSpecified = true; lcFea.comprobante[0].cabecera.informacion_comprobante.fecha_vencimiento_cae = caeFecVto; lcFea.comprobante[0].cabecera.informacion_comprobante.fecha_vencimiento_caeSpecified = true; lcFea.comprobante[0].cabecera.informacion_comprobante.fecha_obtencion_cae = caeFecPro; lcFea.comprobante[0].cabecera.informacion_comprobante.fecha_obtencion_caeSpecified = true; } string XML = ""; RN.Comprobante.SerializarLc(out XML, lcFea); comprobante.Response = XML; RN.Comprobante.Actualizar(comprobante, (Entidades.Sesion)Session["Sesion"]); Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); script = "window.open('/ComprobanteConsulta.aspx', '');"; BuscarButton_Click(sender, new EventArgs()); RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), script); ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } else { MensajeLabel.Text = respuesta; } } } else { MensajeLabel.Text = "Esta opción está disponible sólo para comprobantes de venta electrónica"; } } catch (System.Web.Services.Protocols.SoapException soapEx) { try { XmlDocument doc = new XmlDocument(); doc.LoadXml(soapEx.Detail.OuterXml); XmlNamespaceManager nsManager = new XmlNamespaceManager(doc.NameTable); nsManager.AddNamespace("errorNS", "http://www.cedeira.com.ar/webservices"); XmlNode Node = doc.DocumentElement.SelectSingleNode("errorNS:Error", nsManager); string errorNumber = Node.SelectSingleNode("errorNS:ErrorNumber", nsManager).InnerText; string errorMessage = Node.SelectSingleNode("errorNS:ErrorMessage", nsManager).InnerText; string errorSource = Node.SelectSingleNode("errorNS:ErrorSource", nsManager).InnerText; MensajeLabel.Text = soapEx.Actor + "\\n" + errorMessage.Replace("\r", "").Replace("\n", ""); } catch (Exception) { throw soapEx; } } #endregion break; case "PDF-Viewer": #region PDF-Viewer if (comprobante.NaturalezaComprobante.Id == "Venta" && comprobante.IdDestinoComprobante == "ITF") { if (comprobante.Estado != "Vigente") { MensajeLabel.Text = "El comprobante no está vigente."; return; } MensajeLabel.Text = String.Empty; cecd.cuit_canal = Convert.ToInt64("30690783521"); cecd.cuit_vendedor = Convert.ToInt64(comprobante.Cuit); cecd.punto_de_venta = Convert.ToInt32(comprobante.NroPuntoVta); cecd.tipo_de_comprobante = Convert.ToInt32(comprobante.TipoComprobante.Id); cecd.numero_comprobante = comprobante.Nro; cecd.id_Lote = 0; cecd.id_LoteSpecified = false; cecd.estado = "PR"; if (sesion.Cuit.NroSerieCertifITF.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } GrabarLogTexto("~/Detallar.txt", "Consulta de Lote CUIT: " + sesion.Cuit.Nro + " Fecha Desde: " + FechaDesdeTextBox.Text + " Fecha Hasta: " + FechaHastaTextBox.Text); GrabarLogTexto("~/Detallar.txt", "NroSerieCertifITF: " + sesion.Cuit.NroSerieCertifITF); if (sesion.Cuit.NroSerieCertifITF.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(sesion.Cuit.NroSerieCertifITF, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); GrabarLogTexto("~/Detallar.txt", "Parametro DetalleIBKUtilizarServidorExterno: " + DetalleIBKUtilizarServidorExterno); if (DetalleIBKUtilizarServidorExterno == "SI") { clcdyndns.Url = System.Configuration.ConfigurationManager.AppSettings["DetalleIBKurl"]; GrabarLogTexto("~/Detallar.txt", "Parametro DetalleIBKurl: " + System.Configuration.ConfigurationManager.AppSettings["DetalleIBKurl"]); } resp = clcdyndns.DetallarIBK(cecd, certificado); try { string comprobanteXML = resp; GrabarLogTexto("~/Detallar.txt", "Inicia ExecuteCommand"); org.dyndns.cedweb.generoPDF.GeneroPDF pdfdyndns = new org.dyndns.cedweb.generoPDF.GeneroPDF(); string GenerarPDFUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["GenerarPDFUtilizarServidorExterno"]; GrabarLogTexto("~/Detallar.txt", "Parametro GenerarPDFUtilizarServidorExterno: " + GenerarPDFUtilizarServidorExterno); if (GenerarPDFUtilizarServidorExterno == "SI") { pdfdyndns.Url = System.Configuration.ConfigurationManager.AppSettings["GenerarPDFurl"]; GrabarLogTexto("~/Detallar.txt", "Parametro GenerarPDFurl: " + System.Configuration.ConfigurationManager.AppSettings["DetalleIBKurl"]); } string RespPDF = pdfdyndns.GenerarPDF(comprobante.Cuit, comprobante.NroPuntoVta, comprobante.TipoComprobante.Id, comprobante.Nro, comprobante.IdDestinoComprobante, comprobanteXML); GrabarLogTexto("~/Detallar.txt", "Finaliza ExecuteCommand"); script = "window.open('" + RespPDF + "', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (Exception ex) { script = "Problemas para generar el PDF.\\n" + ex.Message; script += ex.StackTrace; if (ex.InnerException != null) { script = ex.InnerException.Message; } RN.Sesion.GrabarLogTexto(Server.MapPath("~/Detallar.txt"), script); MensajeLabel.Text = script; } } else { MensajeLabel.Text = "Esta opción está disponible sólo para comprobantes de venta electrónica, canal ITF (Interfacturas)"; } #endregion break; case "XML-ClonarAlta": #region XML-ClonarAlta if (comprobante.NaturalezaComprobante.Id == "Venta" || comprobante.NaturalezaComprobante.Id == "Compra") { Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Clonado, comprobante); script = "window.open('/Facturacion/Electronica/Lote.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } else { MensajeLabel.Text = "Esta opción está disponible sólo para comprobantes de venta electrónica o compras."; } #endregion break; case "PDF": if (comprobante.NaturalezaComprobante.Id == "Venta") { if (comprobante.IdDestinoComprobante == "ITF") { #region PDF (InterFacturas) //OBTENCIÓN DE PDF DE INTERFACTURAS if (comprobante.Estado != "Vigente") { MensajeLabel.Text = "El comprobante no está vigente."; return; } MensajeLabel.Text = String.Empty; //<?xml version=\"1.0\" encoding=\"iso-8859-1\"?><lote_comprobantes xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://lote.schemas.cfe.ib.com.ar/\"><cabecera_lote><id_lote>20140804151246</id_lote><cuit_canal>30690783521</cuit_canal><cuit_vendedor>30710015062</cuit_vendedor><cantidad_reg>1</cantidad_reg><punto_de_venta>35</punto_de_venta><resultado>A</resultado></cabecera_lote><comprobante><cabecera><informacion_comprobante><tipo_de_comprobante>1</tipo_de_comprobante><numero_comprobante>57</numero_comprobante><punto_de_venta>35</punto_de_venta><fecha_emision>20140804</fecha_emision><fecha_vencimiento>20140831</fecha_vencimiento><fecha_serv_desde /><fecha_serv_hasta /><condicion_de_pago>30 //Off-Line //resp = comprobante.Response.Replace("iso-8859-1", "utf-8"); //resp = resp.Replace("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"", ""); //Fin Off-Line //On-Line cecd.cuit_canal = Convert.ToInt64("30690783521"); cecd.cuit_vendedor = Convert.ToInt64(comprobante.Cuit); cecd.punto_de_venta = Convert.ToInt32(comprobante.NroPuntoVta); cecd.tipo_de_comprobante = Convert.ToInt32(comprobante.TipoComprobante.Id); cecd.numero_comprobante = comprobante.Nro; cecd.id_Lote = 0; cecd.id_LoteSpecified = false; cecd.estado = "PR"; if (sesion.Cuit.NroSerieCertifITF.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } GrabarLogTexto("~/Detallar.txt", "Consulta de Lote CUIT: " + sesion.Cuit.Nro + " Fecha Desde: " + FechaDesdeTextBox.Text + " Fecha Hasta: " + FechaHastaTextBox.Text); GrabarLogTexto("~/Detallar.txt", "NroSerieCertifITF: " + sesion.Cuit.NroSerieCertifITF); if (sesion.Cuit.NroSerieCertifITF.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(sesion.Cuit.NroSerieCertifITF, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); GrabarLogTexto("~/Detallar.txt", "Parametro DetalleIBKUtilizarServidorExterno: " + DetalleIBKUtilizarServidorExterno); if (DetalleIBKUtilizarServidorExterno == "SI") { clcdyndns.Url = System.Configuration.ConfigurationManager.AppSettings["DetalleIBKurl"]; GrabarLogTexto("~/Detallar.txt", "Parametro DetalleIBKurl: " + System.Configuration.ConfigurationManager.AppSettings["DetalleIBKurl"]); } resp = clcdyndns.DetallarIBK(cecd, certificado); resp = resp.Replace(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"", ""); resp = resp.Replace(" xmlns:xsi=\"http://lote.schemas.cfe.ib.com.ar/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"", " xmlns=\"http://lote.schemas.cfe.ib.com.ar/\""); //Fin On-Line try { string comprobanteXML = resp; GrabarLogTexto("~/Detallar.txt", "Inicia ExecuteCommand"); org.dyndns.cedweb.generoPDF.GeneroPDF pdfdyndns = new org.dyndns.cedweb.generoPDF.GeneroPDF(); string GenerarPDFUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["GenerarPDFUtilizarServidorExterno"]; GrabarLogTexto("~/Detallar.txt", "Parametro GenerarPDFUtilizarServidorExterno: " + GenerarPDFUtilizarServidorExterno); if (GenerarPDFUtilizarServidorExterno == "SI") { pdfdyndns.Url = System.Configuration.ConfigurationManager.AppSettings["GenerarPDFurl"]; GrabarLogTexto("~/Detallar.txt", "Parametro GenerarPDFurl: " + System.Configuration.ConfigurationManager.AppSettings["DetalleIBKurl"]); } string RespPDF = pdfdyndns.GenerarPDF(comprobante.Cuit, comprobante.NroPuntoVta, comprobante.TipoComprobante.Id, comprobante.Nro, comprobante.IdDestinoComprobante, comprobanteXML); GrabarLogTexto("~/Detallar.txt", "Finaliza ExecuteCommand"); //Crear nombre de archivo default sin extensión System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(comprobante.Cuit); sb.Append("-"); sb.Append(comprobante.NroPuntoVta.ToString("0000")); sb.Append("-"); sb.Append(comprobante.TipoComprobante.Id.ToString("00")); sb.Append("-"); sb.Append(comprobante.Nro.ToString("00000000")); sb.Append(".pdf"); string url = RespPDF; string filename = sb.ToString(); String dlDir = @"~/TempRender/"; new System.Net.WebClient().DownloadFile(url, Server.MapPath(dlDir + filename)); script = "window.open('DescargaTemporarios.aspx?archivo=" + sb.ToString() + "&path=" + @"~/TempRender/" + "', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (Exception ex) { script = "Problemas para generar el PDF.\\n" + ex.Message; script += ex.StackTrace; if (ex.InnerException != null) { script = ex.InnerException.Message; } RN.Sesion.GrabarLogTexto(Server.MapPath("~/Detallar.txt"), script); MensajeLabel.Text = script; } #endregion } else { #region PDF (AFIP) //GENERACIÓN DE PDF A PARTIR DE DATOS LOCALES lote = new FeaEntidades.InterFacturas.lote_comprobantes(); x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); if (comprobante.Estado != "Vigente") { MensajeLabel.Text = "El comprobante no está vigente."; return; } try { comprobante.Response = comprobante.Response.Replace("iso-8859-1", "utf-16"); bytes = new byte[comprobante.Response.Length * sizeof(char)]; System.Buffer.BlockCopy(comprobante.Response.ToCharArray(), 0, bytes, 0, bytes.Length); ms = new System.IO.MemoryStream(bytes); ms.Seek(0, System.IO.SeekOrigin.Begin); lote = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); //comprobante.Request = comprobante.Request.Replace("iso-8859-1", "utf-16"); //bytes = new byte[comprobante.Request.Length * sizeof(char)]; //System.Buffer.BlockCopy(comprobante.Request.ToCharArray(), 0, bytes, 0, bytes.Length); //ms = new System.IO.MemoryStream(bytes); //ms.Seek(0, System.IO.SeekOrigin.Begin); //lote = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); RN.Comprobante.AjustarLoteParaImprimirPDF(lote); Session["lote"] = lote; //Response.Redirect("~\\Facturacion\\Electronica\\Reportes\\FacturaWebForm.aspx", true); script = "window.open('/Facturacion/Electronica/Reportes/FacturaWebForm.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (Exception ex) { script = "Problemas para generar el PDF.\\n" + ex.Message; RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), script); MensajeLabel.Text = script; } #endregion } } else { MensajeLabel.Text = "Esta opción está disponible sólo para comprobantes de venta electrónica"; } break; case "XMLOnLine": #region XMLOnLine if (comprobante.NaturalezaComprobante.Id == "Venta" && comprobante.IdDestinoComprobante == "ITF") { if (comprobante.Estado != "Vigente") { MensajeLabel.Text = "El comprobante no está vigente."; return; } MensajeLabel.Text = String.Empty; Entidades.Persona persona = ((List<Entidades.Persona>)ViewState["Personas"])[ClienteDropDownList.SelectedIndex]; //resp = RN.Comprobante.ComprobanteDetalleIBK(((Entidades.Sesion)Session["Sesion"]).Cuit.Nro, comprobante.NroPuntoVta.ToString(), comprobante.TipoComprobante.Id.ToString(), comprobante.Nro, 0, ((Entidades.Sesion)Session["Sesion"]).Cuit.NroSerieCertifITF); cecd.cuit_canal = Convert.ToInt64("30690783521"); cecd.cuit_vendedor = Convert.ToInt64(comprobante.Cuit); cecd.punto_de_venta = Convert.ToInt32(comprobante.NroPuntoVta); cecd.tipo_de_comprobante = Convert.ToInt32(comprobante.TipoComprobante.Id); cecd.numero_comprobante = comprobante.Nro; cecd.id_Lote = 0; cecd.id_LoteSpecified = false; cecd.estado = "PR"; if (sesion.Cuit.NroSerieCertifITF.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } GrabarLogTexto("~/Detallar.txt", "Consulta de Lote CUIT: " + sesion.Cuit.Nro + " Fecha Desde: " + FechaDesdeTextBox.Text + " Fecha Hasta: " + FechaHastaTextBox.Text); GrabarLogTexto("~/Detallar.txt", "NroSerieCertifITF: " + sesion.Cuit.NroSerieCertifITF); if (sesion.Cuit.NroSerieCertifITF.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(sesion.Cuit.NroSerieCertifITF, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); GrabarLogTexto("~/Detallar.txt", "Parametro DetalleIBKUtilizarServidorExterno: " + DetalleIBKUtilizarServidorExterno); if (DetalleIBKUtilizarServidorExterno == "SI") { clcdyndns.Url = System.Configuration.ConfigurationManager.AppSettings["DetalleIBKurl"]; GrabarLogTexto("~/Detallar.txt", "Parametro DetalleIBKurl: " + System.Configuration.ConfigurationManager.AppSettings["DetalleIBKurl"]); } resp = clcdyndns.DetallarIBK(cecd, certificado); try { string comprobanteXML = resp; System.Text.StringBuilder sbXMLData = new System.Text.StringBuilder(); sbXMLData.AppendLine(comprobanteXML); //Crear nombre de archivo default sin extensión System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(comprobante.Cuit); sb.Append("-"); sb.Append(comprobante.NroPuntoVta.ToString("0000")); sb.Append("-"); sb.Append(comprobante.TipoComprobante.Id.ToString("00")); sb.Append("-"); sb.Append(comprobante.Nro.ToString("00000000")); //Crear nombre de archivo XML System.Text.StringBuilder sbXML = new System.Text.StringBuilder(); sbXML.Append(sb.ToString() + ".xml"); //Crear archivo comprobante XML System.IO.MemoryStream m = new System.IO.MemoryStream(); System.IO.FileStream fs = new System.IO.FileStream(Server.MapPath(@"~/Temp/" + sbXML.ToString()), System.IO.FileMode.Create); m.WriteTo(fs); fs.Close(); //Grabar información comprobante XML using (StreamWriter outfile = new StreamWriter(Server.MapPath(@"~/Temp/" + sbXML.ToString()))) { outfile.Write(sbXMLData.ToString()); } script = "window.open('DescargaTemporarios.aspx?archivo=" + sbXML.ToString() + "', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (Exception ex) { script = "Problemas para generar el XML.\\n" + ex.Message; script += ex.StackTrace; if (ex.InnerException != null) { script = ex.InnerException.Message; } RN.Sesion.GrabarLogTexto(Server.MapPath("~/Detallar.txt"), script); MensajeLabel.Text += script; } } else { MensajeLabel.Text = "Esta opción está disponible sólo para comprobantes de venta electrónica, canal ITF (Interfacturas)"; } #endregion break; case "XMLLocal": if (comprobante.NaturalezaComprobante.Id == "Venta") { try { //Crear nombre de archivo default sin extensión System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(comprobante.Cuit); sb.Append("-"); sb.Append(comprobante.NroPuntoVta.ToString("0000")); sb.Append("-"); sb.Append(comprobante.TipoComprobante.Id.ToString("00")); sb.Append("-"); sb.Append(comprobante.Nro.ToString("00000000")); System.Text.StringBuilder sbXMLData; if (comprobante.Estado != "Vigente") { sbXMLData = new System.Text.StringBuilder(); sbXMLData.AppendLine(comprobante.Request); sb.Append("-BORRADOR"); MensajeLabel.Text = "El comprobante no está vigente. Usted está descargando un XML de BORRADOR."; } else { sbXMLData = new System.Text.StringBuilder(); sbXMLData.AppendLine(comprobante.Response); } //Crear nombre de archivo XML System.Text.StringBuilder sbXML = new System.Text.StringBuilder(); sbXML.Append(sb.ToString() + ".xml"); //Crear archivo comprobante XML System.IO.MemoryStream m = new System.IO.MemoryStream(); System.IO.FileStream fs = new System.IO.FileStream(Server.MapPath(@"~/Temp/" + sbXML.ToString()), System.IO.FileMode.Create); m.WriteTo(fs); fs.Close(); //Grabar información comprobante XML using (StreamWriter outfile = new StreamWriter(Server.MapPath(@"~/Temp/" + sbXML.ToString()))) { outfile.Write(sbXMLData.ToString()); } script = "window.open('DescargaTemporarios.aspx?archivo=" + sbXML.ToString() + "', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (Exception ex) { script = "Problemas para generar el XML.\\n" + ex.Message; script += ex.StackTrace; if (ex.InnerException != null) { script = ex.InnerException.Message; } RN.Sesion.GrabarLogTexto(Server.MapPath("~/Detallar.txt"), script); MensajeLabel.Text += script; } } break; case "ExportarRG2485": #region ExportarRG2485 if (comprobante.NaturalezaComprobante.Id == "Venta") { lote = new FeaEntidades.InterFacturas.lote_comprobantes(); x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); if (comprobante.Estado != "Vigente") { MensajeLabel.Text = "El comprobante no está vigente."; return; } try { comprobante.Response = comprobante.Response.Replace("iso-8859-1", "utf-16"); bytes = new byte[comprobante.Response.Length * sizeof(char)]; System.Buffer.BlockCopy(comprobante.Response.ToCharArray(), 0, bytes, 0, bytes.Length); ms = new System.IO.MemoryStream(bytes); ms.Seek(0, System.IO.SeekOrigin.Begin); lote = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); //Crear nombre de archivo default sin extensión System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(lote.cabecera_lote.cuit_vendedor); sb.Append("-"); sb.Append(lote.cabecera_lote.punto_de_venta.ToString("0000")); sb.Append("-"); sb.Append(lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante.ToString("00")); sb.Append("-"); sb.Append(lote.comprobante[0].cabecera.informacion_comprobante.numero_comprobante.ToString("00000000")); //Crear nombre de archivo ZIP System.Text.StringBuilder sbZIP = new System.Text.StringBuilder(); sbZIP.Append(sb.ToString() + ".zip"); //Crear archivo CABECERA EMISOR System.Text.StringBuilder sbCabeceraE = new System.Text.StringBuilder(); sbCabeceraE.Append(sb.ToString() + "-CABECERA_EMISOR.txt"); System.IO.MemoryStream m = new System.IO.MemoryStream(); System.IO.FileStream fs = new System.IO.FileStream(Server.MapPath(@"~/Temp/" + sbCabeceraE.ToString()), System.IO.FileMode.Create); m.WriteTo(fs); fs.Close(); //Guardar info en archivo CABECERA EMISOR System.Text.StringBuilder sbDataCabeceraE = new System.Text.StringBuilder(); string Campo2 = String.Format("{0,11}", sesion.Cuit.Nro); string Campo3 = String.Format("{0,-30}", Truncate(sesion.Cuit.RazonSocial, 30)); string Campo4 = String.Format("{0,-30}", sesion.Cuit.DatosImpositivos.NroIngBrutos); string Campo5 = sesion.Cuit.DatosImpositivos.IdCondIVA.ToString("00"); string Campo6 = String.Format("{0,-30}", ""); try { string RespAux6 = FeaEntidades.CondicionesIVA.CondicionIVA.Lista().Find(delegate(FeaEntidades.CondicionesIVA.CondicionIVA ci) { return (ci.Codigo == sesion.Cuit.DatosImpositivos.IdCondIVA); }).Descr; Campo6 = String.Format("{0,-27}", Truncate(RespAux6, 27)); } catch { } string Campo7 = String.Format("{0,-8}", sesion.Cuit.DatosImpositivos.FechaInicioActividades.ToString("yyyyMMdd")); string Campo8 = String.Format("{0,-30}", sesion.Cuit.Domicilio.Calle); string Campo9 = String.Format("{0,-6}", sesion.Cuit.Domicilio.Nro); string Campo10 = String.Format("{0,-5}", sesion.Cuit.Domicilio.Piso); string Campo11 = String.Format("{0,-5}", sesion.Cuit.Domicilio.Depto); string Campo12 = String.Format("{0,-5}", sesion.Cuit.Domicilio.Sector); string Campo13 = String.Format("{0,-5}", sesion.Cuit.Domicilio.Torre); string Campo14 = String.Format("{0,-5}", sesion.Cuit.Domicilio.Manzana); string Campo15 = Convert.ToInt32(sesion.Cuit.Domicilio.Provincia.Id).ToString("00"); string Campo16 = String.Format("{0,-8}", sesion.Cuit.Domicilio.CodPost); string Campo17 = String.Format("{0,-25}", Truncate(sesion.Cuit.Domicilio.Localidad, 25)); sbDataCabeceraE.AppendLine("1" + Campo2 + Campo3 + Campo4 + Campo5 + Campo6 + Campo7 + Campo8 + Campo9 + Campo10 + Campo11 + Campo12 + Campo13 + Campo14 + Campo15 + Campo16 + Campo17); using (StreamWriter outfile = new StreamWriter(Server.MapPath(@"~/Temp/" + sbCabeceraE.ToString()))) { outfile.Write(sbDataCabeceraE.ToString()); } //Crear archivo CABECERA COMPROBANTE System.Text.StringBuilder sbCabeceraC = new System.Text.StringBuilder(); sbCabeceraC.Append(sb.ToString() + "-CABECERA_COMPROBANTE.txt"); m = new System.IO.MemoryStream(); fs = new System.IO.FileStream(Server.MapPath(@"~/Temp/" + sbCabeceraC.ToString()), System.IO.FileMode.Create); m.WriteTo(fs); fs.Close(); //Guardar info en archivo CABECERA COMPROBANTE System.Text.StringBuilder sbDataCabeceraC = new System.Text.StringBuilder(); Campo2 = "ORIGINAL"; Campo3 = String.Format("{0,-8}", lote.comprobante[0].cabecera.informacion_comprobante.fecha_emision); Campo4 = lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante.ToString("00"); if (Campo4 == "01" || Campo4 == "02" || Campo4 == "03" || Campo4 == "04" || Campo4 == "05" || Campo4 == "39" || Campo4 == "60" || Campo4 == "63") { Campo5 = "A"; } else if (Campo4 == "06" || Campo4 == "07" || Campo4 == "08" || Campo4 == "09" || Campo4 == "10" || Campo4 == "40" || Campo4 == "61" || Campo4 == "64") { Campo5 = "B"; } else { Campo5 = " "; } Campo6 = lote.comprobante[0].cabecera.informacion_comprobante.punto_de_venta.ToString("0000"); Campo7 = lote.comprobante[0].cabecera.informacion_comprobante.numero_comprobante.ToString("00000000"); Campo8 = lote.comprobante[0].cabecera.informacion_comprobante.numero_comprobante.ToString("00000000"); Campo9 = lote.comprobante[0].cabecera.informacion_comprador.codigo_doc_identificatorio.ToString("00"); Campo10 = lote.comprobante[0].cabecera.informacion_comprador.nro_doc_identificatorio.ToString("00000000000"); Campo11 = String.Format("{0,-30}", lote.comprobante[0].cabecera.informacion_comprador.denominacion); Campo12 = lote.comprobante[0].cabecera.informacion_comprador.condicion_IVA.ToString("00"); Campo13 = String.Format("{0,-30}", Truncate(lote.comprobante[0].cabecera.informacion_comprador.domicilio_calle, 30)); Campo14 = String.Format("{0,-6}", lote.comprobante[0].cabecera.informacion_comprador.domicilio_numero); Campo15 = String.Format("{0,-5}", lote.comprobante[0].cabecera.informacion_comprador.domicilio_piso); Campo16 = String.Format("{0,-5}", lote.comprobante[0].cabecera.informacion_comprador.domicilio_depto); Campo17 = String.Format("{0,-5}", lote.comprobante[0].cabecera.informacion_comprador.domicilio_sector); string Campo18 = String.Format("{0,-5}", lote.comprobante[0].cabecera.informacion_comprador.domicilio_torre); string Campo19 = String.Format("{0,-5}", lote.comprobante[0].cabecera.informacion_comprador.domicilio_manzana); string Campo20 = String.Format("{0,2}", lote.comprobante[0].cabecera.informacion_comprador.provincia); string Campo21 = String.Format("{0,-8}", lote.comprobante[0].cabecera.informacion_comprador.cp); string Campo22 = String.Format("{0,-25}", Truncate(lote.comprobante[0].cabecera.informacion_comprador.localidad, 25)); string Campo23 = String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_factura.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_factura.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo24 = String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_concepto_no_gravado.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_concepto_no_gravado.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo25 = String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_neto_gravado.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_neto_gravado.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo26 = String.Format("{0,16}", lote.comprobante[0].resumen.impuesto_liq.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.impuesto_liq.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo27 = String.Format("{0,16}", lote.comprobante[0].resumen.impuesto_liq_rni.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.impuesto_liq_rni.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo28 = String.Format("{0,16}", lote.comprobante[0].resumen.importe_operaciones_exentas.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.importe_operaciones_exentas.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo29 = String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_impuestos_nacionales.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_impuestos_nacionales.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo30 = String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_ingresos_brutos.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_ingresos_brutos.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo31 = String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_impuestos_municipales.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_impuestos_municipales.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo32 = String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_impuestos_internos.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].resumen.importe_total_impuestos_internos.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); string Campo33 = String.Format("{0,-3}", lote.comprobante[0].resumen.codigo_moneda); string Campo34 = String.Format("{0,11}", lote.comprobante[0].resumen.tipo_de_cambio.ToString(new string(Convert.ToChar("0"), 8) + ".00")).Substring(0, 8) + String.Format("{0,11}", lote.comprobante[0].resumen.tipo_de_cambio.ToString(new string(Convert.ToChar("0"), 8) + ".00")).Substring(9, 2); int CantAlicuotas = 0; if (lote.comprobante[0].resumen.cant_alicuotas_iva == 0) { if (lote.comprobante[0].resumen.impuestos != null) { for (int z = 0; z < lote.comprobante[0].resumen.impuestos.Length; z++) { if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 1) { CantAlicuotas += 1; } } } } else { CantAlicuotas = lote.comprobante[0].resumen.cant_alicuotas_iva; } string Campo35 = String.Format("{0,1}", CantAlicuotas); string Campo36 = String.Format("{0,1}", lote.comprobante[0].cabecera.informacion_comprobante.codigo_operacion); string Campo37 = String.Format("{0,-14}", lote.comprobante[0].cabecera.informacion_comprobante.cae); string Campo38 = String.Format("{0,-8}", lote.comprobante[0].cabecera.informacion_comprobante.fecha_vencimiento_cae); string Campo39 = String.Format("{0,8}", " "); sbDataCabeceraC.AppendLine("1" + Campo2 + Campo3 + Campo4 + Campo5 + Campo6 + Campo7 + Campo8 + Campo9 + Campo10 + Campo11 + Campo12 + Campo13 + Campo14 + Campo15 + Campo16 + Campo17 + Campo18 + Campo19 + Campo20 + Campo21 + Campo22 + Campo23 + Campo24 + Campo25 + Campo26 + Campo27 + Campo28 + Campo29 + Campo30 + Campo31 + Campo32 + Campo33 + Campo34 + Campo35 + Campo36 + Campo37 + Campo38 + Campo39); using (StreamWriter outfile = new StreamWriter(Server.MapPath(@"~/Temp/" + sbCabeceraC.ToString()))) { outfile.Write(sbDataCabeceraC.ToString()); } //Crear archivo DETALLE System.Text.StringBuilder sbDetalle = new System.Text.StringBuilder(); sbDetalle.Append(sb.ToString() + "-DETALLE.txt"); m = new System.IO.MemoryStream(); fs = new System.IO.FileStream(Server.MapPath(@"~/Temp/" + sbDetalle.ToString()), System.IO.FileMode.Create); m.WriteTo(fs); fs.Close(); //Guardar info en archivo DETALLE System.Text.StringBuilder sbDataDetalle = new System.Text.StringBuilder(); for (int i = 0; i < lote.comprobante[0].detalle.linea.Length; i++) { string descr = lote.comprobante[0].detalle.linea[i].descripcion; if (descr.Length > 0 && descr.Substring(0, 1) == "%") { descr = RN.Funciones.HexToString(descr); } Campo2 = String.Format("{0,-100}", Truncate(descr, 100)); //cantidad de 12 (7 + 5) Campo3 = String.Format("{0,13}", lote.comprobante[0].detalle.linea[i].cantidad.ToString(new string(Convert.ToChar("0"), 7) + ".00000")).Substring(0, 7) + String.Format("{0,13}", lote.comprobante[0].detalle.linea[i].cantidad.ToString(new string(Convert.ToChar("0"), 7) + ".00000")).Substring(8, 5); //ojo format Campo4 = Convert.ToInt32(lote.comprobante[0].detalle.linea[i].unidad).ToString("00"); Campo5 = String.Format("{0,17}", lote.comprobante[0].detalle.linea[i].precio_unitario.ToString(new string(Convert.ToChar("0"), 13) + ".000")).Substring(0, 13) + String.Format("{0,17}", lote.comprobante[0].detalle.linea[i].precio_unitario.ToString(new string(Convert.ToChar("0"), 13) + ".000")).Substring(14, 3); Campo6 = String.Format("{0,16}", lote.comprobante[0].detalle.linea[i].importe_total_descuentos.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(0, 13) + String.Format("{0,16}", lote.comprobante[0].detalle.linea[i].importe_total_descuentos.ToString(new string(Convert.ToChar("0"), 13) + ".00")).Substring(14, 2); //importe ajuste Campo7 = String.Format("{0,16}", new string(Convert.ToChar("0"), 16)); Campo8 = String.Format("{0,17}", lote.comprobante[0].detalle.linea[i].importe_total_articulo.ToString(new string(Convert.ToChar("0"), 13) + ".000")).Substring(0, 13) + String.Format("{0,17}", lote.comprobante[0].detalle.linea[i].importe_total_articulo.ToString(new string(Convert.ToChar("0"), 13) + ".000")).Substring(14, 3); Campo9 = String.Format("{0,5}", lote.comprobante[0].detalle.linea[i].alicuota_iva.ToString("00.00")).Substring(0, 2) + String.Format("{0,5}", lote.comprobante[0].detalle.linea[i].alicuota_iva.ToString("00.00")).Substring(3, 2); Campo10 = String.Format("{0,17}", lote.comprobante[0].detalle.linea[i].importe_iva.ToString(new string(Convert.ToChar("0"), 14) + ".00")).Substring(0, 14) + String.Format("{0,17}", lote.comprobante[0].detalle.linea[i].importe_iva.ToString(new string(Convert.ToChar("0"), 14) + ".00")).Substring(15, 2); Campo11 = String.Format("{0,1}", lote.comprobante[0].detalle.linea[i].indicacion_exento_gravado); sbDataDetalle.AppendLine("3" + Campo2 + Campo3 + Campo4 + Campo5 + Campo6 + Campo7 + Campo8 + Campo9 + Campo10 + Campo11); } using (StreamWriter outfile = new StreamWriter(Server.MapPath(@"~/Temp/" + sbDetalle.ToString()))) { outfile.Write(sbDataDetalle.ToString()); } //Descargar ZIP ( Cabecera Emisor, Cabecera Comprobante y Detalle ) string filename = sbZIP.ToString(); String dlDir = @"~/Temp/"; String path = Server.MapPath(dlDir + filename); System.IO.FileInfo toDownload = new System.IO.FileInfo(path); System.IO.FileInfo toCabeceraE = new System.IO.FileInfo(Server.MapPath(dlDir + sbCabeceraE.ToString())); System.IO.FileInfo toCabeceraC = new System.IO.FileInfo(Server.MapPath(dlDir + sbCabeceraC.ToString())); System.IO.FileInfo toDetalle = new System.IO.FileInfo(Server.MapPath(dlDir + sbDetalle.ToString())); using (ZipFile zip = new ZipFile()) { zip.AddFile(Server.MapPath(dlDir + sbCabeceraE.ToString()), ""); zip.AddFile(Server.MapPath(dlDir + sbCabeceraC.ToString()), ""); zip.AddFile(Server.MapPath(dlDir + sbDetalle.ToString()), ""); zip.Save(Server.MapPath(dlDir + filename)); toCabeceraE.Delete(); toCabeceraC.Delete(); toDetalle.Delete(); } if (toDownload.Exists) { script = "window.open('DescargaTemporarios.aspx?archivo=" + sbZIP.ToString() + "', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } else { WebForms.Excepciones.Redireccionar(new EX.Validaciones.ArchivoInexistente(filename), "~/NotificacionDeExcepcion.aspx"); } } catch (Exception ex) { script = "Problemas para generar la interfaz.\\n" + ex.Message + "\\n" + ex.StackTrace; RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), script); MensajeLabel.Text = script; } } else { MensajeLabel.Text = "Esta opción está disponible sólo para comprobantes de venta electrónica"; } #endregion break; case "ConsultarInterfacturas": #region ConsultarOnLine try { if (comprobante.NaturalezaComprobante.Id == "Venta" && comprobante.IdDestinoComprobante == "ITF") { string NroCertif = ((Entidades.Sesion)Session["Sesion"]).Cuit.NroSerieCertifITF; if (NroCertif.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), "Consulta de Lote CUIT: " + comprobante.Cuit + " Nro.Lote: " + comprobante.NroLote + " Nro. Punto de Vta.: " + comprobante.NroPuntoVta); RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), "NroSerieCertifITF: " + NroCertif); if (NroCertif.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(NroCertif, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); org.dyndns.cedweb.consulta.ConsultaIBK clcdyndns1 = new org.dyndns.cedweb.consulta.ConsultaIBK(); string ConsultaIBKUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKUtilizarServidorExterno"]; RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), "Parametro ConsultaIBKUtilizarServidorExterno: " + ConsultaIBKUtilizarServidorExterno); if (ConsultaIBKUtilizarServidorExterno == "SI") { clcdyndns1.Url = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]; RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), "Parametro ConsultaIBKurl: " + System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]); } org.dyndns.cedweb.consulta.ConsultarResult clcrdyndns = new org.dyndns.cedweb.consulta.ConsultarResult(); clcrdyndns = clcdyndns1.Consultar(Convert.ToInt64(comprobante.Cuit), comprobante.NroLote, comprobante.NroPuntoVta, certificado); FeaEntidades.InterFacturas.lote_comprobantes lc = new FeaEntidades.InterFacturas.lote_comprobantes(); lc = Funciones.Ws2Fea(clcrdyndns); lc.comprobante[0].IdNaturalezaComprobante = "Venta"; //Controlar que sea el mismo comprobante (local vs on-line) if (comprobante.Nro != lc.comprobante[0].cabecera.informacion_comprobante.numero_comprobante) { MensajeLabel.Text = "(Campo: Nro. de Comprobante). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. No se puede actualizar el estado."; return; } if (comprobante.TipoComprobante.Id != lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante) { MensajeLabel.Text = "(Campo: Tipo de Comprobante). Hay diferencias entre en comprobante local y el registrado en Interfacturas / AFIP. No se puede actualizar el estado."; return; } Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } else { MensajeLabel.Text = "Esta opción está disponible sólo para comprobantes de venta electrónica, canal ITF (Interfacturas)"; } } catch (System.Web.Services.Protocols.SoapException soapEx) { try { XmlDocument doc = new XmlDocument(); doc.LoadXml(soapEx.Detail.OuterXml); XmlNamespaceManager nsManager = new XmlNamespaceManager(doc.NameTable); nsManager.AddNamespace("errorNS", "http://www.cedeira.com.ar/webservices"); XmlNode Node = doc.DocumentElement.SelectSingleNode("errorNS:Error", nsManager); string errorNumber = Node.SelectSingleNode("errorNS:ErrorNumber", nsManager).InnerText; string errorMessage = Node.SelectSingleNode("errorNS:ErrorMessage", nsManager).InnerText; string errorSource = Node.SelectSingleNode("errorNS:ErrorSource", nsManager).InnerText; MensajeLabel.Text = soapEx.Actor + " : " + errorMessage.Replace("\r", "").Replace("\n", ""); } catch (Exception) { throw soapEx; } } #endregion break; } }
protected void ComprobantesGridView_RowCommand(object sender, GridViewCommandEventArgs e) { MensajeLabel.Text = ""; int item = Convert.ToInt32(e.CommandArgument); List<Entidades.Comprobante> lista = (List<Entidades.Comprobante>)ViewState["Comprobantes"]; Entidades.Comprobante comprobante = lista[item]; string script; Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"]; string DetalleIBKUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["DetalleIBKUtilizarServidorExterno"]; org.dyndns.cedweb.detalle.DetalleIBK clcdyndns = new org.dyndns.cedweb.detalle.DetalleIBK(); org.dyndns.cedweb.detalle.cecd cecd = new org.dyndns.cedweb.detalle.cecd(); List<FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado> listaR = new List<FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado>(); switch (e.CommandName) { case "Consulta": RN.Comprobante.LeerMinutas(comprobante, sesion); Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); break; case "Baja/Anul.baja": Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Baja_AnulBaja, comprobante); script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); break; case "Envio": Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Envio, comprobante); script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); break; case "Modificacion": if (comprobante.NaturalezaComprobante.Id =="VentaContrato") { Entidades.Persona persona = new Entidades.Persona(); persona.Cuit = comprobante.Cuit; persona.Documento.Tipo = comprobante.Documento.Tipo; persona.Documento.Nro = comprobante.Documento.Nro; persona.IdPersona = comprobante.IdPersona; persona.DesambiguacionCuitPais = comprobante.DesambiguacionCuitPais; RN.Persona.LeerDestinatariosFrecuentes(persona, true, sesion); comprobante.DatosEmailAvisoComprobanteContrato.DestinatariosFrecuentes = persona.DatosEmailAvisoComprobantePersona.DestinatariosFrecuentes; } Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Modificacion, comprobante); script = "window.open('/Facturacion/Electronica/Lote.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); break; } }
protected void FileUploadButton_Click(object sender, EventArgs e) { if (((Button)sender).ID == "FileUploadButton" && ((Entidades.Sesion)Session["Sesion"]).Usuario.Id == null) { MensajeLabel.Text = "Su sesión ha caducado por inactividad. Por favor vuelva a loguearse."; } else { FeaEntidades.InterFacturas.lote_comprobantes lc = new FeaEntidades.InterFacturas.lote_comprobantes(); if (XMLFileUpload.HasFile) { try { System.IO.MemoryStream ms = new System.IO.MemoryStream(XMLFileUpload.FileBytes); ms.Seek(0, System.IO.SeekOrigin.Begin); try { System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(lc.GetType()); lc = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); if (((Entidades.Sesion)Session["Sesion"]).Cuit.Nro != lc.comprobante[0].cabecera.informacion_vendedor.cuit.ToString()) { MensajeLabel.Text = "El CUIT del vendedor: " + lc.comprobante[0].cabecera.informacion_vendedor.cuit.ToString() + " que figura en el archivo XML, no coincide con el CUIT que usted está operando."; return; } if (((Entidades.Sesion)Session["Sesion"]).Cuit.Nro != lc.cabecera_lote.cuit_vendedor.ToString()) { MensajeLabel.Text = "El CUIT del lote: " + lc.cabecera_lote.cuit_vendedor.ToString() + " que figura en el archivo XML, no coincide con el CUIT que usted está operando."; return; } System.Collections.Generic.List <Entidades.PuntoVta> listaPV = ((Entidades.Sesion) Session["Sesion"]).UN.PuntosVta.FindAll(delegate(Entidades.PuntoVta pv) { return(pv.Nro == lc.cabecera_lote.punto_de_venta); }); if (listaPV.Count == 0) { MensajeLabel.Text = "El Punto de Venta: " + lc.cabecera_lote.punto_de_venta.ToString() + " que figura en el archivo XML, no coincide con los definidos para la UN que usted está operando."; return; } lc.comprobante[0].IdNaturalezaComprobante = "Venta"; Entidades.Comprobante comprobante = new Entidades.Comprobante(); string XML = ""; RN.Comprobante.SerializarLc(out XML, lc); comprobante.Request = XML; Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); string script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (InvalidOperationException) { try { LeerFormatoDetalleIBK(e, lc, ms); } catch (InvalidOperationException) { LeerFormatoLoteIBK(e, lc, ms); } } } catch { MensajeLabel.Text = "El archivo no cumple con el esquema de Interfacturas"; } } else { MensajeLabel.Text = "Debe seleccionar un archivo"; } } }
protected void ComprobantesGridView_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "ConsultaOnLine") { int item = Convert.ToInt32(e.CommandArgument); List<FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado> lista = (List<FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado>)ViewState["Comprobantes"]; FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado elem = lista[item]; try { string NroCertif = ((Entidades.Sesion)Session["Sesion"]).Cuit.NroSerieCertifITF; if (NroCertif.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } GrabarLogTexto("~/Consultar.txt", "Consulta de Lote CUIT: " + ((Entidades.Sesion)Session["Sesion"]).Cuit.Nro + " Nro.Lote: " + elem.id_lote + " Nro. Punto de Vta.: " + elem.punto_de_venta); GrabarLogTexto("~/Consultar.txt", "NroSerieCertifITF: " + NroCertif); if (NroCertif.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } string certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(NroCertif, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); org.dyndns.cedweb.consulta.ConsultaIBK clcdyndns = new org.dyndns.cedweb.consulta.ConsultaIBK(); string ConsultaIBKUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKUtilizarServidorExterno"]; GrabarLogTexto("~/Consultar.txt", "Parametro ConsultaIBKUtilizarServidorExterno: " + ConsultaIBKUtilizarServidorExterno); if (ConsultaIBKUtilizarServidorExterno == "SI") { clcdyndns.Url = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]; GrabarLogTexto("~/Consultar.txt", "Parametro ConsultaIBKurl: " + System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]); } org.dyndns.cedweb.consulta.ConsultarResult clcrdyndns = new org.dyndns.cedweb.consulta.ConsultarResult(); clcrdyndns = clcdyndns.Consultar(Convert.ToInt64(((Entidades.Sesion)Session["Sesion"]).Cuit.Nro), elem.id_lote, elem.punto_de_venta, certificado); //Entidades.Comprobante comprobante = new Entidades.Comprobante(); Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.ConsultaITF, clcrdyndns); string script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (System.Web.Services.Protocols.SoapException soapEx) { try { XmlDocument doc = new XmlDocument(); doc.LoadXml(soapEx.Detail.OuterXml); XmlNamespaceManager nsManager = new XmlNamespaceManager(doc.NameTable); nsManager.AddNamespace("errorNS", "http://www.cedeira.com.ar/webservices"); XmlNode Node = doc.DocumentElement.SelectSingleNode("errorNS:Error", nsManager); string errorNumber = Node.SelectSingleNode("errorNS:ErrorNumber", nsManager).InnerText; string errorMessage = Node.SelectSingleNode("errorNS:ErrorMessage", nsManager).InnerText; string errorSource = Node.SelectSingleNode("errorNS:ErrorSource", nsManager).InnerText; MensajeLabel.Text = soapEx.Actor + " : " + errorMessage.Replace("\r", "").Replace("\n", ""); } catch (Exception) { throw soapEx; } } } }
protected void FileUploadButton_Click(object sender, EventArgs e) { if (((Button)sender).ID == "FileUploadButton" && ((Entidades.Sesion)Session["Sesion"]).Usuario.Id == null) { MensajeLabel.Text = "Su sesión ha caducado por inactividad. Por favor vuelva a loguearse."; } else { FeaEntidades.InterFacturas.lote_comprobantes lc = new FeaEntidades.InterFacturas.lote_comprobantes(); if (XMLFileUpload.HasFile) { try { System.IO.MemoryStream ms = new System.IO.MemoryStream(XMLFileUpload.FileBytes); ms.Seek(0, System.IO.SeekOrigin.Begin); try { System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(lc.GetType()); lc = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); if (((Entidades.Sesion)Session["Sesion"]).Cuit.Nro != lc.comprobante[0].cabecera.informacion_vendedor.cuit.ToString()) { MensajeLabel.Text = "El CUIT del vendedor: " + lc.comprobante[0].cabecera.informacion_vendedor.cuit.ToString() + " que figura en el archivo XML, no coincide con el CUIT que usted está operando."; return; } if (((Entidades.Sesion)Session["Sesion"]).Cuit.Nro != lc.cabecera_lote.cuit_vendedor.ToString()) { MensajeLabel.Text = "El CUIT del lote: " + lc.cabecera_lote.cuit_vendedor.ToString() + " que figura en el archivo XML, no coincide con el CUIT que usted está operando."; return; } System.Collections.Generic.List<Entidades.PuntoVta> listaPV = ((Entidades.Sesion)Session["Sesion"]).UN.PuntosVta.FindAll(delegate(Entidades.PuntoVta pv) { return pv.Nro == lc.cabecera_lote.punto_de_venta; }); if (listaPV.Count == 0) { MensajeLabel.Text = "El Punto de Venta: " + lc.cabecera_lote.punto_de_venta.ToString() + " que figura en el archivo XML, no coincide con los definidos para la UN que usted está operando."; return; } lc.comprobante[0].IdNaturalezaComprobante = "Venta"; Entidades.Comprobante comprobante = new Entidades.Comprobante(); string XML = ""; RN.Comprobante.SerializarLc(out XML, lc); comprobante.Request = XML; Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.Consulta, comprobante); string script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (InvalidOperationException) { try { LeerFormatoDetalleIBK(e, lc, ms); } catch (InvalidOperationException) { LeerFormatoLoteIBK(e, lc, ms); } } } catch { MensajeLabel.Text = "El archivo no cumple con el esquema de Interfacturas"; } } else { MensajeLabel.Text = "Debe seleccionar un archivo"; } } }
protected void ComprobantesGridView_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "ConsultaOnLine") { int item = Convert.ToInt32(e.CommandArgument); List <FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado> lista = (List <FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado>)ViewState["Comprobantes"]; FeaEntidades.InterFacturas.Listado.emisor_comprobante_listado elem = lista[item]; try { string NroCertif = ((Entidades.Sesion)Session["Sesion"]).Cuit.NroSerieCertifITF; if (NroCertif.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } GrabarLogTexto("~/Consultar.txt", "Consulta de Lote CUIT: " + ((Entidades.Sesion)Session["Sesion"]).Cuit.Nro + " Nro.Lote: " + elem.id_lote + " Nro. Punto de Vta.: " + elem.punto_de_venta); GrabarLogTexto("~/Consultar.txt", "NroSerieCertifITF: " + NroCertif); if (NroCertif.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } string certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(NroCertif, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); org.dyndns.cedweb.consulta.ConsultaIBK clcdyndns = new org.dyndns.cedweb.consulta.ConsultaIBK(); string ConsultaIBKUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKUtilizarServidorExterno"]; GrabarLogTexto("~/Consultar.txt", "Parametro ConsultaIBKUtilizarServidorExterno: " + ConsultaIBKUtilizarServidorExterno); if (ConsultaIBKUtilizarServidorExterno == "SI") { clcdyndns.Url = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]; GrabarLogTexto("~/Consultar.txt", "Parametro ConsultaIBKurl: " + System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]); } org.dyndns.cedweb.consulta.ConsultarResult clcrdyndns = new org.dyndns.cedweb.consulta.ConsultarResult(); clcrdyndns = clcdyndns.Consultar(Convert.ToInt64(((Entidades.Sesion)Session["Sesion"]).Cuit.Nro), elem.id_lote, elem.punto_de_venta, certificado); //Entidades.Comprobante comprobante = new Entidades.Comprobante(); Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.ConsultaITF, clcrdyndns); string script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (System.Web.Services.Protocols.SoapException soapEx) { try { XmlDocument doc = new XmlDocument(); doc.LoadXml(soapEx.Detail.OuterXml); XmlNamespaceManager nsManager = new XmlNamespaceManager(doc.NameTable); nsManager.AddNamespace("errorNS", "http://www.cedeira.com.ar/webservices"); XmlNode Node = doc.DocumentElement.SelectSingleNode("errorNS:Error", nsManager); string errorNumber = Node.SelectSingleNode("errorNS:ErrorNumber", nsManager).InnerText; string errorMessage = Node.SelectSingleNode("errorNS:ErrorMessage", nsManager).InnerText; string errorSource = Node.SelectSingleNode("errorNS:ErrorSource", nsManager).InnerText; MensajeLabel.Text = soapEx.Actor + " : " + errorMessage.Replace("\r", "").Replace("\n", ""); } catch (Exception) { throw soapEx; } } } }
protected void Menu_MenuItemClick(object sender, MenuEventArgs e) { Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"]; switch (Menu.SelectedItem.ValuePath) { case "Iniciar sesión": Response.Redirect("~/UsuarioLogin.aspx"); break; case "Administración|CUIT|Alta": Response.Redirect("~/CuitCrear.aspx"); break; case "Administración|CUIT|Solicitud permiso de administrador de CUIT": Response.Redirect("~/SolicPermisoAdminCUIT.aspx"); break; case "Administración|CUIT|Baja/Anul.baja": Response.Redirect("~/CuitBaja.aspx"); break; case "Administración|CUIT|Modificación": Response.Redirect("~/CuitModificar.aspx"); break; case "Administración|CUIT|Cambio logotipo": Response.Redirect("~/CuitCambiarLogotipo.aspx"); break; case "Administración|CUIT|Consulta": Response.Redirect("~/CuitTreeView.aspx?Cuit"); break; case "Administración|Unidad de Negocio|Alta": Response.Redirect("~/UNCrear.aspx"); break; case "Administración|Unidad de Negocio|Solicitud permiso de administrador de UN": Response.Redirect("~/SolicPermisoAdminUN.aspx"); break; case "Administración|Unidad de Negocio|Solicitud permiso de operador de servicio de una UN existente": Response.Redirect("~/SolicPermisoOperServUN.aspx"); break; case "Administración|Unidad de Negocio|Baja/Anul.baja": Response.Redirect("~/UNBaja.aspx"); break; case "Administración|Unidad de Negocio|Modificación": Response.Redirect("~/UNModificar.aspx"); break; case "Administración|Unidad de Negocio|Consulta": Response.Redirect("~/CuitTreeView.aspx?UN"); break; case "Administración|Puntos de Venta|Alta": Response.Redirect("~/PuntoVtaCrear.aspx"); break; case "Administración|Puntos de Venta|Baja/Anul.baja": Response.Redirect("~/PuntoVtaSeleccionar.aspx?Baja"); break; case "Administración|Puntos de Venta|Modificación": Response.Redirect("~/PuntoVtaSeleccionar.aspx?Modificar"); break; case "Administración|Puntos de Venta|Consulta": Response.Redirect("~/CuitTreeView.aspx?PuntoVta"); break; case "Personas|Alta": Response.Redirect("~/PersonaCrear.aspx"); break; case "Personas|Baja/Anul.baja": Response.Redirect("~/PersonaSeleccionar.aspx?Baja"); break; case "Personas|Modificación": Response.Redirect("~/PersonaSeleccionar.aspx?Modificar"); break; case "Personas|Consulta": Response.Redirect("~/PersonaConsulta.aspx"); break; case "Artículos|Alta": Response.Redirect("~/ArticuloCrear.aspx"); break; case "Artículos|Modificación": Response.Redirect("~/ArticuloSeleccionar.aspx?Modificar"); break; case "Artículos|Baja/Anul.baja": Response.Redirect("~/ArticuloSeleccionar.aspx?Baja"); break; case "Artículos|Consulta": Response.Redirect("~/ArticuloConsulta.aspx"); break; case "Artículos|Listas de Precios|Alta": Response.Redirect("~/ListaPrecioCrear.aspx"); break; case "Artículos|Listas de Precios|Baja/Anul.baja": Response.Redirect("~/ListaPrecioSeleccionar.aspx?Baja"); break; case "Artículos|Listas de Precios|Modificación": Response.Redirect("~/ListaPrecioSeleccionar.aspx?Modificar"); break; case "Artículos|Listas de Precios|Clonado": Response.Redirect("~/ListaPrecioSeleccionar.aspx?Clonar"); break; case "Artículos|Listas de Precios|Reemplazo": Response.Redirect("~/ListaPrecioSeleccionar.aspx?Reemplazar"); break; case "Artículos|Listas de Precios|Consulta": Response.Redirect("~/ListaPrecioConsulta.aspx"); break; case "Artículos|Precios|Ingreso Manual": Response.Redirect("~/PrecioIngresoManual.aspx"); break; case "Artículos|Precios|Importación desde archivo Excel": Response.Redirect("~/PrecioImportacionExcel.aspx"); break; case "Contratos|Alta": Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar("VentaContrato"); if (sesion.Usuario.FechaOKeFactTyC == "00000000") { Response.Redirect("~/Facturacion/Electronica/FacturaElectronicaTYC.aspx"); } else { Response.Redirect("~/Facturacion/Electronica/Lote.aspx"); } break; case "Contratos|Baja/Anul.baja": Response.Redirect("~/ExploradorComprobante.aspx?Baja/Anul.baja-Contrato"); break; case "Contratos|Modificación": Response.Redirect("~/ExploradorComprobante.aspx?Modificacion-Contrato"); break; case "Contratos|Consulta": Response.Redirect("~/ExploradorComprobante.aspx?Consulta-Contrato"); break; case "Comprobantes|Alta manual|Venta|Electrónica": Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar("Venta"); if (sesion.Usuario.FechaOKeFactTyC == "00000000") { Response.Redirect("~/Facturacion/Electronica/FacturaElectronicaTYC.aspx"); } else { Response.Redirect("~/Facturacion/Electronica/Lote.aspx"); } break; case "Comprobantes|Alta manual|Venta|Tradicional": Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar("VentaTradic"); if (sesion.Usuario.FechaOKeFactTyC == "00000000") { Response.Redirect("~/Facturacion/Electronica/FacturaElectronicaTYC.aspx"); } else { Response.Redirect("~/Facturacion/Electronica/Lote.aspx"); } break; case "Comprobantes|Alta manual|Compra": Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar("Compra"); if (sesion.Usuario.FechaOKeFactTyC == "00000000") { Response.Redirect("~/Facturacion/Electronica/FacturaElectronicaTYC.aspx"); } else { Response.Redirect("~/Facturacion/Electronica/Lote.aspx"); } break; case "Comprobantes|Baja/Anul.baja": Response.Redirect("~/ExploradorComprobante.aspx?Baja/Anul.baja-Comprobante"); break; case "Comprobantes|Modificación": Response.Redirect("~/ExploradorComprobante.aspx?Modificacion-Comprobante"); break; case "Comprobantes|Envio (AFIP/ITF)": Response.Redirect("~/ExploradorComprobante.aspx?Envio-Comprobante"); break; case "Comprobantes|Consulta": Response.Redirect("~/ExploradorComprobante.aspx?Consulta-Comprobante"); break; case "Comprobantes|Otras Consultas|IVA Ventas": Response.Redirect("~/Facturacion/Electronica/Reportes/IvaVentasFiltros.aspx"); break; case "Comprobantes|Otras Consultas|Ventas por Artículo": Response.Redirect("~/Facturacion/Electronica/Reportes/VentasXArticuloFiltros.aspx"); break; case "Comprobantes|Otras Consultas|IVA Compras": Response.Redirect("~/Facturacion/Electronica/Reportes/IvaComprasFiltros.aspx"); break; case "Comprobantes|Otras Consultas|Compras por Artículo": Response.Redirect("~/Facturacion/Electronica/Reportes/ComprasXArticuloFiltros.aspx"); break; case "Comprobantes|Otras Consultas|Interfaz RG.3685": Response.Redirect("~/ExploradorComprobanteRG.aspx"); break; case "Comprobantes|Otras Consultas|Online Interfacturas|Varios comprobantes": Response.Redirect("~/ExploradorComprobanteOnLineInterfacturas.aspx"); break; case "Comprobantes|Otras Consultas|Online Interfacturas|Un comprobante": Response.Redirect("~/ComprobanteSeleccionOnlineInterfacturas.aspx"); break; case "Comprobantes|Otras Consultas|Online AFIP": Response.Redirect("~/ComprobanteSeleccionOnlineAFIP.aspx"); break; case "Comprobantes|Otras Consultas|Archivo XML": Response.Redirect("~/ComprobanteSeleccionArchivoXML.aspx"); break; case "Comprobantes|Otras Consultas|Términos y condiciones": Response.Redirect("~/Facturacion/Electronica/FacturaElectronicaTYC.aspx"); break; case "Comprobantes|Generación automática (contratos)": Response.Redirect("~/ComprobanteGeneracionAutomatica.aspx"); break; case "Comprobantes|Consulta PDFs": Response.Redirect("~/ExploradorPDFComprobante.aspx"); break; case "Administración|Autorizaciones|Explorador de Autorizaciones pendientes": Response.Redirect("~/ExploradorAutorizacion.aspx"); break; case "Administración|Autorizaciones|Explorador de Autorizaciones (histórico)": Response.Redirect("~/ExploradorAutorizacionLog.aspx"); break; case "Administración Site|Comprobantes": Response.Redirect("~/ExploradorComprobanteGlobal.aspx"); break; case "Administración Site|Usuarios": Response.Redirect("~/ExploradorUsuario.aspx"); break; case "Administración Site|CUITs": Response.Redirect("~/ExploradorCuit.aspx"); break; case "Administración Site|UNs": Response.Redirect("~/ExploradorUN.aspx"); break; case "Administración Site|Puntos de Venta": Response.Redirect("~/ExploradorPuntoVta.aspx"); break; case "Administración Site|Personas": Response.Redirect("~/ExploradorPersona.aspx"); break; case "Administración Site|Artículos": Response.Redirect("~/ExploradorArticulo.aspx"); break; case "Administración Site|Permisos": Response.Redirect("~/ExploradorPermiso.aspx"); break; case "Administración Site|Configuraciones": Response.Redirect("~/ExploradorConfiguracion.aspx"); break; case "Administración Site|Logs": Response.Redirect("~/ExploradorLog.aspx"); break; case "Administración Site|Administración": Response.Redirect("~/ExploradorAdministracion.aspx"); break; case "Administración|Usuario|Cambio de Contraseña": Response.Redirect("~/UsuarioCambiarPassword.aspx"); break; case "Administración|Usuario|Modificación datos de Configuración": Response.Redirect("~/ConfiguracionModificar.aspx"); break; case "Ayuda|Manual|¿Cómo empiezo a operar con facturas electrónicas?": sesion.EstoyEnAyuda = true; Response.Redirect("~/Ayuda/Instructivas/OperarFacturaElectronica001.aspx"); break; case "Ayuda|Novedades": Response.Redirect("~/Ayuda/ExploradorNovedad.aspx"); break; case "Ayuda|Documentación técnica": Response.Redirect("~/default.aspx"); break; case "Cerrar sesión": RN.Sesion.Cerrar(sesion); Response.Redirect("~/UsuarioLogin.aspx"); break; } }
protected void ConsultarLoteIBKButton_Click(object sender, EventArgs e) { if (((Entidades.Sesion)Session["Sesion"]).Usuario.Id == null) { MensajeLabel.Text = "Su sesión ha caducado por inactividad. Por favor vuelva a loguearse"; } else { try { string NroCertif = ((Entidades.Sesion)Session["Sesion"]).Cuit.NroSerieCertifITF; if (NroCertif.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } if (CuitConsultaTextBox.Text.Equals(string.Empty)) { MensajeLabel.Text = "Falta ingresar el CUIT del vendedor"; return; } if (NroLoteConsultaTextBox.Text.Equals(string.Empty)) { MensajeLabel.Text = "Falta ingresar el nro de lote"; return; } if (PtoVtaConsultaDropDownList.SelectedValue.Equals("0") || PtoVtaConsultaDropDownList.SelectedValue.Equals(string.Empty)) { MensajeLabel.Text = "Falta ingresar el punto de venta"; return; } GrabarLogTexto("~/Consultar.txt", "Consulta de Lote CUIT: " + CuitConsultaTextBox.Text + " Nro.Lote: " + NroLoteConsultaTextBox.Text + " Nro. Punto de Vta.: " + PtoVtaConsultaDropDownList.SelectedValue); GrabarLogTexto("~/Consultar.txt", "NroSerieCertifITF: " + NroCertif); if (NroCertif.Equals(string.Empty)) { MensajeLabel.Text = "Aún no disponemos de su certificado digital"; return; } string certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(NroCertif, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); org.dyndns.cedweb.consulta.ConsultaIBK clcdyndns = new org.dyndns.cedweb.consulta.ConsultaIBK(); string ConsultaIBKUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKUtilizarServidorExterno"]; GrabarLogTexto("~/Consultar.txt", "Parametro ConsultaIBKUtilizarServidorExterno: " + ConsultaIBKUtilizarServidorExterno); if (ConsultaIBKUtilizarServidorExterno == "SI") { clcdyndns.Url = System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]; GrabarLogTexto("~/Consultar.txt", "Parametro ConsultaIBKurl: " + System.Configuration.ConfigurationManager.AppSettings["ConsultaIBKurl"]); } org.dyndns.cedweb.consulta.ConsultarResult clcrdyndns = new org.dyndns.cedweb.consulta.ConsultarResult(); clcrdyndns = clcdyndns.Consultar(Convert.ToInt64(CuitConsultaTextBox.Text), Convert.ToInt64(NroLoteConsultaTextBox.Text), Convert.ToInt32(PtoVtaConsultaDropDownList.SelectedValue), certificado); Session["ComprobanteATratar"] = new Entidades.ComprobanteATratar(Entidades.Enum.TratamientoComprobante.ConsultaITF, clcrdyndns); string script = "window.open('/ComprobanteConsulta.aspx', '');"; ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true); } catch (System.Web.Services.Protocols.SoapException soapEx) { try { XmlDocument doc = new XmlDocument(); doc.LoadXml(soapEx.Detail.OuterXml); XmlNamespaceManager nsManager = new XmlNamespaceManager(doc.NameTable); nsManager.AddNamespace("errorNS", "http://www.cedeira.com.ar/webservices"); XmlNode Node = doc.DocumentElement.SelectSingleNode("errorNS:Error", nsManager); string errorNumber = Node.SelectSingleNode("errorNS:ErrorNumber", nsManager).InnerText; string errorMessage = Node.SelectSingleNode("errorNS:ErrorMessage", nsManager).InnerText; string errorSource = Node.SelectSingleNode("errorNS:ErrorSource", nsManager).InnerText; MensajeLabel.Text = soapEx.Actor + " : " + errorMessage.Replace("\r", "").Replace("\n", ""); } catch (Exception) { throw soapEx; } } catch (System.Security.Cryptography.CryptographicException ex) { using (FileStream fs = File.Open(Server.MapPath("~/ConsultarErrores.txt"), FileMode.Append, FileAccess.Write)) { using (StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8)) { sw.WriteLine("Consulta de:" + ((Entidades.Sesion)Session["Sesion"]).Cuit.Nro.ToString()); sw.WriteLine(ex.Message); sw.WriteLine(ex.StackTrace); if (ex.InnerException != null) { sw.WriteLine(ex.InnerException.Message); } } } MensajeLabel.Text = ex.Message.Replace("\r", "").Replace("\n", ""); } catch (Exception ex) { string errormsg = ex.Message.Replace("\n", ""); if (ex.InnerException != null) { try { errormsg = errormsg + " " + ((System.Net.Sockets.SocketException)ex.InnerException).ErrorCode; } catch { } errormsg = errormsg + " " + ex.InnerException.Message.Replace("\n", ""); } errormsg = errormsg.Replace("'", "").Replace("\r", " "); MensajeLabel.Text = "Problemas al consultar a Interfacturas.\\n " + errormsg; } } }