protected void AccionSubirAInterfacturasButton_Click(object sender, EventArgs e) { if (Funciones.SessionTimeOut(Session)) { Response.Redirect("~/SessionTimeout.aspx"); } else { Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"]; ActualizarEstadoPanel.Visible = false; DescargarPDFPanel.Visible = false; //ActualizarEstadoButton.DataBind(); //DescargarPDFButton.DataBind(); if (sesion.Usuario.Id == null) { ScriptManager.RegisterClientScriptBlock(this, GetType(), "Message", Funciones.TextoScript("Su sesión ha caducado por inactividad. Por favor vuelva a loguearse."), false); } else { try { string NroCertif = ""; NroCertif = sesion.Cuit.NroSerieCertifITF; if (NroCertif.Equals(string.Empty)) { ScriptManager.RegisterClientScriptBlock(this, GetType(), "Message", Funciones.TextoScript("Aún no disponemos de su certificado digital."), false); return; } try { if (ValidarCamposObligatorios("")) { string certificado = ""; string respuesta = ""; certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(NroCertif, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); org.dyndns.cedweb.envio.EnvioIBK edyndns = new org.dyndns.cedweb.envio.EnvioIBK(); string EnvioIBKUtilizarServidorExterno = System.Configuration.ConfigurationManager.AppSettings["EnvioIBKUtilizarServidorExterno"]; if (EnvioIBKUtilizarServidorExterno == "SI") { edyndns.Url = System.Configuration.ConfigurationManager.AppSettings["EnvioIBKurl"]; } org.dyndns.cedweb.envio.lc lcIBK = new org.dyndns.cedweb.envio.lc(); FeaEntidades.InterFacturas.lote_comprobantes lcFea = GenerarLote(false); //Grabar en base de datos lcFea.cabecera_lote.DestinoComprobante = "ITF"; lcFea.comprobante[0].cabecera.informacion_comprobante.Observacion = ""; RN.Comprobante.Registrar(lcFea, null, IdNaturalezaComprobanteTextBox.Text, "ITF", "PteEnvio", PeriodicidadEmisionDropDownList.SelectedValue, DateTime.ParseExact(FechaProximaEmisionDatePickerWebUserControl.Text, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture), Convert.ToInt32(CantidadComprobantesAEmitirTextBox.Text), Convert.ToInt32(CantidadComprobantesEmitidosTextBox.Text), Convert.ToInt32(CantidadDiasFechaVtoTextBox.Text), string.Empty, false, string.Empty, string.Empty, string.Empty, sesion); AjustarLoteParaITF(lcFea); lcIBK = Conversor.Entidad2IBK(lcFea); respuesta = edyndns.EnviarIBK(lcIBK, certificado); //VIEJO MODO DE USO //certificado = NroCertif; //FeaEntidades.InterFacturas.lote_comprobantes lcFea = GenerarLote(); //respuesta = RN.Comprobante.EnviarIBK(lcFea, certificado); respuesta = respuesta.Replace("'", "-"); ScriptManager.RegisterClientScriptBlock(this, GetType(), "Message", Funciones.TextoScript(respuesta), false); if (respuesta == "Comprobante enviado satisfactoriamente a Interfacturas.") { Entidades.Comprobante comprobante = new Entidades.Comprobante(); comprobante.Cuit = lcFea.comprobante[0].cabecera.informacion_vendedor.cuit.ToString(); comprobante.TipoComprobante.Id = lcFea.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante; comprobante.NroPuntoVta = lcFea.comprobante[0].cabecera.informacion_comprobante.punto_de_venta; comprobante.Nro = lcFea.comprobante[0].cabecera.informacion_comprobante.numero_comprobante; RN.Comprobante.Leer(comprobante, sesion); comprobante.WF.Estado = "PteConf"; RN.Comprobante.Actualizar(comprobante, sesion); RN.Comprobante.Leer(comprobante, sesion); //Consultar y Actualizar estado on-line. 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"]); } System.Threading.Thread.Sleep(2000); org.dyndns.cedweb.consulta.ConsultarResult clcrdyndns = new org.dyndns.cedweb.consulta.ConsultarResult(); clcrdyndns = clcdyndnsConsultaIBK.Consultar(Convert.ToInt64(lcFea.comprobante[0].cabecera.informacion_vendedor.cuit), lcFea.cabecera_lote.id_lote, lcFea.comprobante[0].cabecera.informacion_comprobante.punto_de_venta, 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") { comprobante.WF.Estado = "Vigente"; RN.Comprobante.Actualizar(comprobante, sesion); RN.Comprobante.Leer(comprobante, sesion); Session["comprobantePDF"] = comprobante; ActualizarEstadoPanel.Visible = false; DescargarPDFPanel.Visible = true; } else if (lc.cabecera_lote.resultado == "R") { comprobante.WF.Estado = "Rechazado"; RN.Comprobante.Actualizar(comprobante, sesion); RN.Comprobante.Leer(comprobante, sesion); Session["comprobantePDF"] = comprobante; ActualizarEstadoPanel.Visible = false; DescargarPDFPanel.Visible = false; } } else { ScriptManager.RegisterClientScriptBlock(this, GetType(), "Message", Funciones.TextoScript("Problemas al enviar el comprobante a Interfacturas. " + Funciones.TextoScript(respuesta)), false); } } } 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; ScriptManager.RegisterClientScriptBlock(this, GetType(), "Message", Funciones.TextoScript(soapEx.Actor.Trim() + ": " + errorMessage), false); } catch (Exception) { throw soapEx; } } } catch (Exception ex) { ScriptManager.RegisterClientScriptBlock(this, GetType(), "Message", Funciones.TextoScript("Problemas al enviar el comprobante a Interfacturas. " + ex.Message), false); } } } }
protected void EnviarIBKButton_Click(object sender, EventArgs e) { if (CedWebRN.Fun.NoEstaLogueadoUnUsuarioPremium((CedWebEntidades.Sesion)Session["Sesion"])) { if (!MonedaComprobanteDropDownList.Enabled) { ClientScript.RegisterStartupScript(GetType(), "Message", "<SCRIPT LANGUAGE='javascript'>alert('Esta funcionalidad es exclusiva del SERVICIO PREMIUM. Contáctese con Cedeira Software Factory para acceder al servicio.');</script>"); } else { ClientScript.RegisterStartupScript(GetType(), "Message", "<SCRIPT LANGUAGE='javascript'>alert('Su sesión ha caducado por inactividad. Por favor vuelva a loguearse.')</script>"); } } else { try { CedWebEntidades.Cuenta cta = ((CedWebEntidades.Sesion)Session["Sesion"]).Cuenta; if (cta.NroSerieCertificado.Equals(string.Empty)) { ClientScript.RegisterStartupScript(GetType(), "Message", "<SCRIPT LANGUAGE='javascript'>alert('Aún no disponemos de su certificado digital.');</script>"); return; } try { string certificado = CaptchaDotNet2.Security.Cryptography.Encryptor.Encrypt(cta.NroSerieCertificado, "srgerg$%^bg", Convert.FromBase64String("srfjuoxp")).ToString(); org.dyndns.cedweb.envio.EnvioIBK edyndns = new org.dyndns.cedweb.envio.EnvioIBK(); org.dyndns.cedweb.envio.lc lcIBK = new org.dyndns.cedweb.envio.lc(); FeaEntidades.InterFacturas.lote_comprobantes lcFea = GenerarLote(); lcIBK = Conversor.Entidad2IBK(lcFea); //CedWebRN.Comprobante cc = new CedWebRN.Comprobante(); //cc.EnviarIBK(lcFea, certificado); string respuesta = edyndns.EnviarIBK(lcIBK, certificado); ClientScript.RegisterStartupScript(GetType(), "Message", "<SCRIPT LANGUAGE='javascript'>alert('" + respuesta + "')</script>"); } 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; ClientScript.RegisterStartupScript(GetType(), "Message", "<SCRIPT LANGUAGE='javascript'>alert('" + soapEx.Actor + " : " + errorMessage.Replace("\r", "").Replace("\n", "") + "');</script>"); } catch (Exception) { throw soapEx; } } } catch (Exception ex) { ClientScript.RegisterStartupScript(GetType(), "Message", "<SCRIPT LANGUAGE='javascript'>alert('Problemas al enviar el comprobante a Interfacturas.\\n " + ex.Message + "');</script>"); } } }