コード例 #1
0
        private async void tsButtonImportarArchivos_Click(object sender, EventArgs e)
        {
            lblError.Text    = "";
            lblProcesos.Text = "";

            GPCompras gpCompras = new GPCompras(companySelected());

            List <string> archivos = new List <string>();

            foreach (DataGridViewRow row in gridFiles.Rows)
            {
                var item = row.DataBoundItem;
                if (item != null)
                {
                    System.Type type       = item.GetType();
                    string      archivo    = (string)type.GetProperty("archivo").GetValue(item, null);
                    string      directorio = (string)type.GetProperty("directorio").GetValue(item, null);

                    archivos.Add(directorio + "\\" + archivo);
                }
            }

            gpCompras.ErrorImportarPM     += new EventHandler <GPCompras.ErrorImportarPMEventArgs>(oL_ErrorImportarPM);
            gpCompras.ProcesoOkImportarPM += new EventHandler <GPCompras.ProcesoOkImportarPMEventArgs>(oL_ProcesoOkImportarPM);

            int metodo = 1;

            if (radPOP.Checked)
            {
                metodo = 2;
            }

            //gpCompras.Importar(archivos, metodo);
            await gpCompras.IntegrarDocumentosGPAsync(archivos, metodo);

            if (archivos.Count == 0)
            {
                MessageBox.Show("Debe seleccionar archivos");
            }

            gridFiles.DataSource = null;
        }
