/// <summary> /// Metodo para generar la tabla de la venta /// </summary> /// <param name="Productos">tabla con los datos de los pagos</param> /// <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 Generar_Dt_Pagos(Cls_Apl_Principal_Negocio Negocio) { DataTable Dt_Pagos = new DataTable(); DataRow Fila = null; try { Dt_Pagos.Columns.Add("Forma_Id", typeof(String)); Dt_Pagos.Columns.Add("Monto_Pago", typeof(Decimal)); Dt_Pagos.Columns.Add("Numero_Transaccion", typeof(String)); Dt_Pagos.Columns.Add("Numero_Tarjeta_Banco", typeof(String)); Dt_Pagos.Columns.Add("Estatus", typeof(String)); Fila = Dt_Pagos.NewRow(); Fila["Forma_Id"] = Negocio.Obtener_Forma_Pago(); Fila["Monto_Pago"] = Convert.ToDecimal(String.IsNullOrEmpty(Negocio.P_Total) ? "0" : Negocio.P_Total); Fila["Numero_Transaccion"] = Negocio.P_Numero_Transaccion; Fila["Numero_Tarjeta_Banco"] = Negocio.P_Numero_Tarjeta; Fila["Estatus"] = "PAGADO"; Dt_Pagos.Rows.Add(Fila); } catch (Exception Ex) { throw new Exception("Error al generar la tabla de pagos. Error[" + Ex.Message + "]"); } return(Dt_Pagos); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Btn_Buscar_Click(object sender, EventArgs e) { try { Cls_Ope_Accesos_Negocio Accesos = new Cls_Ope_Accesos_Negocio(); int No_Venta = Convert.ToInt32(Txt_Folio.Text); string Ruta = string.Empty; Accesos.P_No_Venta = string.Format("{0:0000000000}", No_Venta); Cls_Apl_Principal_Negocio Principal = new Cls_Apl_Principal_Negocio(); Principal.P_No_Venta = string.Format("{0:0000000000}", No_Venta); Principal = Principal.Consultar_Venta(); Ruta = Generar_Pdf(Principal, Principal.P_Dt_Productos); Hdf_Ruta.Value = Ruta; Grd_Accesos.DataSource = Accesos.Consultar_Accesos(); Grd_Accesos.DataBind(); } catch (Exception ex) { Msj.Text = ex.Message + "<br />"; /*ScriptManager.RegisterStartupScript(this, this.GetType(), "Mensaje", * "alert('" + ex.Message + "')", true);*/ } }
/// <summary> /// Metodo para generar la venta /// </summary> /// <param name="Productos">Productos que se adquiriran en la compra</param> /// <returns></returns> /// <creo>Leslie González Vázquez</creo> /// <fecha creo>30/Mayo/2014</fecha creo> /// <modifico></modifico> /// <fecha modifico></fecha modifico> /// <causa modificacion></motivo modificacion> private DataTable Generar_Venta_BD(Cls_Apl_Principal_Negocio Negocio, DataTable Dt_Productos) { DataTable Dt_Productos_Accesos = new DataTable(); try { Negocio.P_Subtotal = Convert.ToDecimal(String.IsNullOrEmpty(Negocio.P_Total) ? "0" : Negocio.P_Total); Negocio.P_Total_Venta = Convert.ToDecimal(String.IsNullOrEmpty(Negocio.P_Total) ? "0" : Negocio.P_Total); Negocio.P_Estatus = "PAGADA"; Negocio.P_Fecha_Inicio_Vigencia = Convert.ToDateTime(Formatear_Fecha(Negocio.P_Fecha)); //String VigenciaFin = //String Vigencia = VigenciaFin.Substring(0, 10); Negocio.P_Fecha_Termino_Vigencia = Obtener_Vigencia_Fin(); Negocio.P_Dt_Ventas = Dt_Productos; Negocio.P_Dt_Pagos = Generar_Dt_Pagos(Negocio); if (Negocio.Alta_Venta()) { Dt_Productos_Accesos = Negocio.P_Dt_Productos; } } catch (Exception Ex) { throw new Exception("Error al generar la venta. Error[" + Ex.Message + "]"); } return(Dt_Productos_Accesos); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["CcErrCode"] != null) { int ccErrCode = Convert.ToInt16(Request.QueryString["CcErrCode"]); if (ccErrCode == 50) { /*Mensaje de Error*/ Img_Operacion.ImageUrl = "../Imagenes/paginas/cross-mark.png"; Img_Operacion.CssClass = "Img"; Lbl_Mensaje.CssClass = "alert-box error"; Lbl_Msj.Text = "error al realizar la compra. "; Lbl_Msj.Text += Request.QueryString["Text"]; return; } Img_Operacion.ImageUrl = "../Imagenes/paginas/confirm.png"; Img_Operacion.CssClass = "Img"; Lbl_Mensaje.CssClass = "alert-box success"; Lbl_Msj.Text = "Gracias por Realizar su compra."; if (Application["Compra"] != null) { Negocio_Ventas = (Cls_Apl_Principal_Negocio)Application["Compra"]; Application.Remove("Compra"); Negocio_Ventas.P_Numero_Transaccion = Request.QueryString["OrderId"]; Productos = Crear_Dt_Productos(Negocio_Ventas.P_Productos); Grd_Productos.DataSource = Productos; Grd_Productos.DataBind(); Accesos = Generar_Venta_BD(Negocio_Ventas, Productos); Ruta_Pdf = Generar_Pdf(Negocio_Ventas, Accesos); try { Lbl_Ruta_Pdf.Text = Ruta_Pdf; Enviar_Correo_Pdf(Negocio_Ventas.P_Email, Ruta_Pdf); } catch (Exception ex) { Lbl_Msj.Text = "Ocurrió un error al enviar los boletos al correo asignado.<br />"; Lbl_Msj.Text += "Detalle del Error: " + ex.Message; } } } } }
/// <summary> /// Metodo para generar los datos de la compra /// </summary> /// <returns></returns> /// <creo>Leslie González Vázquez</creo> /// <fecha creo>29/Mayo/2014</fecha creo> /// <modifico></modifico> /// <fecha modifico></fecha modifico> /// <causa modificacion></motivo modificacion> private String Generar_Compra() { //DataTable Dt_Productos = new DataTable(); String Ruta_Pdf = String.Empty; String Parametros = String.Empty; //DataTable Dt_Productos_Accesos = new DataTable(); try { //obtenemos los parametros Parametros = HttpUtility.HtmlDecode(HttpContext.Current.Request["Parametros"] == null ? String.Empty : HttpContext.Current.Request["Parametros"].ToString().Trim()); //deserealizamos el json con los datos a guardar Negocio_Ventas = JsonConvert.DeserializeObject <Cls_Apl_Principal_Negocio>(Parametros); if (Negocio_Ventas.P_Productos != null) { Application.Lock(); Application["Compra"] = Negocio_Ventas; Application.UnLock(); //Session["Compra"] = Negocio_Ventas; //Dt_Productos = Crear_Dt_Productos(Negocio_Ventas.P_Productos); //Enviar_Pago_Internet(Negocio_Ventas); //generamos la compra //Dt_Productos_Accesos = Generar_Venta_BD(Negocio_Ventas, Dt_Productos); /* * //generamos el pdf * Ruta_Pdf = Generar_Pdf(Negocio_Ventas, Dt_Productos_Accesos); * * //enviamos el correo * if (Negocio_Ventas.P_Enviar_Email == "SI" && !String.IsNullOrEmpty(Negocio_Ventas.P_Email) && !String.IsNullOrEmpty(Ruta_Pdf)) * { * Enviar_Correo_Pdf(Negocio_Ventas.P_Email, Ruta_Pdf); * } */ } } catch (Exception Ex) { if (!Ex.Message.ToString().Equals("Error al enviar el correo con el Pdf. Error[Error al enviar correo.]")) { throw new Exception(" Error al generar la compra. Error[" + Ex.Message + "]"); } } finally { Ruta_Pdf = @Server.MapPath(Ruta_Pdf); } return(Ruta_Pdf); }
private void Enviar_Pago_Internet(Cls_Apl_Principal_Negocio Negocio) { NameValueCollection data = new NameValueCollection(); //Declara la coleccion de parametros //Asigna los parametros a enviar a la pagina 3D data.Add("Card", Negocio.P_Numero_Tarjeta.Trim()); data.Add("Expires", Negocio.P_Fecha_Expira); //MM/YY data.Add("Total", Convert.ToDouble(Negocio.P_Total.Replace("$", "")).ToString()); data.Add("CardType", "MC"); //VISA-MC data.Add("MerchantId", "7749753"); data.Add("MerchantName", "Municipio de Guanajuato"); data.Add("MerchantCity", "Guanajuato"); data.Add("ForwardPath", HttpContext.Current.Request.Url.ToString()); data.Add("Cert3D", "03"); data.Add("TipoTarjeta", "MC"); data.Add("Cvv2Val", Negocio.P_Codigo_Seguridad); data.Add("BillToFirstName", Negocio.P_Nombre); HttpHelper.RedirectAndPOST(this.Page, "https://eps.banorte.com/secure3d/Solucion3DSecure.htm", data); }
/// <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"); }
/// <summary> /// Metodo para llenar el grid de los productos y los servicios /// </summary> /// <returns>La cadena con formato Json de los productos y servicios</returns> /// <creo>Leslie González Vázquez</creo> /// <fecha creo>21/Mayo/2014</fecha creo> /// <modifico></modifico> /// <fecha modifico></fecha modifico> /// <causa modificacion></motivo modificacion> public string Llenar_Grid_Productos_Servicios() { Cls_Apl_Principal_Negocio Negocio = new Cls_Apl_Principal_Negocio(); //creamos el objeto de la clase de negocio String Json = "{\"total\":\"0\",\"rows\":[]}"; //aki almacenaremos el json de la tabla DataTable Dt_Productos = new DataTable(); //tabla para guardar los datos de la consulta String Parametros = String.Empty; JsonSerializerSettings Configuracion_Json = new JsonSerializerSettings(); Configuracion_Json.NullValueHandling = NullValueHandling.Ignore; String Fecha_Visita = String.Empty; try { //obtenemos los parametros Parametros = HttpContext.Current.Request["Parametros"] == null ? String.Empty : HttpContext.Current.Request["Parametros"].ToString().Trim(); //deserealizamos el json con los datos a guardar Negocio = JsonConvert.DeserializeObject <Cls_Apl_Principal_Negocio>(Parametros); //obtenemos la fecha de la visita para consultar los datos de los productos Fecha_Visita = Negocio.P_Fecha; if (String.IsNullOrEmpty(Fecha_Visita)) { Fecha_Visita = String.Format("{0:yyyy/MM/dd}", DateTime.Now); } else { Fecha_Visita = Formatear_Fecha(Fecha_Visita); } //consultamos los productos de aceurdo a la fecha de la visita Negocio.P_Fecha_Visita = Convert.ToDateTime(Fecha_Visita); Dt_Productos = Negocio.Consultar_Productos_Servicios(); if (Dt_Productos != null) { if (Dt_Productos.Rows.Count > 0) { Dt_Productos.Columns.Add("Subtotal", typeof(String)); //verificamos si la descripcion esta vacia, le asigamos el nombre del producto foreach (DataRow Dr in Dt_Productos.Rows) { Dr["Subtotal"] = String.Format("{0:n}", 0); if (String.IsNullOrEmpty(Dr[Cat_Productos.Campo_Descripcion].ToString())) { Dr[Cat_Productos.Campo_Descripcion] = Dr[Cat_Productos.Campo_Nombre].ToString(); } } //generamos la cadena json Dt_Productos.TableName = "rows"; Json = Ayudante_JQuery.Crear_Tabla_Formato_JSON_DataGrid(Dt_Productos, Dt_Productos.Rows.Count); } } } catch (Exception Ex) { throw new Exception(" Error al obtener la tabla los productos y servicios. Error[" + Ex.Message + "]"); } return(Json); }
/// <summary> /// /// </summary> /// <returns></returns> public static Cls_Apl_Principal_Negocio Consultar_Venta(Cls_Apl_Principal_Negocio Venta) { Conexion.Iniciar_Helper(); Conexion.HelperGenerico.Conexion_y_Apertura(); StringBuilder Mi_Sql = new StringBuilder(); try { Mi_Sql.Append("SELECT V.*, P.*, "); Mi_Sql.Append("(SELECT A.Vigencia_Inicio FROM " + Ope_Accesos.Tabla_Ope_Accesos); Mi_Sql.Append(" A WHERE A." + Ope_Accesos.Campo_No_Venta); Mi_Sql.Append(" = V." + Ope_Ventas.Campo_No_Venta + " LIMIT 1) Vigencia_Inicio "); Mi_Sql.Append("FROM " + Ope_Ventas.Tabla_Ope_Ventas + " V "); Mi_Sql.Append("JOIN " + Ope_Pagos.Tabla_Ope_Pagos + " P "); Mi_Sql.Append("ON V." + Ope_Ventas.Campo_No_Venta + " = P." + Ope_Pagos.Campo_No_Venta); Mi_Sql.Append(" WHERE V." + Ope_Ventas.Campo_No_Venta + " = '" + Venta.P_No_Venta + "'"); var Vnt = Conexion.HelperGenerico.Obtener_Data_Reader(Mi_Sql.ToString()); while (Vnt.Read()) { Venta.P_Subtotal = Convert.ToDecimal(Vnt[Ope_Ventas.Campo_Subtotal]); Venta.P_Total = Vnt[Ope_Ventas.Campo_Total].ToString(); Venta.P_Estatus = Vnt[Ope_Ventas.Campo_Estatus].ToString(); Venta.P_Email = Vnt[Ope_Ventas.Campo_Correo_Electronico].ToString(); Venta.P_Telefono = Vnt[Ope_Ventas.Campo_Telefono].ToString(); Venta.P_Numero_Tarjeta = Vnt[Ope_Pagos.Campo_Numero_Tarjeta_Banco].ToString(); Venta.P_Nombre = Vnt[Ope_Pagos.Campo_Titular_Tarjeta].ToString(); Venta.P_Domicilio = Vnt[Ope_Pagos.Campo_Domicilio].ToString(); Venta.P_Estado = Vnt[Ope_Pagos.Campo_Estado].ToString(); Venta.P_Codigo_Postal = Vnt[Ope_Pagos.Campo_Codigo_Postal].ToString(); Venta.P_Ciudad = Vnt[Ope_Pagos.Campo_Ciudad].ToString(); Venta.P_Fecha_Inicio_Vigencia = DateTime.Parse( Vnt[Ope_Accesos.Campo_Vigencia_Inicio].ToString()); } Vnt.Close(); /*Se realiza la consulta para generar los accesos*/ Mi_Sql.Clear(); Mi_Sql.Append("SELECT a.Producto_Id PRODUCTO_ID, count(*) CANTIDAD, p.Costo COSTO, "); Mi_Sql.Append("sum(p.Costo) TOTAL, p.Tipo TIPO, p.Descripcion DESCRIPCION, "); Mi_Sql.Append("p.Ruta_Imagen RUTA_IMAGEN,p.Codigo CODIGO, "); Mi_Sql.Append("(select group_concat(ac.No_Acceso separator ', ') "); Mi_Sql.Append("from ope_accesos ac where ac.No_Venta = a.No_Venta "); Mi_Sql.Append("and ac.Producto_Id = a.Producto_Id group by ac.Producto_Id) ACCESOS "); Mi_Sql.Append("from ope_accesos a "); Mi_Sql.Append("join cat_productos p on p.Producto_Id = a.Producto_ID "); Mi_Sql.Append("where No_Venta = '" + Venta.P_No_Venta + "' "); Mi_Sql.Append("group by Producto_Id;"); Venta.P_Dt_Productos = Conexion.HelperGenerico.Obtener_Data_Table(Mi_Sql.ToString()); return Venta; } catch (Exception e) { throw e; } finally { Conexion.HelperGenerico.Cerrar_Conexion(); } }
///******************************************************************************* ///NOMBRE DE LA FUNCIÓN : Alta_Pago ///DESCRIPCIÓN : Inserta un Registro en la base de datos. ///PARAMETROS : Pagos: Instancia de Cls_Ope_Pagos_Negocio con los valores de los campos a dar de alta. ///CREO : Antonio Salvador Benavides Guardado ///FECHA_CREO : 03/Octubre/2013 ///MODIFICO : ///FECHA_MODIFICO : ///CAUSA_MODIFICACIÓN : ///******************************************************************************* public static void Alta_Pago(Cls_Apl_Principal_Negocio Pagos) { String Mi_SQL = ""; String Consecutivo = ""; Boolean Transaccion_Activa = false; Conexion.Iniciar_Helper(); if (!Conexion.HelperGenerico.Estatus_Transaccion()) { Conexion.HelperGenerico.Conexion_y_Apertura(); } else { Transaccion_Activa = true; } try { Conexion.HelperGenerico.Iniciar_Transaccion(); foreach (DataRow Dr_Pago in Pagos.P_Dt_Pagos.Rows) { Consecutivo = Cls_Metodos_Generales.Obtener_ID_Consecutivo(Ope_Pagos.Tabla_Ope_Pagos, Ope_Pagos.Campo_No_Pago, "", 10); Mi_SQL = "INSERT INTO " + Ope_Pagos.Tabla_Ope_Pagos + " ("; Mi_SQL += Ope_Pagos.Campo_No_Pago; Mi_SQL += ", " + Ope_Pagos.Campo_No_Venta; Mi_SQL += ", " + Ope_Pagos.Campo_No_Caja; Mi_SQL += ", " + Ope_Pagos.Campo_Forma_ID; Mi_SQL += ", " + Ope_Pagos.Campo_Monto_Pago; Mi_SQL += ", " + Ope_Pagos.Campo_Monto_Comision; Mi_SQL += ", " + Ope_Pagos.Campo_Numero_Transaccion; Mi_SQL += ", " + Ope_Pagos.Campo_Numero_Tarjeta_Banco; Mi_SQL += ", " + Ope_Pagos.Campo_Tipo_Tarjeta_Banco; Mi_SQL += ", " + Ope_Pagos.Campo_Fecha_Cancelacion; Mi_SQL += ", " + Ope_Pagos.Campo_Estatus; Mi_SQL += ", " + Ope_Pagos.Campo_Domicilio; Mi_SQL += ", " + Ope_Pagos.Campo_Ciudad; Mi_SQL += ", " + Ope_Pagos.Campo_Estado; Mi_SQL += ", " + Ope_Pagos.Campo_Codigo_Postal; Mi_SQL += ", " + Ope_Pagos.Campo_Titular_Tarjeta; Mi_SQL += ", " + Ope_Pagos.Campo_Usuario_Creo; Mi_SQL += ", " + Ope_Pagos.Campo_Fecha_Creo; Mi_SQL += ")"; Mi_SQL += " VALUES ("; Mi_SQL += "'" + Consecutivo + "', "; if (Pagos.P_No_Venta != "" && Pagos.P_No_Venta != null) { Mi_SQL += "'" + Pagos.P_No_Venta + "', "; } else { Mi_SQL += "NULL, "; } Mi_SQL += "NULL, "; Mi_SQL += "'" + Dr_Pago["Forma_Id"].ToString() + "', "; Mi_SQL += (decimal)Dr_Pago["Monto_Pago"] + ", "; Mi_SQL += "0.00, "; Mi_SQL += "'" + Dr_Pago["Numero_Transaccion"].ToString() + "', "; Mi_SQL += "'" + Dr_Pago["Numero_Tarjeta_Banco"].ToString() + "', "; Mi_SQL += "NULL, "; Mi_SQL += "NULL, "; Mi_SQL += "'" + Dr_Pago["Estatus"].ToString() + "', "; if(!String.IsNullOrEmpty(Pagos.P_Domicilio)) Mi_SQL += "'" + Pagos.P_Domicilio + "', "; else Mi_SQL += "NULL, "; if (!String.IsNullOrEmpty(Pagos.P_Ciudad)) Mi_SQL += "'" + Pagos.P_Ciudad + "', "; else Mi_SQL += "NULL, "; if (!String.IsNullOrEmpty(Pagos.P_Estado)) Mi_SQL += "'" + Pagos.P_Estado + "', "; else Mi_SQL += "NULL, "; if (!String.IsNullOrEmpty(Pagos.P_Codigo_Postal)) Mi_SQL += "'" + Pagos.P_Codigo_Postal + "', "; else Mi_SQL += "NULL, "; if (!String.IsNullOrEmpty(Pagos.P_Nombre)) Mi_SQL += "'" + Pagos.P_Nombre + "', "; else Mi_SQL += "NULL, "; Mi_SQL += "'Usuario Punto Venta Web', "; Mi_SQL += Cls_Ayudante_Sintaxis.Fecha(); Mi_SQL += ")"; Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString()); } if (!Transaccion_Activa) { Conexion.HelperGenerico.Terminar_Transaccion(); } } catch (Exception E) { Conexion.HelperGenerico.Abortar_Transaccion(); throw new Exception("Alta_Pago: " + E.Message); } finally { if (!Transaccion_Activa) { Conexion.HelperGenerico.Cerrar_Conexion(); } } }
/// <summary> /// Metodo para consultar si el dia actual es un dia feriado /// </summary> /// <returns></returns> /// <creo>Leslie González Vázquez</creo> /// <fecha creo>20/Mayo/2014</fecha creo> /// <modifico></modifico> /// <fecha modifico></fecha modifico> /// <causa modificacion></motivo modificacion> internal static DataTable Consultar_Productos_Servicios(Cls_Apl_Principal_Negocio Negocio) { DataTable Dt_Datos = new DataTable(); DataTable Dt_Datos_Producto_Id = new DataTable(); StringBuilder Mi_Sql = new StringBuilder(); Boolean Dia_Festivo = false; Conexion.Iniciar_Helper(); Conexion.HelperGenerico.Conexion_y_Apertura(); String Producto_Id_Parametro = ""; try { //consultamos si el dia de la visita es dia festivo Dia_Festivo = Consultar_Dias_Festivos(Negocio.P_Fecha_Visita); //Mi_Sql.Append("select " + Cat_Parametros.Campo_Producto_Id_Web + " from " + Cat_Parametros.Tabla_Cat_Parametros); //Dt_Datos_Producto_Id = Conexion.HelperGenerico.Obtener_Data_Table(Mi_Sql.ToString()); //// se obtiene el parametro del producto que se mostrara en el modulo web //foreach (DataRow Registro in Dt_Datos_Producto_Id.Rows) //{ // if (!String.IsNullOrEmpty(Registro[Cat_Parametros.Campo_Producto_Id_Web].ToString())) // Producto_Id_Parametro = Registro[Cat_Parametros.Campo_Producto_Id_Web].ToString(); //} Mi_Sql.Clear(); Mi_Sql.Append("select 0 as Cantidad, " + Cat_Productos.Campo_Producto_Id + ", "); Mi_Sql.Append(Cat_Productos.Campo_Nombre + ", "); Mi_Sql.Append(Cat_Productos.Campo_Descripcion + ", "); Mi_Sql.Append(Cat_Productos.Campo_Costo + ", "); Mi_Sql.Append(Cat_Productos.Campo_Codigo + ", "); Mi_Sql.Append(Cat_Productos.Campo_Ruta_Imagen + ", "); Mi_Sql.Append(Cat_Productos.Campo_Tipo ); Mi_Sql.Append(" from " + Cat_Productos.Tabla_Cat_Productos); Mi_Sql.Append(" where " + Cat_Productos.Campo_Tipo_Servicio + " != 'ESTACIONAMIENTO'"); Mi_Sql.Append(" and " + Cat_Productos.Campo_Estatus + " = 'ACTIVO' "); Mi_Sql.Append(" and " + Cat_Productos.Campo_Web + "= 'S'"); //if (!String.IsNullOrEmpty(Producto_Id_Parametro)) // Mi_Sql.Append(" and " + Cat_Productos.Campo_Producto_Id + " = '" + Producto_Id_Parametro + "'"); //if (Dia_Festivo) //{ // Mi_Sql.Append(" and " + Cat_Productos.Campo_Tipo + " = 'Servicio'"); // Mi_Sql.Append(" union "); // Mi_Sql.Append("select 0 as Cantidad, " + Cat_Productos.Campo_Producto_Id + ", "); // Mi_Sql.Append(Cat_Productos.Campo_Nombre + ", "); // Mi_Sql.Append(Cat_Productos.Campo_Descripcion + ", "); // Mi_Sql.Append(Cat_Productos.Campo_Costo + ", "); // Mi_Sql.Append(Cat_Productos.Campo_Codigo + ", "); // Mi_Sql.Append(Cat_Productos.Campo_Ruta_Imagen + ", "); // Mi_Sql.Append(Cat_Productos.Campo_Tipo); // Mi_Sql.Append(" from " + Cat_Productos.Tabla_Cat_Productos); // Mi_Sql.Append(" where upper(" + Cat_Productos.Campo_Nombre + ") = 'ENTRADA GENERAL'"); //} Mi_Sql.Append(" order by " + Cat_Productos.Campo_Tipo + " asc"); Dt_Datos = Conexion.HelperGenerico.Obtener_Data_Table(Mi_Sql.ToString()); } catch (Exception Ex) { throw new Exception(" Error al consultar los productos y servicios. Error[" + Ex.Message + "]"); } finally { Conexion.HelperGenerico.Cerrar_Conexion(); } return Dt_Datos; }
///******************************************************************************* ///NOMBRE DE LA FUNCIÓN : Alta_Pago ///DESCRIPCIÓN : Inserta un Registro en la base de datos. ///PARAMETROS : Pagos: Instancia de Cls_Ope_Pagos_Negocio con los valores de los campos a dar de alta. ///CREO : Miguel Angel Bedolla Moreno ///FECHA_CREO : 03/Octubre/2013 ///MODIFICO : ///FECHA_MODIFICO : ///CAUSA_MODIFICACIÓN : ///******************************************************************************* public static Boolean Alta_Venta(Cls_Apl_Principal_Negocio P_Ventas) { String Mi_SQL = ""; String Consecutivo = ""; Boolean Alta_Exitosa = false; Boolean Transaccion_Activa = false; Conexion.Iniciar_Helper(); if (!Conexion.HelperGenerico.Estatus_Transaccion()) { Conexion.HelperGenerico.Conexion_y_Apertura(); } else { Transaccion_Activa = true; } try { Conexion.HelperGenerico.Iniciar_Transaccion(); //obtenemos el numero de venta string where = "No_Venta like '0%'"; Consecutivo = Cls_Metodos_Generales.Obtener_ID_Consecutivo(Ope_Ventas.Tabla_Ope_Ventas, Ope_Ventas.Campo_No_Venta, where, 10); Mi_SQL = "INSERT INTO " + Ope_Ventas.Tabla_Ope_Ventas + " (" + Ope_Ventas.Campo_No_Venta + ", " + Ope_Ventas.Campo_Subtotal + ", " + Ope_Ventas.Campo_Impuestos + ", " + Ope_Ventas.Campo_Descuentos + ", " + Ope_Ventas.Campo_Total + ", " + Ope_Ventas.Campo_Estatus + ", " + Ope_Ventas.Campo_Correo_Electronico + ", " + Ope_Ventas.Campo_Telefono + ", " + Ope_Ventas.Campo_Lugar_Venta + ", " + Ope_Ventas.Campo_Usuario_Creo + ", " + Ope_Ventas.Campo_Fecha_Creo + ") VALUES ('" + Consecutivo + "', "; Mi_SQL += P_Ventas.P_Subtotal + ", 0.00" + ", 0.00" + ", " + P_Ventas.P_Total_Venta + ", '" + P_Ventas.P_Estatus + "'"; if(!string.IsNullOrEmpty(P_Ventas.P_Email)) Mi_SQL += ", '" + P_Ventas.P_Email + "'"; else Mi_SQL += ", NULL"; if (!string.IsNullOrEmpty(P_Ventas.P_Telefono)) Mi_SQL += ", '" + P_Ventas.P_Telefono + "'"; else Mi_SQL += ", NULL"; Mi_SQL += ", 'Internet'"; Mi_SQL += ", 'Usuario Punto Venta Web" + "', " + Cls_Ayudante_Sintaxis.Fecha() + ")"; Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString()); //insertamos los detalles de la venta if (P_Ventas.P_Dt_Ventas != null) { foreach (System.Data.DataRow Dr_Ventas_Detalles in P_Ventas.P_Dt_Ventas.Rows) { Mi_SQL = "INSERT INTO " + Ope_Ventas_Detalles.Tabla_Ope_Ventas_Detalles + " (" + Ope_Ventas_Detalles.Campo_No_Venta + ", " + Ope_Ventas_Detalles.Campo_Producto_Id + ", " + Ope_Ventas_Detalles.Campo_Cantidad + ", " + Ope_Ventas_Detalles.Campo_Subtotal + ", " + Ope_Ventas_Detalles.Campo_Total + ", " + Ope_Ventas_Detalles.Campo_Usuario_Creo + ", " + Ope_Ventas_Detalles.Campo_Fecha_Creo + ") VALUES ('" + Consecutivo + "', '" + Dr_Ventas_Detalles["PRODUCTO_ID"].ToString() + "', " + ((decimal)Dr_Ventas_Detalles["CANTIDAD"]) + ", " + ((decimal)Dr_Ventas_Detalles["COSTO"]) + ", " + ((decimal)Dr_Ventas_Detalles["TOTAL"]) + ", 'Usuario Punto Venta Web" + "', " + Cls_Ayudante_Sintaxis.Fecha() + ")"; Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString()); } } //insertamos los datos del pago P_Ventas.P_No_Venta = Consecutivo; Alta_Pago(P_Ventas); // generar acceso Cls_Ope_Accesos_Negocio P_Accesos = new Cls_Ope_Accesos_Negocio(); P_Accesos.P_No_Venta = Consecutivo; P_Accesos.P_Vigencia_Inicio = P_Ventas.P_Fecha_Inicio_Vigencia; P_Accesos.P_Vigencia_Fin = P_Ventas.P_Fecha_Termino_Vigencia; P_Ventas.P_Dt_Productos = P_Accesos.Alta_Acceso(P_Ventas.P_Dt_Ventas); Alta_Exitosa = true; if (!Transaccion_Activa) { Conexion.HelperGenerico.Terminar_Transaccion(); } } catch (Exception E) { Conexion.HelperGenerico.Abortar_Transaccion(); throw new Exception("Alta_Ventas: " + E.Message); } finally { if (!Transaccion_Activa) { Conexion.HelperGenerico.Cerrar_Conexion(); } } return Alta_Exitosa; }