Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 5
0
 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;
            }
        }
Exemplo n.º 8
0
        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";
                }
            }
        }
        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);
        }
 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 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;
                    }
                }
            }
        }
Exemplo n.º 14
0
 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;
     }
 }
Exemplo n.º 15
0
        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;
                }
            }
        }
        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;
                }
            }
        }