public static FacturaDTO GenerarFactura(CfdiV32.Comprobante comprobante, string tipo) { FacturaDTO factura = new FacturaDTO(); try { factura = new FacturaDTO() { tipo = tipo, rfcEmisor = comprobante.Emisor.rfc, rfcReceptor = comprobante.Receptor.rfc, fechaDocto = comprobante.fecha, fechaTimbrado = comprobante.Complemento.Any[0].Attributes["FechaTimbrado"].Value, noFactura = comprobante.folio, UUID = comprobante.Complemento.Any[0].Attributes["UUID"].Value, importeFactura = comprobante.total, moneda = comprobante.Moneda, tipoCambio = comprobante.TipoCambio }; } catch (Exception ex) { LogErrores.Write("Ocurrio un error al Generar la factura con la V.3.2 con el folio: " + comprobante.folio, ex); } return(factura); }
public static void ProcesarFacturas() { List <FacturaDTO> facturasCliente = new List <FacturaDTO>(); List <string> facturasProcesadas = new List <string>(); try { string[] facturas = Directory.GetFiles(pathFacturasClientes, "*.xml"); if (facturas.Count() > 0) { foreach (string file in facturas) { try { XmlSerializer serielizer = new XmlSerializer(typeof(CfdiV32.Comprobante)); XmlTextReader reader = new XmlTextReader(file); CfdiV32.Comprobante comprobanteV32 = (CfdiV32.Comprobante)serielizer.Deserialize(reader); FacturaDTO fac = CommonManagement.GenerarFactura(comprobanteV32, "C"); if (!string.IsNullOrEmpty(fac.noFactura)) { facturasCliente.Add(fac); facturasProcesadas.Add(file); } reader.Dispose(); } catch (Exception e) { LogErrores.Write(string.Format("El archivo {0} no soporta la version 3.2", file), e); try { XmlSerializer serielizer = new XmlSerializer(typeof(CfdiV33.Comprobante)); XmlTextReader reader = new XmlTextReader(file); CfdiV33.Comprobante comprobanteV33 = (CfdiV33.Comprobante)serielizer.Deserialize(reader); facturasCliente.Add(CommonManagement.GenerarFactura(comprobanteV33, "C")); facturasProcesadas.Add(file); reader.Dispose(); } catch (Exception eV33) { LogErrores.Write(string.Format("El archivo {0} no soporta la version 3.3", file), eV33); } } } CommonManagement.PrintArchivo(pathOutClientes, "InvoiceClientes", facturasCliente); CommonManagement.MoveFacturasXML(pathFacturasClientes, facturasProcesadas); } else { Bitacoras.Write("No se encontraron Facturas de Clientes que procesar"); } } catch (Exception ex) { LogErrores.Write("Ocurrio un error al Procesar las facturas de clientes", ex); } }