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); } }
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); }