public void GenerarDebitNote(En_Archivo archivo) { DebitNoteType ocomprobante; string rutaXml = archivo.Ruta + @"\" + archivo.NombreXML; string rutaPdf = archivo.Ruta + @"\" + archivo.NombreXML.Replace("xml", "pdf"); string nombrePdf = archivo.NombreXML.Replace("xml", "pdf"); XmlSerializer oserial = new XmlSerializer(typeof(DebitNoteType)); using (StreamReader reader = new StreamReader(rutaXml)) { ocomprobante = (DebitNoteType)oserial.Deserialize(reader); } DataSet general = new DataSet(); //Para la cabecera DataTable TablaCabecera = FnTablaCabeceraDebitNote(ocomprobante, archivo); TablaCabecera.TableName = "Comprobante"; general.Tables.Add(TablaCabecera); //Emisor DataTable TablaEmisor = FnTablaEmisor(ocomprobante); TablaEmisor.TableName = "Emisor"; general.Tables.Add(TablaEmisor); //Receptor DataTable TablaReceptor = FnTablaReceptor(ocomprobante); TablaReceptor.TableName = "receptor"; general.Tables.Add(TablaReceptor); //Detalle DataTable TablaDetalle = FnTablaDetalle(ocomprobante); TablaDetalle.TableName = "Detalle"; general.Tables.Add(TablaDetalle); DataTable tablaSustento = FnTablaReferenciadoDebitNote(ocomprobante); string DocumentoReferenciado = ""; string sustento = ""; string TipoComprobanteReferenciado = ""; if (tablaSustento.Rows.Count > 0) { DocumentoReferenciado = tablaSustento.Rows[0]["DocumentoReferenciado"].ToString(); TipoComprobanteReferenciado = tablaSustento.Rows[0]["TipoDocumentoReferenciado"].ToString(); sustento = tablaSustento.Rows[0]["Sustento"].ToString(); } ReportDocument rpt = new ReportDocument(); try { //String rutaReporte = @"C:\Facturacion\CrpInvoice.rpt"; String rutaReporte = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + @"CrpNote.rpt"; //System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + @"\CrpInvoice.rpt"; log.Info(rutaReporte); rpt.Load(rutaReporte); rpt.SetDataSource(general); rpt.SetParameterValue("DocumentoReferenciado", DocumentoReferenciado.ToString()); rpt.SetParameterValue("TipoDocumentoReferenciado", TipoComprobanteReferenciado.ToString()); rpt.SetParameterValue("Sustento", sustento.ToString()); string textoDetraccion = string.Format("Detracciones: {0}", archivo.TextoDetraccion); if (string.IsNullOrEmpty(archivo.TextoDetraccion)) { textoDetraccion = " "; } rpt.SetParameterValue("Detraccion", textoDetraccion); rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, rutaPdf); if (File.Exists(rutaPdf)) { byte[] archivoPdf = File.ReadAllBytes(rutaPdf); archivo.ArchivoPdf = archivoPdf; archivo.NombrePdf = nombrePdf; Ne_Comprobante oComprobante = new Ne_Comprobante(); oComprobante.InsertarRepresentacionImpresa(archivo); log.Info(archivo.NombrePdf + " se genero correctamente la representacion impresa"); } } catch (Exception ex) { log.Error(archivo.NombreXML + " Error " + ex.Message); } }
public void GenerarInvoice(En_Archivo archivo) { InvoiceType ocomprobante; string rutaXml = archivo.Ruta + @"\" + archivo.NombreXML; string rutaPdf = archivo.Ruta + @"\" + archivo.NombreXML.Replace("xml", "pdf"); string nombrePdf = archivo.NombreXML.Replace("xml", "pdf"); XmlSerializer oserial = new XmlSerializer(typeof(InvoiceType)); using (StreamReader reader = new StreamReader(rutaXml)) { ocomprobante = (InvoiceType)oserial.Deserialize(reader); } DataSet general = new DataSet(); //Para la cabecera DataTable TablaCabecera = FnTablaCabeceraInvoice(ocomprobante, archivo); TablaCabecera.TableName = "Comprobante"; general.Tables.Add(TablaCabecera); //Emisor DataTable TablaEmisor = FnTablaEmisor(ocomprobante); TablaEmisor.TableName = "Emisor"; general.Tables.Add(TablaEmisor); //Receptor DataTable TablaReceptor = FnTablaReceptor(ocomprobante); TablaReceptor.TableName = "receptor"; general.Tables.Add(TablaReceptor); //Detalle DataTable TablaDetalle = FnTablaDetalle(ocomprobante); TablaDetalle.TableName = "Detalle"; general.Tables.Add(TablaDetalle); ReportDocument rpt = new ReportDocument(); try { //String rutaReporte = @"C:\Facturacion\CrpInvoice.rpt"; String rutaReporte = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + @"CrpInvoice.rpt"; //System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + @"\CrpInvoice.rpt"; log.Info(rutaReporte); rpt.Load(rutaReporte); rpt.SetDataSource(general); rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, rutaPdf); if (File.Exists(rutaPdf)) { byte[] archivoPdf = File.ReadAllBytes(rutaPdf); archivo.ArchivoPdf = archivoPdf; archivo.NombrePdf = nombrePdf; Ne_Comprobante oComprobante = new Ne_Comprobante(); oComprobante.InsertarRepresentacionImpresa(archivo); log.Info(archivo.NombrePdf + " se genero correctamente la representacion impresa"); } } catch (Exception ex) { log.Error(archivo.NombreXML + " Error " + ex.Message); } }