public DataSet factura(string encabezado, string detalle, string tipoDoc, string fact_num, string est) { RespuestaServicio respuesta = new RespuestaServicio(); string xml = ""; FACT_NUM = fact_num; TIPODOC = tipoDoc; Configuracion.DOC = tipoDoc; VFPData data = Deserialize <VFPData>(encabezado); VFPDataDet dataDet = DeserializeDetail <VFPDataDet>(detalle); xml = XML.setXML(data, dataDet, tipoDoc); saveXML(xml, fact_num, Configuracion.path); System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; com.guatefacturas.dte.Guatefac guatefac = new com.guatefacturas.dte.Guatefac(); guatefac.Credentials = new NetworkCredential(Configuracion.auth_user, Configuracion.auth_password); guatefac.PreAuthenticate = true; int pTipoDoc = setTipoDoc(tipoDoc); string s = guatefac .generaDocumento( Configuracion.usuario, Configuracion.password, Configuracion.nit, Int32.Parse(est), pTipoDoc, Configuracion.maquina, "D", xml); return(generateDS(evaluateResponse(s))); }
public static string setXML(VFPData data, VFPDataDet dataDet, string tipo) { XDeclaration declaracion = new XDeclaration("1.0", "utf-8", "no"); //GTDocumento XElement xmlDoc = new XElement("DocElectronico"); //Encabezado XElement encabezado = new XElement("Encabezado"); xmlDoc.Add(encabezado); //Receptor XElement receptor = new XElement("Receptor"); encabezado.Add(receptor); XElement NITReceptor = new XElement("NITReceptor", data.Temp_fact_header.Idreceptor); receptor.Add(NITReceptor); XElement nombre = new XElement("Nombre", data.Temp_fact_header.Nombrereceptor); receptor.Add(nombre); XElement direccion = new XElement("Direccion", data.Temp_fact_header.Direccionreceptor); receptor.Add(direccion); //InfoDoc XElement infoDoc = new XElement("InfoDoc"); encabezado.Add(infoDoc); XElement tipoVenta = new XElement("TipoVenta", data.Temp_fact_header.TipoVenta); infoDoc.Add(tipoVenta); XElement destinoVenta = new XElement("DestinoVenta", data.Temp_fact_header.DestinoVenta); infoDoc.Add(destinoVenta); DateTime oDate = DateTime.Parse(data.Temp_fact_header.Fechahoraemision); XElement Fecha = new XElement("Fecha", formatDate(oDate)); //XElement Fecha = new XElement("Fecha", data.Temp_fact_header.Fechavencimiento); infoDoc.Add(Fecha); XElement moneda = new XElement("Moneda", data.Temp_fact_header.Moneda); infoDoc.Add(moneda); XElement tasa = new XElement("Tasa", data.Temp_fact_header.Tasa); infoDoc.Add(tasa); XElement referencia = new XElement("Referencia", data.Temp_fact_header.Identificadorunico); infoDoc.Add(referencia); XElement numeroAcceso = new XElement("NumeroAcceso", data.Temp_fact_header.Numeroaccesso); infoDoc.Add(numeroAcceso); XElement serieAdmin = new XElement("SerieAdmin"); infoDoc.Add(serieAdmin); XElement numeroAdmin = new XElement("NumeroAdmin"); infoDoc.Add(numeroAdmin); XElement reversion = new XElement("Reversion", "N"); infoDoc.Add(reversion); //Totales XElement totales = new XElement("Totales"); encabezado.Add(totales); //falta XElement bruto = new XElement("Bruto", data.Temp_fact_header.Bruto); totales.Add(bruto); //falta XElement descuento = new XElement("Descuento", data.Temp_fact_header.Descuento); totales.Add(descuento); //falta XElement exento = new XElement("Exento", 0); totales.Add(exento); XElement otros = new XElement("Otros", 0); totales.Add(otros); //falta //22.32 data.Temp_fact_header.Grantotal XElement neto = new XElement("Neto", data.Temp_fact_header.Neto); totales.Add(neto); XElement isr = new XElement("Isr", data.Temp_fact_header.Isr); totales.Add(isr); //falta XElement iva = new XElement("Iva", data.Temp_fact_header.Iva); totales.Add(iva); //falta XElement total = new XElement("Total", data.Temp_fact_header.Total); totales.Add(total); /********************************************************************************/ //Detalles XElement detalles = new XElement("Detalles"); xmlDoc.Add(detalles); foreach (Temp_fact_detail det in dataDet.Temp_fact_detail) { //Productos XElement productos = new XElement("Productos"); XElement producto = new XElement("Producto", det.Producto); productos.Add(producto); XElement descripcion = new XElement("Descripcion", det.Descripcion); productos.Add(descripcion); XElement medida = new XElement("Medida", det.Medida); productos.Add(medida); XElement cantidad = new XElement("Cantidad", det.Cantidad); productos.Add(cantidad); XElement precio = new XElement("Precio", det.Precio); productos.Add(precio); XElement porDesc = new XElement("PorcDesc", det.PorcDesc); productos.Add(porDesc); XElement impBruto = new XElement("ImpBruto", det.ImpBruto); productos.Add(impBruto); XElement impDescuento = new XElement("ImpDescuento", det.ImpDescuento); productos.Add(impDescuento); int esExento = 0; if (data.Temp_fact_header.Exento == "SI") { esExento = 1; } XElement impExento = new XElement("ImpExento", esExento); productos.Add(impExento); XElement impOtros = new XElement("ImpOtros", det.ImpOtros); productos.Add(impOtros); XElement impNeto = new XElement("ImpNeto", det.ImpNeto); productos.Add(impNeto); XElement impIsr = new XElement("ImpIsr", det.ImpIsr); productos.Add(impIsr); XElement impIva = new XElement("ImpIva", det.ImpIva); productos.Add(impIva); XElement impTotal = new XElement("ImpTotal", det.ImpTotal); productos.Add(impTotal); XElement tipoVentaDet = new XElement("TipoVentaDet", det.TipoVentaDet); productos.Add(tipoVentaDet); detalles.Add(productos); } /********************************************************************************/ if (tipo.Equals("NCRE")) { XElement docAsociados = new XElement("DocAsociados"); xmlDoc.Add(docAsociados); XElement daSerie = new XElement("DASerie", data.Temp_fact_header.DASerie); docAsociados.Add(daSerie); XElement daImpreso = new XElement("DAPreimpreso", data.Temp_fact_header.DAPreimpreso); docAsociados.Add(daImpreso); } XDocument myXML = new XDocument(declaracion, xmlDoc); return(myXML.ToString()); }