/// <summary> /// Metodo para crear el detalle de la compra para el pdf /// </summary> /// <returns></returns> /// <creo>Leslie González Vázquez</creo> /// <fecha creo>31/Mayo/2014</fecha creo> /// <modifico></modifico> /// <fecha modifico></fecha modifico> /// <causa modificacion></motivo modificacion> private DataTable Crear_Dt_Productos_Servicios_Detallados(DataTable Dt_Productos_Accesos, Cls_Apl_Principal_Negocio Negocio) { DataTable Dt_Detallado = new DataTable(); DataRow Fila = null; Int32 Cantidad = 0; int i = 0; String[] Accesos = null; String Acceso = String.Empty; try { if (Dt_Productos_Accesos != null) { if (Dt_Productos_Accesos.Rows.Count > 0) { //creamos las columnas del datatable de detalles para el pdf Dt_Detallado.Columns.Add("NO", typeof(Int32)); Dt_Detallado.Columns.Add("NOMBRE", typeof(String)); Dt_Detallado.Columns.Add("NO_ACCESO", typeof(String)); Dt_Detallado.Columns.Add("LUGAR_VENTA", typeof(String)); Dt_Detallado.Columns.Add("COSTO", typeof(String)); Dt_Detallado.Columns.Add("PRODUCTO", typeof(String)); Dt_Detallado.Columns.Add("CODIGO", typeof(String)); Dt_Detallado.Columns.Add("FECHA", typeof(String)); Dt_Detallado.Columns.Add("TIPO", typeof(String)); Dt_Detallado.Columns.Add("IMAGEN", typeof(Byte[])); Dt_Detallado.Columns.Add("BARCODE", typeof(Byte[])); //RECORREMOS EL DATATABLE PARA MANDAR LOS DETALLES foreach (DataRow Dr in Dt_Productos_Accesos.Rows) { Cantidad = Convert.ToInt32(String.IsNullOrEmpty(Dr["CANTIDAD"].ToString()) ? "0" : Dr["CANTIDAD"]); if (Dr["TIPO"].ToString().Trim().Equals("Producto")) { Accesos = Dr["ACCESOS"].ToString().Split(','); } for (i = 1; i <= Cantidad; i++) { Fila = Dt_Detallado.NewRow(); Fila["NO"] = i; Fila["NOMBRE"] = Negocio.P_Nombre; if (Dr["TIPO"].ToString().Trim().Equals("Producto")) { Fila["NO_ACCESO"] = "*" + Accesos[i - 1].ToString().Trim() + "*"; } else { Fila["NO_ACCESO"] = ""; } Fila["LUGAR_VENTA"] = "Internet"; Fila["COSTO"] = String.Format("{0:c}", Dr["COSTO"]); Fila["PRODUCTO"] = Dr["DESCRIPCION"].ToString().Trim(); Fila["CODIGO"] = Dr["CODIGO"].ToString().Trim(); Fila["FECHA"] = String.Format("{0:dd/MMM/yyyy}", Negocio.P_Fecha_Inicio_Vigencia); Fila["TIPO"] = Dr["TIPO"].ToString().Trim();; //Fila["IMAGEN"] = Cls_Metodos_Generales.Convertir_Imagen_Bytes(@Server.MapPath(ConfigurationManager.AppSettings["Imagen_Boleto"]), 200, 300); string Ruta_Archivo = Obtener_Directorio_Compartido(); Ruta_Archivo += "/Imagenes/WEB/Boleto.png"; Fila["IMAGEN"] = Cls_Metodos_Generales.Convertir_Imagen_Bytes(Ruta_Archivo, 200, 300); Ean13 Codigo = new Ean13(); Codigo.ManufacturerCode = Accesos[i - 1].Trim().Substring(0, 5); Codigo.ProductCode = Accesos[i - 1].Trim().Substring(5, 5); Codigo.ChecksumDigit = "0"; Codigo.Scale = 1.8f; System.Drawing.Bitmap bmp = Codigo.CreateBitmap(); string Ruta_Codigo = Server.MapPath("~/Codigos/codigo.bmp"); bmp.Save(Ruta_Codigo); Fila["BARCODE"] = ConversionImagen(Ruta_Codigo); Dt_Detallado.Rows.Add(Fila); } } } } } catch (Exception Ex) { throw new Exception("Error al generar la tabla detallada de productos y servicios. Error[" + Ex.Message + "]"); } return(Dt_Detallado); }
/// <summary> /// Metodo para generar el pdf /// </summary> /// <returns></returns> /// <creo>Leslie González Vázquez</creo> /// <fecha creo>31/Mayo/2014</fecha creo> /// <modifico></modifico> /// <fecha modifico></fecha modifico> /// <causa modificacion></motivo modificacion> private String Generar_Pdf(Cls_Apl_Principal_Negocio Negocio, DataTable Dt_Productos_Accesos) { DataTable Dt_Encabezado = new DataTable(); DataRow Fila = null; DataSet Ds_Reporte = new DataSet(); DataTable Dt_Detallado_Accesos = new DataTable(); try { //creamos el encabezado del pdf Dt_Encabezado.Columns.Add("IMAGEN_ENCABEZADO", typeof(Byte[])); Dt_Encabezado.Columns.Add("NOMBRE", typeof(String)); Dt_Encabezado.Columns.Add("ESTADO", typeof(String)); Dt_Encabezado.Columns.Add("CUIDAD", typeof(String)); Dt_Encabezado.Columns.Add("DOMICILIO", typeof(String)); Dt_Encabezado.Columns.Add("CP", typeof(String)); Dt_Encabezado.Columns.Add("EMAIL", typeof(String)); Dt_Encabezado.Columns.Add("NO_TARJETA", typeof(String)); Dt_Encabezado.Columns.Add("TELEFONO", typeof(String)); Dt_Encabezado.Columns.Add("TOTAL", typeof(String)); Dt_Encabezado.Columns.Add("LEYENDA", typeof(String)); Dt_Encabezado.Columns.Add("FOLIO", typeof(String)); Fila = Dt_Encabezado.NewRow(); //Fila["IMAGEN_ENCABEZADO"] = Cls_Metodos_Generales.Convertir_Imagen_Bytes(@Server.MapPath(ConfigurationManager.AppSettings["Imagen_Encabezado_Reporte"]), 200, 300); string Ruta_Archivo = Obtener_Directorio_Compartido(); Ruta_Archivo += "/Imagenes/WEB/EncabezadoPDF.png"; Fila["IMAGEN_ENCABEZADO"] = Cls_Metodos_Generales.Convertir_Imagen_Bytes(Ruta_Archivo, 200, 300); Fila["NOMBRE"] = Negocio.P_Nombre; Fila["ESTADO"] = Negocio.P_Estado; Fila["CUIDAD"] = Negocio.P_Ciudad; Fila["DOMICILIO"] = Negocio.P_Domicilio; Fila["CP"] = Negocio.P_Codigo_Postal; Fila["EMAIL"] = Negocio.P_Email; Fila["NO_TARJETA"] = Negocio.P_Numero_Tarjeta; Fila["TELEFONO"] = Negocio.P_Telefono; Fila["TOTAL"] = String.Format("{0:c}", Convert.ToDouble(String.IsNullOrEmpty(Negocio.P_Total) ? "0" : Negocio.P_Total)); Fila["LEYENDA"] = Obtener_Leyenda_Boleto(); Fila["FOLIO"] = Negocio.P_No_Venta; Dt_Encabezado.Rows.Add(Fila); Dt_Detallado_Accesos = Crear_Dt_Productos_Servicios_Detallados(Dt_Productos_Accesos, Negocio); //filtramos solo los accesos por productos Dt_Detallado_Accesos = (from Fila_Det in Dt_Detallado_Accesos.AsEnumerable() where Fila_Det.Field <String>("TIPO") == "Producto" select Fila_Det).AsDataView().ToTable(); // Renombra las tablas Dt_Encabezado.TableName = "DT_ENCABEZADO"; //encabezado del reprote Dt_Detallado_Accesos.TableName = "DT_DETALLADO_ACCESOS"; //detalles de los accesos desglosado por unidad Dt_Productos_Accesos.TableName = "DT_PRODUCTOS_ACCESOS"; // productos de la compra Ds_Reporte.Tables.Add(Dt_Encabezado.Copy()); Ds_Reporte.Tables.Add(Dt_Detallado_Accesos.Copy()); Ds_Reporte.Tables.Add(Dt_Productos_Accesos.Copy()); Generar_Reporte(ref Ds_Reporte, "Rpt_Detalles_Compra.rpt", "Entradas_Museo_" + Convert.ToInt32(String.IsNullOrEmpty(Negocio.P_No_Venta) ? "1" : Negocio.P_No_Venta) + ".pdf", "../Rpt/"); } catch (Exception Ex) { throw new Exception("Error al generar el Pdf. Error[" + Ex.Message + ", " + Ex.InnerException + "]"); } return("../Rpt/Entradas_Museo_" + Convert.ToInt32(String.IsNullOrEmpty(Negocio.P_No_Venta) ? "1" : Negocio.P_No_Venta) + ".pdf"); }