Ejemplo n.º 1
0
        /// <summary>
        /// Realiza el envio de los sobre por medio del web service de DGI.
        /// </summary>
        /// <param name="sobre"></param>
        public void EnviarSobre(Sobre sobre, Sobre sobreDgi, CFE cfe, CAE cae)
        {
            ParametrosJobWsDGI parametrosJobWsDGI = new ParametrosJobWsDGI(RUTA_CERTIFICADO, CLAVE_CERTIFICADO, URL_ENVIO, URL_CONSULTAS, cfe, cae);

            try
            {
                parametrosJobWsDGI.Sobre    = sobre;
                parametrosJobWsDGI.SobreDgi = sobreDgi;

                comunicacionDGI.ConsumirWsEnviarSobre(parametrosJobWsDGI);
            }
            catch (Exception ex)
            {
                SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ERROR: " + ex.ToString());
            }


            finally
            {
                //if (parametrosJobWsDGI != null)
                //{
                //    //Libera de memoria el objeto factura
                //    GC.SuppressFinalize(parametrosJobWsDGI);
                //    GC.Collect();
                //}
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Realiza el envio de los sobre por medio del web service de DGI.
        /// </summary>
        /// <param name="sobre"></param>
        public void EnviarSobre(Sobre sobre)
        {
            ParametrosJobWsDGI parametrosJobWsDGI = new ParametrosJobWsDGI(RUTA_CERTIFICADO, CLAVE_CERTIFICADO, URL_ENVIO, URL_CONSULTAS, null, null);

            parametrosJobWsDGI.Sobre    = sobre;
            parametrosJobWsDGI.SobreDgi = sobre;

            //Procesos web service
            ComunicacionDgi comunicacionDGI = new ComunicacionDgi();

            comunicacionDGI.ConsumirWsEnviarSobre(parametrosJobWsDGI);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Inicia el proceso de
        /// </summary>
        /// <param name="parametros"></param>
        public void Trabajar(object parametros)
        {
            string respuesta = Consumir(parametros);

            if (!respuesta.Equals(""))
            {
                ProcesarRespuesta(respuesta, parametros);
            }
            else
            {
                ManteUdoControlSobres manteUdoControlSobres = new ManteUdoControlSobres();
                ParametrosJobWsDGI    parametrosDGI         = parametros as ParametrosJobWsDGI;

                ControlSobres controlSobres = new ControlSobres();
                controlSobres.Estado       = "Pendiente";
                controlSobres.Serie        = parametrosDGI.Cfe.SerieComprobante;
                controlSobres.Numero       = parametrosDGI.Cfe.NumeroComprobante.ToString();
                controlSobres.Tipo         = parametrosDGI.Cfe.TipoCFEInt.ToString();
                controlSobres.DocumentoSap = parametrosDGI.Cfe.DocumentoSAP;
                controlSobres.UsuarioSap   = ProcConexion.Comp.UserName;

                manteUdoControlSobres.Almacenar(controlSobres);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Consume el web service
        /// </summary>
        /// <param name="parametros"></param>
        /// <returns></returns>
        public string Consumir(object parametros)
        {
            string respuesta = "";

            WebServiceDGI      webServiceDgi      = new WebServiceDGI(parametros);
            ParametrosJobWsDGI parametrosJobWsDGI = parametros as ParametrosJobWsDGI;

            XmlDocument xmlDocumento = new XmlDocument();

            try
            {
                if (File.Exists((RutasCarpetas.RutaCarpetaSobresDgi + "\\" + parametrosJobWsDGI.SobreDgi.Nombre + ".xml")))
                {
                    xmlDocumento.Load(RutasCarpetas.RutaCarpetaSobresDgi + "\\" + parametrosJobWsDGI.SobreDgi.Nombre + ".xml");
                }
                else if (File.Exists((RutasCarpetas.RutaCarpetaContingenciaSobresDgi + "\\" + parametrosJobWsDGI.SobreDgi.Nombre + ".xml")))
                {
                    xmlDocumento.Load(RutasCarpetas.RutaCarpetaContingenciaSobresDgi + "\\" + parametrosJobWsDGI.SobreDgi.Nombre + ".xml");
                }



                //SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("Envio a DGI " + xmlDocumento.InnerXml);
                respuesta = webServiceDgi.WSDGI.SendWSDGI(xmlDocumento.InnerXml, clsWSDGI.WsMethod.Envelope);
                //SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("Respuesta " + respuesta);
                //respuesta = respuesta.Replace("<IDEmisor>0</IDEmisor>", "<IDEmisor>" + xmlDocumento.GetElementsByTagName("DGICFE:Idemisor").Item(0).InnerText + "</IDEmisor>");
                //respuesta = respuesta.Replace("<IDEmisor>0</IDEmisor>", "<IDEmisor>" + xmlDocumento.GetElementsByTagName("Idemisor").Item(0).InnerText + "</IDEmisor>");
            }
            catch (Exception)
            {
                app.MessageBox("No se pudo enviar a DGI por problemas de conexión, recordar reenvio de documento.");
                respuesta = "";
            }

            finally
            {
                if (webServiceDgi != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(webServiceDgi);
                    GC.Collect();
                }


                if (parametrosJobWsDGI != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(parametrosJobWsDGI);
                    GC.Collect();
                }


                if (xmlDocumento != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(xmlDocumento);
                    GC.Collect();
                }
            }

            return(respuesta);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Procesa la respuesta del web service de DGI
        /// </summary>
        /// <param name="xmlRespuesta"></param>
        /// <param name="parametros"></param>
        public void ProcesarRespuesta(string xmlRespuesta, object parametros)
        {
            string             estadoRespuesta = "", token = "", idReceptor = "";
            ParametrosJobWsDGI parametrosJob = parametros as ParametrosJobWsDGI;

            XmlDocument   xmlDocumento = new XmlDocument();
            ManteUdoSobre manteSobre   = new ManteUdoSobre();

            try
            {
                xmlDocumento.LoadXml(xmlRespuesta);


                idReceptor      = xmlDocumento.GetElementsByTagName("IDReceptor").Item(0).InnerText;
                estadoRespuesta = xmlDocumento.GetElementsByTagName("Estado").Item(0).InnerText;

                if (estadoRespuesta.Equals("AS"))
                {
                    token = xmlDocumento.GetElementsByTagName("Token").Item(0).InnerText;
                    string hora = xmlDocumento.GetElementsByTagName("Fechahora").Item(0).InnerText;

                    SobreTransito sobreTransito = new SobreTransito();
                    sobreTransito.NombreSobre  = parametrosJob.Sobre.Nombre;
                    sobreTransito.Token        = token;
                    sobreTransito.IdReceptor   = idReceptor;
                    sobreTransito.TipoReceptor = SobreTransito.ETipoReceptor.DGI;
                    sobreTransito.Tipo         = parametrosJob.Cfe.TipoCFEInt;
                    sobreTransito.Serie        = parametrosJob.Cfe.SerieComprobante;
                    sobreTransito.Numero       = parametrosJob.Cfe.NumeroComprobante;

                    ManteUdoSobreTransito manteTransito = new ManteUdoSobreTransito();
                    manteTransito.Almacenar(sobreTransito);


                    //True = AS, no se agrega detalle correspondiente a info de rechazo
                    manteSobre.cargarSobreXml(xmlDocumento, parametrosJob.Sobre.Nombre, true);

                    //Se crea el documento Pdf
                    //CrearPDF(parametrosJob.Cfe, parametrosJob.Cae);
                }
                else if (estadoRespuesta.Equals("BS"))
                {
                    //False = BS, se agrega detalle correspondiente a info de rechazo
                    manteSobre.cargarSobreXml(xmlDocumento, parametrosJob.Sobre.Nombre, false);
                }
            }
            catch (Exception)
            {
                app.MessageBox("No se pudo enviar a DGI por problemas de conexión, recordar reenvio de documento.");
                ManteUdoControlSobres manteUdoControlSobres = new ManteUdoControlSobres();
                ParametrosJobWsDGI    parametrosDGI         = parametros as ParametrosJobWsDGI;

                ControlSobres controlSobres = new ControlSobres();
                controlSobres.Estado       = "Pendiente";
                controlSobres.Serie        = parametrosDGI.Cfe.SerieComprobante;
                controlSobres.Numero       = parametrosDGI.Cfe.NumeroComprobante.ToString();
                controlSobres.Tipo         = parametrosDGI.Cfe.TipoCFEInt.ToString();
                controlSobres.DocumentoSap = parametrosDGI.Cfe.DocumentoSAP;
                controlSobres.UsuarioSap   = ProcConexion.Comp.UserName;

                manteUdoControlSobres.Almacenar(controlSobres);
                //app.MessageBox("ERROR RESPUESTA: " + ex.ToString());
            }

            finally
            {
                if (xmlDocumento != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(xmlDocumento);
                    GC.Collect();
                }

                if (xmlDocumento != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(xmlDocumento);
                    GC.Collect();
                }

                if (manteSobre != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(manteSobre);
                    GC.Collect();
                }
            }
        }