Exemplo n.º 1
0
        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);
        }