/// <remarks/> public void EnviarIBKAsync(lc lc, string pathCertificado, object userState) { if ((this.EnviarIBKOperationCompleted == null)) { this.EnviarIBKOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEnviarIBKOperationCompleted); } this.InvokeAsync("EnviarIBK", new object[] { lc, pathCertificado}, this.EnviarIBKOperationCompleted, userState); }
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; 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 { 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 lote = new FeaEntidades.InterFacturas.lote_comprobantes(); System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); byte[] bytes = new byte[((Entidades.ComprobanteATratar)ViewState["ComprobanteATratar"]).Comprobante.Request.Length * sizeof(char)]; System.Buffer.BlockCopy(((Entidades.ComprobanteATratar)ViewState["ComprobanteATratar"]).Comprobante.Request.ToCharArray(), 0, bytes, 0, bytes.Length); System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes); ms.Seek(0, System.IO.SeekOrigin.Begin); lote = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); //Grabar en base de datos lote.cabecera_lote.DestinoComprobante = "ITF"; lote.comprobante[0].cabecera.informacion_comprobante.Observacion = ""; AjustarLoteParaITF(lote); lcIBK = Conversor.Entidad2IBK(lote); respuesta = edyndns.EnviarIBK(lcIBK, certificado); respuesta = respuesta.Replace("'", "-"); ScriptManager.RegisterClientScriptBlock(this, GetType(), "Message", Funciones.TextoScript(respuesta), false); if (respuesta == "Comprobante enviado satisfactoriamente a Interfacturas.") { Entidades.Comprobante comprobante = ((Entidades.ComprobanteATratar)ViewState["ComprobanteATratar"]).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(lote.comprobante[0].cabecera.informacion_vendedor.cuit), lote.cabecera_lote.id_lote, lote.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); DescargarPDFPanel.Visible = true; } else if (lc.cabecera_lote.resultado == "R") { comprobante.WF.Estado = "Rechazado"; RN.Comprobante.Actualizar(comprobante, sesion); RN.Comprobante.Leer(comprobante, sesion); ActualizarEstadoPanel.Visible = false; DescargarPDFPanel.Visible = true; } } 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); } } } }
/// <remarks/> public void EnviarIBKAsync(lc lc, string pathCertificado) { this.EnviarIBKAsync(lc, pathCertificado, null); }