public DataSet registerDocument(String token, String XMLInvoice, String XMLDetailInvoce, String path, String fac_num)
        {
            try {
/*                XMLInvoice = "<?xml version = \"1.0\" encoding=\"Windows-1252\" standalone=\"yes\"?>" +
 *  "<VFPData><temp_fact_header>	<codigomoneda>GTQ</codigomoneda><fechahoraemision>2019-04-03T08:22:00</fechahoraemision><numeroaccesso>990005696</numeroaccesso><afiliacioniva>GEN</afiliacioniva>	<codigoestablecimiento>01</codigoestablecimiento>	<nitemisor>3225607</nitemisor>" +
 *          "<nombreemisor>No Aplica</nombreemisor><correoemisor/><direccionemisor>Guatemala</direccionemisor><codigopostalemisor>123</codigopostalemisor><paisemisor>GT</paisemisor><departamentoemisor>Guatemala</departamentoemisor><municipioemisor>Guatemala</municipioemisor>" +
 *          "<nombrecomercial>Mayaquimicos</nombrecomercial><correoreceptor/><idreceptor>3225607</idreceptor><nombrereceptor>Maya Quimicos, S. A.</nombrereceptor><direccionreceptor>4ta. Calle 7-53 Zona 9 Of 405</direccionreceptor>" +
 *          "<codigopostalreceptor>1234</codigopostalreceptor><paisreceptor>GT</paisreceptor><departamentoreceptor>GUATEMALA</departamentoreceptor><municipioreceptor>GUATEMALA</municipioreceptor>" +
 *          "<grantotal>1767.36000</grantotal></temp_fact_header></VFPData>";
 *
 *
 *              XMLDetailInvoce = "<?xml version = \"1.0\" encoding=\"Windows-1252\" standalone=\"yes\"?><VFPData>	<temp_fact_detail>		<bienoservicio>S</bienoservicio>		<numerolinea>1</numerolinea>		<cantidad>3.00000</cantidad>" +
 *          "<unidadmedida>UNI</unidadmedida><descripcion>Pago de Servicio de Seguridad</descripcion><preciounitario>589.12000</preciounitario>	<precio>1767.36000</precio>	<total>1767.36000</total>	<impuestonombrecorto>IVA</impuestonombrecorto>	<codigounidadgravable>1</codigounidadgravable>	<montogravable>1578.00000</montogravable>" +
 *          "<montoimpuesto>189.36000</montoimpuesto><descuento>.00000</descuento></temp_fact_detail></VFPData>";*/
//VALIDAR QUE NO ESTEN VACIOS LOS  DATOS ENVIADOS
                if (!validateEmply(token, XMLInvoice, XMLDetailInvoce))
                {
                    return(strreponsexml);
                }

                //TODO VALIDAR QUE  SI EL DOCUMENTO YA EXISTE SOLO DEVUELVA EL UUID

                //SE ENVIA DATOS PARA QUE ARME LA ESTRUCTURA DE XML
                String xmlDoc = xml.getXML(XMLInvoice, XMLDetailInvoce, path, fac_num);

                //SE ENVIA EL XML PARA EL WS DE VALIDACION
                XmlDocument validate = wsvalidate.validar(token, xmlDoc);

                // SE VERIFICA EL RESULTADO DE LA RESPUESTA
                XmlNodeList resNodo = validate.GetElementsByTagName("tipo_respuesta");
                string      error   = resNodo[0].InnerXml;

                if ("1".Equals(error.ToString()))
                {
                    String errorDescp = getError(validate);
                    strreponsexml = GetResponseXML(errorDescp, error, this.strreponsexml);
                    return(strreponsexml);
                }

                //SE ENVIA XML PARA REGISTRAR DOCUMENTO
                XmlDocument register = ws.registerDte(token, xmlDoc);

                //SE VALIDA RESPUESTA DEL SERVICIO
                XmlNodeList resReg   = register.GetElementsByTagName("tipo_respuesta");
                string      errorRes = resReg[0].InnerXml;

                // SI EL SERVICIO RETORNA ERROR SE ARMA LA ESTRUCTURA PARA RESPONDER LOS ERRORES A PROFIT
                if ("1".Equals(errorRes.ToString()))
                {
                    String errorDescp = getError(register);
                    strreponsexml = GetResponseXML(errorDescp, errorRes, this.strreponsexml);
                    return(strreponsexml);
                }

                //SI EL SERVICIO FUE RETORNA EXITOSO RETORNA UUID GENERADO POR EL FIRMADO ELECTRONICO
                XmlNodeList uuidNodo = register.GetElementsByTagName("uuid");
                string      uuid     = uuidNodo[0].InnerXml;
                strreponsexml = GetResponseXML("Transacción Exitosa", uuid, errorRes, this.strreponsexml);

                return(strreponsexml);
            }
            catch (Exception e)
            {
                this.strreponsexml = GetResponseXML("Ha ocurrido una excepción no controlada en el sistema \n " + e.Message, "1", this.strreponsexml);
                return(strreponsexml);
            }
        }