コード例 #2
0
        private void gridFiles_SelectionChanged(object sender, EventArgs e)
        {
            if (gridFiles.SelectedRows.Count != 0)
            {
                var item = gridFiles.SelectedRows[0].DataBoundItem;
                if (item != null)
                {
                    System.Type type       = item.GetType();
                    string      archivo    = (string)type.GetProperty("archivo").GetValue(item, null);
                    string      directorio = (string)type.GetProperty("directorio").GetValue(item, null);

                    string text = System.IO.File.ReadAllText(directorio + "\\" + archivo);

                    XNamespace cfdi   = @"http://www.sat.gob.mx/cfd/3";
                    XNamespace pago10 = @"http://www.sat.gob.mx/Pagos";
                    XNamespace tfd    = @"http://www.sat.gob.mx/TimbreFiscalDigital";

                    try
                    {
                        XDocument xdoc            = XDocument.Parse(text);
                        string    tipoComprobante = GPCompras.AveriguarElTipoDeCfdi(xdoc, cfdi);
                        switch (tipoComprobante)
                        {
                        case "I":
                            var comprobante = (from c in xdoc.Descendants(cfdi + "Comprobante")
                                               select new
                            {
                                Folio = c.Attribute("Folio") == null ? "" : c.Attribute("Folio").Value,
                                Fecha = c.Attribute("Fecha").Value,
                                FormaDePago = c.Attribute("FormaPago").Value,
                                CondicionesDePago = c.Attribute("CondicionesDePago") == null ? "" : c.Attribute("CondicionesDePago").Value,
                                SubTotal = c.Attribute("SubTotal").Value,
                                TipoCambio = c.Attribute("TipoCambio") == null ? "" : c.Attribute("TipoCambio").Value,
                                Moneda = c.Attribute("Moneda") == null ? "" : c.Attribute("Moneda").Value,
                                Total = c.Attribute("Total").Value,
                                TipoDeComprobante = c.Attribute("TipoDeComprobante").Value,
                                MetodoDePago = c.Attribute("MetodoPago").Value,
                                LugarExpedicion = c.Attribute("LugarExpedicion").Value
                            }).ToList();

                            var emisor = (from c in xdoc.Descendants(cfdi + "Emisor")
                                          select new
                            {
                                Rfc = c.Attribute("Rfc").Value,
                                Nombre = c.Attribute("Nombre") == null ? "" : c.Attribute("Nombre").Value,
                                Regimen = c.Attribute("RegimenFiscal") == null ? "" : c.Attribute("RegimenFiscal").Value,
                            }).ToList();

                            var receptor = (from c in xdoc.Descendants(cfdi + "Receptor")
                                            select new
                            {
                                Rfc = c.Attribute("Rfc").Value,
                                Nombre = c.Attribute("Nombre") == null ? "" : c.Attribute("Nombre").Value
                            }).ToList();

                            var concepto = (from c in xdoc.Descendants(cfdi + "Concepto")
                                            select new
                            {
                                Cantidad = c.Attribute("Cantidad").Value,
                                Unidad = c.Attribute("ClaveUnidad").Value,
                                NoIdentificacion = c.Attribute("NoIdentificacion") == null ? "" : c.Attribute("NoIdentificacion").Value,
                                Descripcion = c.Attribute("Descripcion").Value,
                                ValorUnitario = c.Attribute("ValorUnitario").Value,
                                Importe = c.Attribute("Importe").Value
                            }).ToList();

                            var retenciones = (from c in xdoc.Descendants(cfdi + "Impuestos").Where(x => x.Attribute("TotalImpuestosRetenidos") != null).Descendants(cfdi + "Retencion")
                                               select new
                            {
                                Impuesto = c.Attribute("Impuesto").Value,
                                Importe = c.Attribute("Importe").Value
                            }).ToList();

                            var traslado = (from c in xdoc.Descendants(cfdi + "Impuestos").Where(x => x.Attribute("TotalImpuestosTrasladados") != null).Descendants(cfdi + "Traslado")
                                            select new
                            {
                                Impuesto = c.Attribute("Impuesto").Value,
                                TipoFactor = c.Attribute("TipoFactor").Value,
                                Tasa = c.Attribute("TasaOCuota").Value,
                                Importe = c.Attribute("Importe").Value
                            }).ToList();

                            var timbreDigital = (from c in xdoc.Descendants(tfd + "TimbreFiscalDigital")
                                                 select new
                            {
                                UUID = c.Attribute("UUID").Value
                            }).ToList();

                            dataGridView1.DataSource = comprobante;
                            dataGridView2.DataSource = emisor;
                            dataGridView3.DataSource = receptor;
                            dataGridView4.DataSource = concepto;
                            dataGridView5.DataSource = traslado;
                            dataGridView6.DataSource = retenciones;
                            dataGridView7.DataSource = timbreDigital;
                            dataGridView8.DataSource = null;
                            //dataGridView9.DataSource = ;
                            break;

                        case "P":
                            var comprobanteP = (from c in xdoc.Descendants(cfdi + "Comprobante")
                                                select new
                            {
                                folio = c.Attribute("Folio") == null ? "" : c.Attribute("Folio").Value,
                                fecha = c.Attribute("Fecha").Value,
                                tipoDeComprobante = c.Attribute("TipoDeComprobante").Value,
                            }).ToList();


                            var emisorP = (from c in xdoc.Descendants(cfdi + "Emisor")
                                           select new
                            {
                                Rfc = c.Attribute("Rfc").Value,
                                Nombre = c.Attribute("Nombre") == null ? "" : c.Attribute("Nombre").Value,
                                Regimen = c.Attribute("RegimenFiscal") == null ? "" : c.Attribute("RegimenFiscal").Value,
                            }).ToList();

                            var receptorP = (from c in xdoc.Descendants(cfdi + "Receptor")
                                             select new
                            {
                                Rfc = c.Attribute("Rfc").Value,
                                Nombre = c.Attribute("Nombre") == null ? "" : c.Attribute("Nombre").Value,
                                UsoCFDI = c.Attribute("UsoCFDI") == null ? "" : c.Attribute("UsoCFDI").Value,
                            }).ToList();

                            var conceptoP = (from c in xdoc.Descendants(cfdi + "Concepto")
                                             select new
                            {
                                Cantidad = c.Attribute("Cantidad").Value,
                                Unidad = c.Attribute("ClaveUnidad").Value,
                                Producto = c.Attribute("ClaveProdServ") == null ? "" : c.Attribute("ClaveProdServ").Value,
                                Descripcion = c.Attribute("Descripcion").Value,
                            }).ToList();

                            var pagoP = (from c in xdoc.Descendants(pago10 + "Pago")
                                         select new
                            {
                                CuentaDelBeneficiario = c.Attribute("CtaBeneficiario") == null ? "" : c.Attribute("CtaBeneficiario").Value,
                                RFCEmisorCuentaBeneficiario = c.Attribute("RfcEmisorCtaBen") == null ? "" : c.Attribute("RfcEmisorCtaBen").Value,
                                CuentaDelOrdenante = c.Attribute("CtaOrdenante") == null ? "" : c.Attribute("CtaOrdenante").Value,
                                RFCEmisorCuentaOrdenante = c.Attribute("RfcEmisorCtaOrd") == null ? "" : c.Attribute("RfcEmisorCtaOrd").Value,
                                NumeroDeOperacion = c.Attribute("NumOperacion") == null ? "" : c.Attribute("NumOperacion").Value,
                                Monto = c.Attribute("Monto").Value,
                                MonedaDelPago = c.Attribute("MonedaP").Value,
                                FormaDePagoP = c.Attribute("FormaDePagoP").Value,
                                FechaDelPago = c.Attribute("FechaPago").Value,
                            }).ToList();

                            var docRelacionadoP = (from c in xdoc.Descendants(pago10 + "DoctoRelacionado")
                                                   select new
                            {
                                SaldoInsoluto = c.Attribute("ImpSaldoInsoluto") == null ? "" : c.Attribute("ImpSaldoInsoluto").Value,
                                Pagado = c.Attribute("ImpPagado") == null ? "" : c.Attribute("ImpPagado").Value,
                                SaldoAnterior = c.Attribute("ImpSaldoAnt") == null ? "" : c.Attribute("ImpSaldoAnt").Value,
                                Parcialidad = c.Attribute("NumParcialidad").Value,
                                MetodoDePago = c.Attribute("MetodoDePagoDR").Value,
                                TipoDeCambio = c.Attribute("TipoCambioDR") == null ? "" : c.Attribute("TipoCambioDR").Value,
                                Moneda = c.Attribute("MonedaDR").Value,
                                UUID = c.Attribute("IdDocumento").Value,
                            }).ToList();

                            var timbreDigitalP = (from c in xdoc.Descendants(tfd + "TimbreFiscalDigital")
                                                  select new
                            {
                                UUID = c.Attribute("UUID").Value
                            }).ToList();

                            dataGridView1.DataSource = comprobanteP;
                            dataGridView2.DataSource = emisorP;
                            dataGridView3.DataSource = receptorP;
                            dataGridView4.DataSource = pagoP;
                            dataGridView5.DataSource = null;
                            dataGridView6.DataSource = null;
                            dataGridView7.DataSource = timbreDigitalP;
                            dataGridView8.DataSource = docRelacionadoP;
                            ////dataGridView9.DataSource = ;

                            break;

                        default:
                            lblError.Text += "Este comprobante no se puede integrar a GP porque no es un comprobante de Ingreso ni de Pago" + Environment.NewLine;
                            lblError.Refresh();
                            break;
                        }
                    }
                    catch (Exception abr)
                    {
                        lblError.Text += "Excepción al abrir el archivo. Es probable que el xml no sea válido. Revise el archivo." + Environment.NewLine + abr.Message;
                        lblError.Refresh();
                    }
                }
            }
        }