public void NodoCompras(List <string> claveAcceso, string PathServer, string fechainicio, string fechaFin) { doc.Load(rutaXml); XmlNode NodosCompras = doc.CreateElement("compras"); //detalleCompraPieyEnca = ObjConsul.ObtenerListaStringdetalleCompra("select TOTALIVA,TOTALICE,TOTALIRBP,SUBTOTALIVA,SUBTOTAL0,SUBTOTAL,TOTAL from TbEncabezadoyPieCompra where SERIE1 = '" + objDetalleCompras.Establecimiento + "'and SERIE2 ='" + objDetalleCompras.PuntoEmision + "' and NUMERO = '" + objDetalleCompras.Secuencial + "'"); detalleCompraPieyEnca = ObjConsul.ObtenerListaStringdetalleCompra("select Compra.TOTALIVA, Compra.TOTALICE, Compra.TOTALIRBP, Compra.SUBTOTALIVA, Compra.SUBTOTAL0, Compra.SUBTOTAL,Compra.TOTAL, EncaOrdenG.SERIE1PROVEEDOR as SERIE1, EncaOrdenG.SERIE2PROVEEDOR as SERIE2, EncaOrdenG.NUMERODOCUMENTOPROVEEDOR as NUMERO,EncaOrdenG.AUTORIZACIONPROVEEDOR, EncaOrdenG.FORMAPAGO, Provee.IDENTIFICACION from TbEncabezadoyPieCompra Compra, TbEncabezadoOrdenGiro EncaOrdenG, TbProveedor Provee where Provee.IDPROVEEDOR = EncaOrdenG.IDPROVEEDOR and Compra.IDEMCABEZADOCOMPRA = EncaOrdenG.IDEMCABEZADOCOMPRA AND EncaOrdenG.ESTADO = 1 and Convert(varchar(10),FECHAORDENGIRO,112) BETWEEN '" + Funcion.FormarFechaGuiones(fechainicio) + "' AND '" + Funcion.FormarFechaGuiones(fechaFin) + "'"); ValoresNotaCreditoATS = ObjConsul.ObtenerListaStringNotaCreditoATS("Select P.IDENTIFICACION,P.TIPOIDENTIFICACION ,N.SERIE1,N.SERIE2,N.NUMERO,N.FECHA,N.AUTORIZACION, N.SUBTOTAL0,N.SUBTOTAL12,N.ICE,N.IVA,C.SERIE1 as serie1FactProvee,C.SERIE2 as serie2FactProvee,C.NUMERO as secuencialFactProvee, O.AUTORIZACIONPROVEEDOR,N.IRBP from TbEncabezadoNotaCredito N, TbEncabezadoyPieCompra C, TbProveedor P, TbEncabezadoOrdenGiro O where N.IDENCABEZADOCOMPRA = C.IDEMCABEZADOCOMPRA and C.IDPROVEEDOR = P.IDPROVEEDOR and O.IDEMCABEZADOCOMPRA = C.IDEMCABEZADOCOMPRA AND N.ESTADO = '1' and N.FECHA BETWEEN '" + fechainicio + "' AND '" + fechaFin + "'"); for (int i = 0; i <= claveAcceso.Count - 1; i++) { XmlNode NodoDetalles = null; string asds = PathServer + @"\Generados\" + claveAcceso[i] + ".xml"; if (System.IO.File.Exists(PathServer + @"\Generados\" + claveAcceso[i] + ".xml")) { if (i == 297) { string a = "dsad"; } DetalleCompras objDetalleCompras = new DetalleCompras(); XmlDocument xDoc = new XmlDocument(); xDoc.Load(PathServer + @"\Generados\" + claveAcceso[i] + ".xml"); Console.WriteLine("Posible Error: " + i); //codDocSustento objDetalleCompras.CodSustento = xDoc.GetElementsByTagName("codDocSustento")[0].InnerText; objDetalleCompras.IdProv = xDoc.GetElementsByTagName("identificacionSujetoRetenido")[0].InnerText; if (xDoc.GetElementsByTagName("identificacionSujetoRetenido")[0].InnerText.Length == 10) { objDetalleCompras.TpIdProv = "02"; } else if (xDoc.GetElementsByTagName("identificacionSujetoRetenido")[0].InnerText.Length == 13) { objDetalleCompras.TpIdProv = "01"; } else { objDetalleCompras.TpIdProv = "03"; } objDetalleCompras.TipoComprobante = "01"; objDetalleCompras.ParteRel = "NO"; objDetalleCompras.FechaRegistro = Funcion.fechaValida(xDoc.GetElementsByTagName("fechaEmision")[0].InnerText); //fechaEmision //objDetalleCompras.Establecimiento= xDoc.GetElementsByTagName("fechaEmision")[0].InnerText; string SERIE = xDoc.GetElementsByTagName("numDocSustento")[0].InnerText; objDetalleCompras.Establecimiento = SERIE.Substring(0, 3); objDetalleCompras.PuntoEmision = SERIE.Substring(3, 3); objDetalleCompras.Secuencial = SERIE.Substring(6, 9); //objDetalleCompras.Establecimiento = detalleCompraPieyEnca[i].SERIE11; //objDetalleCompras.PuntoEmision = detalleCompraPieyEnca[i].SERIE21; //objDetalleCompras.Secuencial = detalleCompraPieyEnca[i].NUMERO1; objDetalleCompras.FechaEmision = Funcion.FormarFecha(xDoc.GetElementsByTagName("fechaEmision")[0].InnerText); //verificar posible error puede ser la autorizacion del proveedor //objDetalleCompras.Autorizacion = xDoc.GetElementsByTagName("claveAcceso")[0].InnerText; objDetalleCompras.Autorizacion = detalleCompraPieyEnca[i].AUTORIZACION1; //detalleCompraPieyEnca = ObjConsul.ObtenerListaStringdetalleCompra("select TOTALIVA,TOTALICE,TOTALIRBP,SUBTOTALIVA,SUBTOTAL0,SUBTOTAL,TOTAL from TbEncabezadoyPieCompra where SERIE1 = '" + objDetalleCompras.Establecimiento + "'and SERIE2 ='" + objDetalleCompras.PuntoEmision + "' and NUMERO = '" + objDetalleCompras.Secuencial + "'"); //Thread.Sleep(500); //detalleCompraPieyEnca = ObjConsul.ObtenerListaStringdetalleCompra("select TOTALIVA,TOTALICE,TOTALIRBP,SUBTOTALIVA,SUBTOTAL0,SUBTOTAL,TOTAL from TbEncabezadoyPieCompra where SERIE1 = '" + objDetalleCompras.Establecimiento + "'and SERIE2 ='" + objDetalleCompras.PuntoEmision + "' and NUMERO = '" + objDetalleCompras.Secuencial + "'"); string detalleCompra = ValoresAts(detalleCompraPieyEnca, objDetalleCompras.Establecimiento, objDetalleCompras.PuntoEmision, objDetalleCompras.Secuencial, objDetalleCompras.IdProv); //if (detalleCompraPieyEnca[i].NUMERO1 == "000000802") //{ // MessageBox.Show(""); //} string[] arregloDetalleCompra = detalleCompra.Split(';'); //verificar objDetalleCompras.BaseNoGraIva = Funcion.reemplazarcaracter(Convert.ToDouble(arregloDetalleCompra[5]).ToString("#####0.00")); //objDetalleCompras.BaseNoGraIva = Funcion.reemplazarcaracter(Convert.ToDouble(detalleCompraPieyEnca[4]).ToString("#####0.00")); //baseImponible objDetalleCompras.BaseImponible = Funcion.reemplazarcaracter(Convert.ToDouble(arregloDetalleCompra[1]).ToString("#####0.00")); //objDetalleCompras.BaseImponible = Funcion.reemplazarcaracter(Convert.ToDouble(detalleCompraPieyEnca[5]).ToString("#####0.00")); //objDetalleCompras.BaseImpGrav = Funcion.reemplazarcaracter(Convert.ToDouble(detalleCompraPieyEnca[3]).ToString("#####0.00")); objDetalleCompras.BaseImpGrav = Funcion.reemplazarcaracter(Convert.ToDouble(arregloDetalleCompra[2]).ToString("#####0.00")); //verificar objDetalleCompras.BaseImpExe = "0.00"; objDetalleCompras.MontoIce = Funcion.reemplazarcaracter(Convert.ToDouble(arregloDetalleCompra[4]).ToString("#####0.00")); objDetalleCompras.MontoIva = Funcion.reemplazarcaracter(Convert.ToDouble(arregloDetalleCompra[3]).ToString("#####0.00")); //objDetalleCompras.MontoIce = Funcion.reemplazarcaracter(Convert.ToDouble(detalleCompraPieyEnca[1]).ToString("#####0.00")); //objDetalleCompras.MontoIva = Funcion.reemplazarcaracter(Convert.ToDouble(detalleCompraPieyEnca[0]).ToString("#####0.00")); objDetalleCompras.ValRetBien10 = "0.00"; objDetalleCompras.ValRetServ20 = "0.00"; objDetalleCompras.ValorRetBienes = "0.00"; objDetalleCompras.ValRetServ50 = "0.00"; objDetalleCompras.ValorRetServicios = "0.00"; objDetalleCompras.ValRetServ100 = "0.00"; objDetalleCompras.TotbasesImpReemb = "0.00"; //DATOS NODO PAGO EXTERIOR objDetalleCompras.PagoLocExt = "01"; objDetalleCompras.PaisEfecPago = "NA"; objDetalleCompras.AplicConvDobTrib = "NA"; objDetalleCompras.PagextsujRetNorLeg = "NA"; //DATOS METODO PAGOS objDetalleCompras.FormaPago = detalleCompraPieyEnca[i].FORMAPAGO1; //DATOS NODOS AIR //baseImponible objDetalleCompras.CodRetAir = xDoc.GetElementsByTagName("codigoRetencion")[0].InnerText; objDetalleCompras.BaseImpAir = xDoc.GetElementsByTagName("baseImponible")[0].InnerText; objDetalleCompras.PorcentajeAir = xDoc.GetElementsByTagName("porcentajeRetener")[0].InnerText; objDetalleCompras.ValRetAir = xDoc.GetElementsByTagName("valorRetenido")[0].InnerText; //DATOS NODOS DATOS RETENCION objDetalleCompras.EstabRetencion1 = xDoc.GetElementsByTagName("estab")[0].InnerText; objDetalleCompras.PtoEmiRetencion1 = xDoc.GetElementsByTagName("ptoEmi")[0].InnerText; objDetalleCompras.SecRetencion1 = xDoc.GetElementsByTagName("secuencial")[0].InnerText; objDetalleCompras.AutRetencion1 = xDoc.GetElementsByTagName("claveAcceso")[0].InnerText; objDetalleCompras.FechaEmiRet1 = Funcion.FormarFecha(xDoc.GetElementsByTagName("fechaEmision")[0].InnerText); NodoDetalles = CrearNodoInfoFactura(objDetalleCompras, true, xDoc); NodosCompras.AppendChild(NodoDetalles); } } //Creamos los nodos de Nota de Credito CrearNodosNotadeCredito(ValoresNotaCreditoATS, ref NodosCompras); XmlNode nodoRaiz = doc.DocumentElement; nodoRaiz.InsertAfter(NodosCompras, nodoRaiz.LastChild); doc.Save(rutaXml); }