Example #2
0
        public DataSet envioSolicitud(String xml_enc, String xml_det, String num_fac)
        {
            String  xmlDoc = "";
            String  asd    = "";
            DataSet ds     = new DataSet();

            try
            {
                XMLFactura xml = new XMLFactura();

                xmlDoc = xml.getXML(xml_enc, xml_det, "ashdashd", num_fac);
                //bool hayInternet = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
                XmlDocument doc = new XmlDocument();
                doc.PreserveWhitespace = true;
                doc.LoadXml(xmlDoc);
                String path = ConfigurationManager.AppSettings["RutaArchivos"].ToString();
                using (XmlTextWriter writer = new XmlTextWriter(path + Constants.TIPO_DOC + "-" + Constants.IDENTIFICADOR_DTE + ".xml", null))
                {
                    writer.Formatting = System.Xml.Formatting.Indented;
                    doc.Save(writer);
                }

                //saveJSon("", "C:\\FACTURAS_JSON\\archivo.txt");
                ds = MainWS(xmlDoc, num_fac);
            }
            catch (DirectoryNotFoundException ex)
            {
                DataSet   dsError = new DataSet();
                DataTable dt      = new DataTable("resultado");
                dt.Columns.Add(new DataColumn("resultado", typeof(string)));
                //dt.Columns.Add(new DataColumn("xmlGenerado", typeof(string)));

                DataRow dr = dt.NewRow();
                dr["resultado"] = "LA RUTA PARA ALMACENAR LOS ARCHIVOS NO ES VALIDA O NO EXISTE. \n " + Environment.NewLine + ex.ToString();
                //  dr["xmlGenerado"] =xmlDoc;
                dt.Rows.Add(dr);
                dsError.Tables.Add(dt);
                ds = dsError;
            }
            catch (ArgumentNullException ex)
            {
                DataSet   dsError = new DataSet();
                DataTable dt      = new DataTable("resultado");
                dt.Columns.Add(new DataColumn("resultado", typeof(string)));
                //dt.Columns.Add(new DataColumn("xmlGenerado", typeof(string)));

                DataRow dr = dt.NewRow();
                dr["resultado"] = "EL DOCUMENTO XML NO SE PUDO CREAR POR LO TANTO ES NULO. \n " + Environment.NewLine + ex.ToString();
                //  dr["xmlGenerado"] =xmlDoc;
                dt.Rows.Add(dr);
                dsError.Tables.Add(dt);
                ds = dsError;
            }
            catch (XmlException ex)
            {
                DataSet   dsError = new DataSet();
                DataTable dt      = new DataTable("resultado");
                dt.Columns.Add(new DataColumn("resultado", typeof(string)));
                //dt.Columns.Add(new DataColumn("xmlGenerado", typeof(string)));

                DataRow dr = dt.NewRow();
                dr["resultado"] = "EL DOCUMENTO XML CONTIENE VALORES INCORRECTOS POR LO TANTO NO SE PUDO GENERAR \n " + Environment.NewLine + ex.ToString();
                //  dr["xmlGenerado"] =xmlDoc;
                dt.Rows.Add(dr);
                dsError.Tables.Add(dt);
                ds = dsError;
            }
            catch (Exception ex)
            {
                DataSet   dsError = new DataSet();
                DataTable dt      = new DataTable("resultado");
                dt.Columns.Add(new DataColumn("resultado", typeof(string)));
                //dt.Columns.Add(new DataColumn("xmlGenerado", typeof(string)));

                DataRow dr = dt.NewRow();
                dr["resultado"] = ex.ToString();
                //  dr["xmlGenerado"] =xmlDoc;
                dt.Rows.Add(dr);
                dsError.Tables.Add(dt);
                ds = dsError;
            }

            return(ds);
        }