예제 #1
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();
                }
            }
        }
예제 #2
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, ControlSobres controlSobres)
        {
            string estadoRespuesta = "", token = "", idReceptor = "";
            ParametrosJobWsDGIMasivo parametrosJob         = parametros as ParametrosJobWsDGIMasivo;
            ManteUdoControlSobres    manteUdoControlSobres = new ManteUdoControlSobres();
            ManteUdoCFE manteUdoCfe = new ManteUdoCFE();

            try
            {
                XmlDocument xmlDocumento = new XmlDocument();
                xmlDocumento.LoadXml(xmlRespuesta);

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

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

                    SobreTransito sobreTransito = new SobreTransito();
                    sobreTransito.NombreSobre  = parametrosJob.NombreSobre;
                    sobreTransito.Token        = token;
                    sobreTransito.IdReceptor   = idReceptor;
                    sobreTransito.TipoReceptor = SobreTransito.ETipoReceptor.DGI;

                    sobreTransito.Serie  = parametrosJob.Serie;
                    sobreTransito.Numero = parametrosJob.Numero;
                    sobreTransito.Tipo   = parametrosJob.Tipo;


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

                    ManteUdoSobre manteSobre = new ManteUdoSobre();
                    //True = AS, no se agrega detalle correspondiente a info de rechazo
                    manteSobre.cargarSobreXml(xmlDocumento, parametrosJob.NombreSobre, true);
                }
                else if (estadoRespuesta.Equals("BS"))
                {
                    manteUdoControlSobres.Eliminar(controlSobres);
                    ManteUdoSobre manteSobre = new ManteUdoSobre();
                    //False = BS, se agrega detalle correspondiente a info de rechazo
                    manteSobre.cargarSobreXml(xmlDocumento, parametrosJob.NombreSobre, false);
                }
            }
            catch (Exception)
            {
                controlSobres.Estado = "Pendiente";
                manteUdoControlSobres.Actualizar(controlSobres);
                app.MessageBox("No se pudo enviar a DGI");
            }

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

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


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