Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }