示例#1
0
        /// <summary>
        /// Realiza el envio de los sobre por medio del web service de DGI.
        /// </summary>
        /// <param name="sobre"></param>
        public void EnviarSobre(int tipo, string serie, int numero)
        {
            ComunicacionDgi comunicacionDGI = new ComunicacionDgi();

            try
            {
                ParametrosJobWsDGIMasivo parametrosJobWsDGI =
                    new ParametrosJobWsDGIMasivo(RUTA_CERTIFICADO, CLAVE_CERTIFICADO, URL_ENVIO, URL_CONSULTAS);
                parametrosJobWsDGI.NombreSobre = tipo + serie + numero;
                parametrosJobWsDGI.Tipo        = tipo;
                parametrosJobWsDGI.Serie       = serie;
                parametrosJobWsDGI.Numero      = numero;

                comunicacionDGI.ConsumirWsEnviarSobreMasivo(parametrosJobWsDGI);
            }
            catch (Exception ex)
            {
                app.MessageBox("ERROR: " + ex.ToString());
            }
        }
示例#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();
                }
            }
        }
示例#3
0
        /// <summary>
        /// Consume el web service
        /// </summary>
        /// <param name="parametros"></param>
        /// <returns></returns>
        public string Consumir(object parametros, out ControlSobres controlSobres, Boolean SuperUser)
        {
            string respuesta = "";

            WebServiceDGIMasivo      webServiceDgi            = new WebServiceDGIMasivo(parametros);
            ParametrosJobWsDGIMasivo parametrosJobWsDGIMasivo = parametros as ParametrosJobWsDGIMasivo;

            XmlDocument           xmlDocumento          = new XmlDocument();
            ManteUdoControlSobres manteUdoControlSobres = new ManteUdoControlSobres();

            controlSobres = new ControlSobres();

            try
            {
                if (SuperUser)
                {
                    FTP ftp = new FTP();


                    if (ftp.descargarArchivos(parametrosJobWsDGIMasivo.NombreSobre + ".xml", RutasCarpetas.RutaCarpetaSobresDgi, 0))
                    {
                    }
                    else if (ftp.descargarArchivos(parametrosJobWsDGIMasivo.NombreSobre + ".xml", RutasCarpetas.RutaCarpetaContingenciaSobresDgi, 5))
                    {
                    }
                }

                if (File.Exists((RutasCarpetas.RutaCarpetaSobresDgi + "\\" + parametrosJobWsDGIMasivo.NombreSobre + ".xml")))
                {
                    xmlDocumento.Load(RutasCarpetas.RutaCarpetaSobresDgi + "\\" + parametrosJobWsDGIMasivo.NombreSobre + ".xml");
                }
                else if (File.Exists((RutasCarpetas.RutaCarpetaContingenciaSobresDgi + "\\" + parametrosJobWsDGIMasivo.NombreSobre + ".xml")))
                {
                    xmlDocumento.Load(RutasCarpetas.RutaCarpetaContingenciaSobresDgi + "\\" + parametrosJobWsDGIMasivo.NombreSobre + ".xml");
                }



                controlSobres.Tipo       = parametrosJobWsDGIMasivo.Tipo + "";
                controlSobres.Serie      = parametrosJobWsDGIMasivo.Serie;
                controlSobres.Numero     = parametrosJobWsDGIMasivo.Numero + "";
                controlSobres.Estado     = "Enviado";
                controlSobres.UsuarioSap = ProcConexion.Comp.UserName;
                controlSobres            = manteUdoControlSobres.ObtenerDocEntry(controlSobres);
                manteUdoControlSobres.Actualizar(controlSobres);
                manteUdoControlSobres.ActualizarFirmaElectronica(controlSobres);


                // RE firmo el documento con la fecha del Envio
                FirmaDigital firma = new FirmaDigital();
                xmlDocumento = firma.refirmarDocumentos(xmlDocumento);


                // Envio el documento re firmado.
                respuesta = webServiceDgi.WSDGI.SendWSDGI(xmlDocumento.InnerXml, clsWSDGI.WsMethod.Envelope);

                if (!respuesta.Equals(""))
                {
                    respuesta = respuesta.Replace("<IDEmisor>0</IDEmisor>", "<IDEmisor>" + xmlDocumento.GetElementsByTagName("DGICFE:Idemisor").Item(0).InnerText + "</IDEmisor>");
                    //manteUdoControlSobres.Eliminar(controlSobres);
                }
            }
            catch (Exception)
            {
                if (controlSobres.Tipo != "" && controlSobres.Numero != "0" && controlSobres.Serie != "")
                {
                    controlSobres.Estado = "Pendiente";
                }

                else
                {
                    controlSobres.Estado = "NoAplica";
                }

                manteUdoControlSobres.Actualizar(controlSobres);
                respuesta = "";
            }

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


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

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

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


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

            return(respuesta);
        }