Exemplo n.º 1
0
        /// <summary>
        /// Nombre: Frm_Ope_Cancelacion_Load
        ///
        /// Descripción: Método que se ejecuta cuando se a terminado de cargar el formulario.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete.
        /// Fecha Creo: 11 Noviembre 2013 18:53 p.m.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Frm_Ope_Cancelacion_Load(object sender, EventArgs e)
        {
            Cls_Ope_Cancelaciones_Negocio Obj_Cancelaciones = new Cls_Ope_Cancelaciones_Negocio();
            DataTable Dt_Cajas = null;
            Cls_Cat_Terminales_Negocio Rs_Terminal = new Cls_Cat_Terminales_Negocio();
            DataTable Dt_Consulta_Terminal         = new DataTable();

            try
            {
                Dt_Cajas = Obj_Cancelaciones.Consultar_Cajas();

                if (!Dt_Cajas.AsEnumerable().Any())
                {
                    this.BeginInvoke((MethodInvoker) delegate
                    {
                        MessageBox.Show(this, "No se encuentra ninguna caja abierta por el momento", "Información", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        this.Dispose();
                    });
                }

                // cargar Dt_Cajas en Cmb_Cajas
                Cmb_Cajas.DataSource    = Dt_Cajas;
                Cmb_Cajas.DisplayMember = "Caja";
                Cmb_Cajas.ValueMember   = "No_Caja";

                Limpiar_Datos_Consulta(splitContainer1.Panel1);

                //  se consultan la informacion de la pin pad asignada al equipo de computo
                Rs_Terminal.P_Equipo  = Environment.MachineName;
                Rs_Terminal.P_Estatus = "ACTIVO";
                Dt_Consulta_Terminal  = Rs_Terminal.Consultar_Terminales();

                if (Dt_Consulta_Terminal != null && Dt_Consulta_Terminal.Rows.Count > 0)
                {
                    foreach (DataRow Registro in Dt_Consulta_Terminal.Rows)
                    {
                        if (!String.IsNullOrEmpty(Registro[Cat_Terminales.Campo_Puerto].ToString()))
                        {
                            Str_Pinpad_Com = Registro[Cat_Terminales.Campo_Puerto].ToString();
                        }
                        if (!String.IsNullOrEmpty(Registro[Cat_Terminales.Campo_Terminal_ID].ToString()))
                        {
                            Str_Pinpad_Id = Registro[Cat_Terminales.Campo_Terminal_ID].ToString();
                        }
                        if (!String.IsNullOrEmpty(Registro[Cat_Terminales.Campo_Nombre].ToString()))
                        {
                            Str_Pinpad_Equipo = Registro[Cat_Terminales.Campo_Nombre].ToString();
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show(this, Ex.Message, "Error - Método: [Frm_Ope_Cancelacion_Load]", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// Nombre: Consultar_Cajas
        ///
        /// Descripción: Método que consulta las cajas.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete
        /// Fecha Creo: 09 Octubre 2013 10:46 a.m.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <param name="Datos">Clase de entidad para controlar y transportar los datos del usuario a la capa de datos</param>
        /// <returns>Listado con los registros de retiros encontrados según los filtros establecidos</returns>
        public static DataTable Consultar_Cajas(Cls_Ope_Cancelaciones_Negocio Datos)
        {
            StringBuilder Mi_SQL             = new StringBuilder(); //Variable para almacenar la consulta hacía la base de datos.
            DataTable     Dt_Cajas           = null;                //Variable de tipo estructura para almacenar los registros encontrados.
            Boolean       Transaccion_Activa = false;               //Variable que almacena la variable que mantiene el estatus de la transacción.

            //Iniciar Transacción
            Conexion.Iniciar_Helper();

            if (!Conexion.HelperGenerico.Estatus_Transaccion())
            {
                Conexion.HelperGenerico.Conexion_y_Apertura();
            }
            else
            {
                Transaccion_Activa = true;
            }

            try
            {
                Conexion.HelperGenerico.Iniciar_Transaccion();

                //Crear la consulta.
                Mi_SQL.Append(" select ");
                Mi_SQL.Append(Cls_Ayudante_Sintaxis.Convertir_A_Caracter("caja." + Cat_Cajas.Campo_Caja_ID) + " as No_Caja ");
                Mi_SQL.Append(" , ('CAJA ' + " + Cls_Ayudante_Sintaxis.Convertir_A_Caracter(Cls_Ayudante_Sintaxis.Convertir_A_Entero("caja." + Ope_Cajas.Campo_No_Caja)) + ") as Caja");
                Mi_SQL.Append(" from ");
                Mi_SQL.Append(" " + Ope_Cajas.Tabla_Ope_Cajas + " caja  ");
                Mi_SQL.Append(" left outer join " + Cat_Cajas.Tabla_Cat_Cajas + " cat_caja ON ");
                Mi_SQL.Append(" caja." + Ope_Cajas.Campo_Caja_ID + " = cat_caja." + Cat_Cajas.Campo_Caja_ID + " ");
                Mi_SQL.Append(" where ");
                Mi_SQL.Append(" caja." + Ope_Cajas.Campo_Estatus + " = 'ABIERTA' ");
                //Mi_SQL.Append(" and ");
                //Mi_SQL.Append(" caja." + Ope_Cajas.Campo_Caja_ID + " = '" + MDI_Frm_Apl_Principal.Caja_ID + "'");

                if (!string.IsNullOrEmpty(Datos.P_No_Caja))
                {
                    Mi_SQL.Append(" and caja.No_Caja='" + Datos.P_No_Caja + "' ");
                }

                Dt_Cajas = Conexion.HelperGenerico.Obtener_Data_Table(Mi_SQL.ToString());

                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception Ex)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Error al consultar las cajas, Metodo: [Consultar_Cajas]. Error: [" + Ex.Message + "]");
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Dt_Cajas);
        }
        /// <summary>
        /// Nombre: Consultar_Detalle_Ventas
        ///
        /// Descripción: Método que consulta los detalles de la venta.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete.
        /// Fecha Creo: 31 Octubre 2013 10:00 hrs.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <returns>Tabla con los detalles de la búsqueda</returns>
        internal static DataTable Consultar_Detalle_Ventas(Cls_Ope_Cancelaciones_Negocio Datos)
        {
            DataTable     Dt_Resultado       = null;                //Variable que almacenara los resultados de la búsqueda.
            StringBuilder Mi_SQL             = new StringBuilder(); //Variable para almacenar la consulta hacía la base de datos.
            Boolean       Transaccion_Activa = false;               //Variable que almacena la variable que mantiene el estatus de la transacción.

            //Iniciar Transacción
            Conexion.Iniciar_Helper();

            if (!Conexion.HelperGenerico.Estatus_Transaccion())
            {
                Conexion.HelperGenerico.Conexion_y_Apertura();
            }
            else
            {
                Transaccion_Activa = true;
            }

            try
            {
                Conexion.HelperGenerico.Iniciar_Transaccion();

                #region (Datos a Mostrar)
                Mi_SQL.Append(" select ");
                Mi_SQL.Append(" detalle." + Ope_Ventas_Detalles.Campo_Cantidad + " ");
                Mi_SQL.Append(" , producto." + Cat_Productos.Campo_Nombre + " ");
                Mi_SQL.Append(" , detalle." + Ope_Ventas_Detalles.Campo_Subtotal + " ");
                Mi_SQL.Append(" , detalle." + Ope_Ventas_Detalles.Campo_Total + " ");
                #endregion

                #region (Tablas)
                Mi_SQL.Append(" from ");
                Mi_SQL.Append(" " + Ope_Ventas.Tabla_Ope_Ventas + " venta ");

                Mi_SQL.Append(" left outer join " + Ope_Ventas_Detalles.Tabla_Ope_Ventas_Detalles + " detalle on ");
                Mi_SQL.Append(" venta." + Ope_Ventas.Campo_No_Venta + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate() + "=  ");
                Mi_SQL.Append(" detalle." + Ope_Ventas_Detalles.Campo_No_Venta + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate());

                Mi_SQL.Append(" left outer join  " + Cat_Productos.Tabla_Cat_Productos + " producto on ");
                Mi_SQL.Append(" detalle." + Ope_Ventas_Detalles.Campo_Producto_Id + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate() + "=  ");
                Mi_SQL.Append(" producto." + Cat_Productos.Campo_Producto_Id + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate());
                #endregion

                #region (Filtros)
                if (!string.IsNullOrEmpty(Datos.P_No_Venta))
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" venta." + Ope_Ventas.Campo_No_Venta + "='" + Datos.P_No_Venta + "' ");
                }

                if (!string.IsNullOrEmpty(Datos.P_No_Pago))
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" pago." + Ope_Pagos.Campo_No_Pago + "='" + Datos.P_No_Pago + "' ");
                }
                #endregion

                Dt_Resultado = Conexion.HelperGenerico.Obtener_Data_Table(Mi_SQL.ToString());
                Mi_SQL.Remove(0, Mi_SQL.Length);

                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception Ex)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Error al consultar las ventas, Metodo: [Consultar_Detalle_Ventas]. Error: [" + Ex.Message + "]");
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Dt_Resultado);
        }
        /// <summary>
        /// Nombre: Cancelar_Venta
        ///
        /// Descripción: Método que realiza la cancelacion del pago, venta y accesos.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete.
        /// Fecha Creo: 31 Octubre 2013 18:29 hrs.
        /// Usuario Modifico: Olimpo Alberto Cruz Amaya
        /// Fecha Modifico: 06/Febrero/2015
        /// Motivo: Se agrego un motivo de cancelación.
        /// </summary>
        /// <param name="Datos"></param>
        /// <returns></returns>
        public static bool Cancelar_Venta(Cls_Ope_Cancelaciones_Negocio Datos)
        {
            bool          Estado_Operacion   = false;               //Variable que almacena el estatus de la cancelacion.
            StringBuilder Mi_SQL             = new StringBuilder(); //Variable para almacenar la consulta hacía la base de datos.
            Boolean       Transaccion_Activa = false;               //Variable que almacena la variable que mantiene el estatus de la transacción.

            //Iniciar Transacción
            Conexion.Iniciar_Helper();

            if (!Conexion.HelperGenerico.Estatus_Transaccion())
            {
                Conexion.HelperGenerico.Conexion_y_Apertura();
            }
            else
            {
                Transaccion_Activa = true;
            }

            try
            {
                Conexion.HelperGenerico.Iniciar_Transaccion();

                #region (Cancelar Pagos)
                Mi_SQL.Append("update ");
                Mi_SQL.Append(Ope_Pagos.Tabla_Ope_Pagos);
                Mi_SQL.Append(" set ");
                Mi_SQL.Append(Ope_Pagos.Campo_Estatus + "='CANCELADO'");
                Mi_SQL.Append(", " + Ope_Pagos.Campo_Fecha_Cancelacion + "= " + Cls_Ayudante_Sintaxis.Fecha());
                Mi_SQL.Append(" where ");
                Mi_SQL.Append(Ope_Pagos.Campo_No_Venta + "='" + Datos.P_No_Venta + "'");

                Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString());
                Mi_SQL.Remove(0, Mi_SQL.Length);
                #endregion

                #region (Cancelar Venta)
                Mi_SQL.Append("update ");
                Mi_SQL.Append(Ope_Ventas.Tabla_Ope_Ventas);
                Mi_SQL.Append(" set ");
                Mi_SQL.Append(Ope_Ventas.Campo_Estatus + "='CANCELADO'");

                //Mi_SQL.Append(", " +Ope_Ventas.Campo_Motivo_Cancelacion + "='CANCELADO'");
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Motivo_Cancelacion + "='" + Datos.P_Motivo_Cancelacion + "'");//"='CANCELADO'");
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Fecha_Cancelacion + " =now() ");
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Usuario_Cancelo + "='" + MDI_Frm_Apl_Principal.Nombre_Login + "'");
                Mi_SQL.Append(" where ");
                Mi_SQL.Append(Ope_Ventas.Campo_No_Venta + "='" + Datos.P_No_Venta + "'");


                Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString());
                Mi_SQL.Remove(0, Mi_SQL.Length);
                #endregion

                #region (Cancelar Accesos)
                Mi_SQL.Append("update ");
                Mi_SQL.Append(Ope_Accesos.Tabla_Ope_Accesos);
                Mi_SQL.Append(" set ");
                Mi_SQL.Append(Ope_Accesos.Campo_Estatus + "='CANCELADO'");
                Mi_SQL.Append(" where ");
                Mi_SQL.Append(Ope_Accesos.Campo_No_Venta + "='" + Datos.P_No_Venta + "'");

                Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString());
                Mi_SQL.Remove(0, Mi_SQL.Length);
                #endregion

                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }

                Estado_Operacion = true;
            }
            catch (Exception Ex)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Error al cancelar las ventas, Metodo: [Cancelar_Venta]. Error: [" + Ex.Message + "]");
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Estado_Operacion);
        }
        /// <summary>
        /// Nombre: Consultar_Ventas_Sencilla
        ///
        /// Descripción: Método que realiza la consulta de ventas.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete.
        /// Fecha Creo: 31 Octubre 2013 10:00 hrs.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <returns>Tabla con los registros de ventas</returns>
        internal static DataTable Consultar_Ventas_Sencilla(Cls_Ope_Cancelaciones_Negocio Datos)
        {
            DataTable     Dt_Resultado       = null;                //Variable que almacenara los resultados de la búsqueda.
            StringBuilder Mi_SQL             = new StringBuilder(); //Variable para almacenar la consulta hacía la base de datos.
            Boolean       Transaccion_Activa = false;               //Variable que almacena la variable que mantiene el estatus de la transacción.

            //Iniciar Transacción
            Conexion.Iniciar_Helper();

            if (!Conexion.HelperGenerico.Estatus_Transaccion())
            {
                Conexion.HelperGenerico.Conexion_y_Apertura();
            }
            else
            {
                Transaccion_Activa = true;
            }

            try
            {
                Conexion.HelperGenerico.Iniciar_Transaccion();

                #region (Datos Mostrar)
                Mi_SQL.Append(" select DISTINCT ");
                Mi_SQL.Append(" venta." + Ope_Ventas.Campo_No_Venta + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Descuentos + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Subtotal + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Impuestos + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Total + " ");

                if (Datos.P_Es_Venta)
                {
                    Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Fecha_Creo + " as Fecha ");
                }

                if (Datos.P_Es_Grupo)
                {
                    Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Persona_Tramita + " ");
                    Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Empresa + " ");
                    Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Fecha_Tramite + " ");
                    Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Aplican_Dias_Festivos + " ");
                }
                #endregion

                #region (Tablas)
                Mi_SQL.Append(" from  ");
                Mi_SQL.Append(" " + Ope_Ventas.Tabla_Ope_Ventas + " venta  ");

                Mi_SQL.Append(" left outer join " + Ope_Pagos.Tabla_Ope_Pagos + " pago on ");
                Mi_SQL.Append(" venta." + Ope_Ventas.Campo_No_Venta + " = pago." + Ope_Pagos.Campo_No_Venta + " ");

                Mi_SQL.Append(" left outer join " + Ope_Cajas.Tabla_Ope_Cajas + " caja on ");
                Mi_SQL.Append(" pago." + Ope_Pagos.Campo_No_Caja + " = caja." + Ope_Cajas.Campo_No_Caja + " ");

                Mi_SQL.Append(" left outer join " + Cat_Cajas.Tabla_Cat_Cajas + " cat_caja on ");
                Mi_SQL.Append(" caja." + Ope_Cajas.Campo_Caja_ID + " = cat_caja." + Cat_Cajas.Campo_Caja_ID + " ");
                #endregion

                #region (Filtros)
                if (!string.IsNullOrEmpty(Datos.P_No_Venta))
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" venta." + Ope_Ventas.Campo_No_Venta + "='" + Datos.P_No_Venta + "' ");
                }

                if (Datos.P_Es_Grupo)
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" venta." + Ope_Ventas.Campo_Persona_Tramita + " is not null ");
                }

                if (Datos.P_Es_Venta)
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" venta." + Ope_Ventas.Campo_Persona_Tramita + " is null ");
                }

                if (!string.IsNullOrEmpty(Datos.P_Persona_Tramita))
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" upper(venta." + Ope_Ventas.Campo_Persona_Tramita + ") like upper('%" + Datos.P_Persona_Tramita + "%') ");
                }

                if (!string.IsNullOrEmpty(Datos.P_Empresa_Tramita))
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" upper(venta." + Ope_Ventas.Campo_Empresa + ") like upper('%" + Datos.P_Empresa_Tramita + "%') ");
                }

                if (Datos.Fecha_Inicio_Busqueda != null && Datos.Fecha_Inicio_Busqueda != DateTime.MinValue && Datos.Fecha_Fin_Busqueda != null && Datos.Fecha_Fin_Busqueda != DateTime.MinValue)
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" (pago." + Ope_Pagos.Campo_Fecha_Creo + " >= ");
                    Mi_SQL.Append(Cls_Ayudante_Sintaxis.Insertar_Fecha(Datos.Fecha_Inicio_Busqueda));
                    Mi_SQL.Append(" and pago." + Ope_Pagos.Campo_Fecha_Creo + " <= ");
                    Mi_SQL.Append(Cls_Ayudante_Sintaxis.Insertar_Fecha(Datos.Fecha_Fin_Busqueda));
                    Mi_SQL.Append(") ");
                }

                Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                Mi_SQL.Append(" upper(venta." + Ope_Ventas.Campo_Estatus + ") <> upper('CANCELADO') ");

                Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                Mi_SQL.Append(" pago." + Ope_Pagos.Campo_No_Caja + " in (");
                Mi_SQL.Append(" select ");
                Mi_SQL.Append(" caja." + Ope_Cajas.Campo_No_Caja);
                Mi_SQL.Append(" from ");
                Mi_SQL.Append(" " + Ope_Cajas.Tabla_Ope_Cajas + " caja  ");
                Mi_SQL.Append(" left outer join " + Cat_Cajas.Tabla_Cat_Cajas + " cat_caja ON ");
                Mi_SQL.Append(" caja." + Ope_Cajas.Campo_Caja_ID + " = cat_caja." + Cat_Cajas.Campo_Caja_ID + " ");
                Mi_SQL.Append(" where ");
                Mi_SQL.Append(" caja." + Ope_Cajas.Campo_Estatus + " = 'ABIERTA' ");
                Mi_SQL.Append(" and ");
                Mi_SQL.Append(" caja." + Ope_Cajas.Campo_Caja_ID + " = '" + Datos.P_Caja_Id + "')");
                #endregion

                Mi_SQL.Append(" order by " + Ope_Ventas.Campo_No_Venta + " desc ");

                Dt_Resultado = Conexion.HelperGenerico.Obtener_Data_Table(Mi_SQL.ToString());
                Mi_SQL.Remove(0, Mi_SQL.Length);

                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception Ex)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Error al consultar las ventas, Metodo: [Consultar_Ventas_Sencilla]. Error: [" + Ex.Message + "]");
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Dt_Resultado);
        }
        /// <summary>
        /// Nombre: Consultar_Ventas
        ///
        /// Descripción: Método que realiza la consulta de ventas.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete.
        /// Fecha Creo: 31 Octubre 2013 10:00 hrs.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <returns>Tabla con los registros de ventas</returns>
        internal static DataTable Consultar_Ventas(Cls_Ope_Cancelaciones_Negocio Datos)
        {
            DataTable     Dt_Resultado       = null;                //Variable que almacenara el resultado de la consulta.
            StringBuilder Mi_SQL             = new StringBuilder(); //Variable para almacenar la consulta hacía la base de datos.
            Boolean       Transaccion_Activa = false;               //Variable que almacena la variable que mantiene el estatus de la transacción.

            //Iniciar Transacción
            Conexion.Iniciar_Helper();

            if (!Conexion.HelperGenerico.Estatus_Transaccion())
            {
                Conexion.HelperGenerico.Conexion_y_Apertura();
            }
            else
            {
                Transaccion_Activa = true;
            }

            try
            {
                Conexion.HelperGenerico.Iniciar_Transaccion();

                #region (Datos Mostrar)
                Mi_SQL.Append(" select ");
                Mi_SQL.Append(" venta." + Ope_Ventas.Campo_No_Venta + " ");
                Mi_SQL.Append(" , pago." + Ope_Pagos.Campo_No_Pago + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Descuentos + " ");
                Mi_SQL.Append(" , descuentos." + Cat_Descuentos.Campo_Descripcion + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Subtotal + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Impuestos + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Total + " ");
                Mi_SQL.Append(" , " + Cls_Ayudante_Sintaxis.Nulos("forma_pago." + Cat_Formas_Pago.Campo_Nombre, "'Sin Asignar'") + " as forma_pago ");
                Mi_SQL.Append(" , pago." + Ope_Pagos.Campo_Estatus + " ");
                Mi_SQL.Append(" , pago." + Ope_Pagos.Campo_Fecha_Creo + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Persona_Tramita + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Empresa + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Fecha_Tramite + " ");
                Mi_SQL.Append(" , venta." + Ope_Ventas.Campo_Aplican_Dias_Festivos + " ");
                Mi_SQL.Append(" , pago." + Ope_Pagos.Campo_Tipo_Tarjeta_Banco + " ");
                Mi_SQL.Append(" , pago." + Ope_Pagos.Campo_Monto_Comision + " ");
                Mi_SQL.Append(" , pago." + Ope_Pagos.Campo_Monto_Pago + " ");
                Mi_SQL.Append(" , banco." + Cat_Bancos.Campo_Nombre + " as nombre_banco ");
                Mi_SQL.Append(" , pago." + Ope_Pagos.Campo_Referencia_Transferencia + " ");
                Mi_SQL.Append(" , pago." + Ope_Pagos.Campo_Tipo_Tarjeta_Banco + " ");
                Mi_SQL.Append(" , pago." + Ope_Pagos.Campo_Numero_Tarjeta_Banco + " ");


                #endregion

                #region (Tablas)
                Mi_SQL.Append(" from  ");
                Mi_SQL.Append(" " + Ope_Ventas.Tabla_Ope_Ventas + " venta  ");

                Mi_SQL.Append(" left outer join  " + Ope_Pagos.Tabla_Ope_Pagos + " pago on ");
                Mi_SQL.Append(" venta." + Ope_Ventas.Campo_No_Venta + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate() + "=  ");
                Mi_SQL.Append(" pago." + Ope_Pagos.Campo_No_Venta + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate());

                Mi_SQL.Append(" left outer join " + Ope_Cajas.Tabla_Ope_Cajas + " caja on ");
                Mi_SQL.Append(" pago." + Ope_Pagos.Campo_No_Caja + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate() + "=  ");
                Mi_SQL.Append(" caja." + Ope_Cajas.Campo_No_Caja + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate());

                Mi_SQL.Append(" left outer join " + Cat_Motivos_Descuento.Tabla_Cat_Motivos_Descuento + " descuentos on ");
                Mi_SQL.Append(" pago." + Ope_Pagos.Campo_Motivo_ID + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate() + "=  ");
                Mi_SQL.Append(" descuentos." + Cat_Motivos_Descuento.Campo_Motivo_Descuento_ID + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate());

                Mi_SQL.Append(" left outer join " + Cat_Formas_Pago.Tabla_Cat_Formas_Pago + " forma_pago on ");
                Mi_SQL.Append(" pago." + Ope_Pagos.Campo_Forma_ID + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate() + "=  ");
                Mi_SQL.Append(" forma_pago." + Cat_Formas_Pago.Campo_Forma_ID + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate());

                Mi_SQL.Append(" left outer join " + Cat_Bancos.Tabla_Cat_Bancos + " banco on ");
                Mi_SQL.Append(" pago." + Ope_Pagos.Campo_Banco_ID + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate() + "=  ");
                Mi_SQL.Append(" banco." + Cat_Bancos.Campo_Banco_ID + Cls_Ayudante_Sintaxis.Insertar_Default_Database_Collate());
                #endregion

                #region (Filtros)
                if (!string.IsNullOrEmpty(Datos.P_No_Venta))
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" venta." + Ope_Ventas.Campo_No_Venta + "='" + Datos.P_No_Venta + "' ");
                }

                if (!string.IsNullOrEmpty(Datos.P_No_Pago))
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" pago." + Ope_Pagos.Campo_No_Pago + "='" + Datos.P_No_Pago + "' ");
                }

                //if (!string.IsNullOrEmpty(Datos.P_No_Caja))
                //{
                //    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                //    Mi_SQL.Append(" pago." + Ope_Pagos.Campo_No_Caja + "='" + Datos.P_No_Caja+ "' ");
                //}

                if (Datos.P_Es_Grupo)
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" venta." + Ope_Ventas.Campo_Persona_Tramita + " is not null ");
                }

                if (Datos.P_Es_Venta)
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" venta." + Ope_Ventas.Campo_Persona_Tramita + " is null ");
                }

                if (!string.IsNullOrEmpty(Datos.P_Persona_Tramita))
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" upper(venta." + Ope_Ventas.Campo_Persona_Tramita + ") like upper('%" + Datos.P_Persona_Tramita + "%') ");
                }

                if (!string.IsNullOrEmpty(Datos.P_Empresa_Tramita))
                {
                    Mi_SQL.Append(Mi_SQL.ToString().ToLower().Contains("where") ? " and " : " where ");
                    Mi_SQL.Append(" upper(venta." + Ope_Ventas.Campo_Empresa + ") like upper('%" + Datos.P_Empresa_Tramita + "%') ");
                }
                #endregion

                Dt_Resultado = Conexion.HelperGenerico.Obtener_Data_Table(Mi_SQL.ToString());
                Mi_SQL.Remove(0, Mi_SQL.Length);

                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception Ex)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Error al consultar las ventas, Metodo: [Consultar_Ventas]. Error: [" + Ex.Message + "]");
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Dt_Resultado);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Nombre: Btn_Cancelar_Click
        ///
        /// Descripción: Método que realiza la cancelación del pago.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete
        /// Fecha Creo: 01 Noviembre 2013 12:30 Hrs
        /// Usuario Modifico: Olimpo Alberto Cruz Amaya
        /// Fecha Modifico: 06/Febrero/2015
        /// Motivo: Se agrego un motivo de cancelación, antes de efectuar la cancelación.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_Cancelar_Click(object sender, EventArgs e)
        {
            Cls_Ope_Accesos_Negocio       Obj_Accesos       = new Cls_Ope_Accesos_Negocio();       //Variable de negocios para realizar peticiones a la clase de datos.
            Cls_Ope_Cancelaciones_Negocio Obj_Cancelaciones = new Cls_Ope_Cancelaciones_Negocio(); //Variable de negocios para realizar peticiones a la clase de datos.
            DataTable Dt_Accesos     = null;                                                       //Variable para almacenar el resultado de la búsqueda de accesos.
            Boolean   Estatus_PinPad = false;

            try
            {
                //Establecemos filtros de búsqueda.
                Obj_Accesos.P_Estatus  = "UTILIZADO";
                Obj_Accesos.P_No_Venta = Txt_No_Venta_Inf.Text.Trim();
                Dt_Accesos             = Obj_Accesos.Consultar_Accesos();

                //  validamos que el pago se realizo con tarjeta
                if (!String.IsNullOrEmpty(Txt_Monto_Cargar.Text))
                {
                    Estatus_PinPad = true;
                    //  validamos que tenga una pin pad para realizar la cancelacion
                    if (String.IsNullOrEmpty(Str_Pinpad_Id))
                    {
                        MessageBox.Show(this, "Requiere tener una PIN PAD para poder realizar la cancelación de esta venta", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }
                }

                if (Dt_Accesos is DataTable)
                {
                    if (Dt_Accesos.Rows.Count == 0)
                    {
                        //doit cancel venta
                        if (MessageBox.Show(this, "Confirmar la cancelación", "Información", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            //Establecemos el no de venta a cancelar.
                            Obj_Cancelaciones.P_No_Venta = Txt_No_Venta_Inf.Text.Trim();
                            //Ejecutamos la cancelación de la venta.
                            Obj_Cancelaciones.P_Motivo_Cancelacion = Microsoft.VisualBasic.Interaction.InputBox("Ingresar el motivo de la cancelación?", "Motivo de Cancelación", string.Empty);
                            //Se realiza la baja de la recolección
                            if (!string.IsNullOrEmpty(Obj_Cancelaciones.P_Motivo_Cancelacion.Trim()))
                            {
                                if (Obj_Cancelaciones.Cancelar_Venta())
                                {
                                    if (Estatus_PinPad == true)
                                    {
                                        Cancelacion_Pago_Movil();
                                    }

                                    splitContainer1.Panel2Collapsed = true;         //Ocultamos el panel 2
                                    splitContainer1.Panel1Collapsed = false;        //Mostramos el panel 1
                                    Limpiar_Datos_Consulta(splitContainer1.Panel2); //Limpiamos los controles del panel 2
                                    Llenar_Grid_Ventas();                           //Volvemos a cargar el grid de ventas
                                    MessageBox.Show(this, "Se realizó la cancelación de forma correcta", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                            }
                            else
                            {
                                MessageBox.Show(this, "Debe escribir un motivo de cancelación", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show(this, "No es posible cancelar una pago si los accesos ya fueron utilizados.", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show(this, Ex.Message, "Error - Método: [Btn_Cancelar_Click]", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Nombre: Grid_Ventas_CellClick
        ///
        /// Descripción: Método que se invoca cuando se hace click sobre una celda de la tabla de ventass.
        ///
        /// Usuario Creo: Juan Alberto Hernandez Negrete.
        /// Fecha Creo: 01 Noviembre 2013 11:43 Hrs.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Grid_Ventas_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            Cls_Ope_Cancelaciones_Negocio Obj_Cancelaciones = new Cls_Ope_Cancelaciones_Negocio(); //Variable de negocios para realizar peticiones a la clase de datos.
            string    No_Venta          = string.Empty;                                            //Variable para almacenar el número de la venta.
            string    No_Pago           = string.Empty;                                            //Variable para almacenar el número de pago.
            DataTable Dt_Detalles_Venta = null;                                                    //Variable para almacenar el detalle de la venta.
            DataTable Dt_Datos_Pago     = null;                                                    //Variable para almacenar los datos del pago.

            if (e.RowIndex != (-1))
            {
                if (!string.IsNullOrEmpty(Grid_Ventas.Rows[e.RowIndex].Cells[Ope_Ventas.Campo_No_Venta].FormattedValue.ToString()))
                {
                    //Limpir los controles del panel 2 [Datos del Pago]
                    Limpiar_Datos_Consulta(splitContainer1.Panel2);

                    splitContainer1.Panel1Collapsed = true;  //Ocultamos el panel 1
                    splitContainer1.Panel2Collapsed = false; //Mostramos el Panel 2

                    //Obtenemos el número de venta de la fila seleccionada de la tabla de ventas.
                    No_Venta = Grid_Ventas.Rows[e.RowIndex].Cells[Ope_Ventas.Campo_No_Venta].FormattedValue.ToString();

                    //Establecemos los filtros de búsqueda para obtener los datos del pago.
                    Obj_Cancelaciones.P_No_Venta = No_Venta;
                    Obj_Cancelaciones.P_No_Pago  = No_Pago;
                    //Consultamos los datos del pago.
                    Dt_Detalles_Venta = Obj_Cancelaciones.Consultar_Detalle_Ventas();

                    if (Dt_Detalles_Venta is DataTable)
                    {
                        if (Dt_Detalles_Venta.AsEnumerable().Any())
                        {
                            //Consultamos los datos de la venta.
                            Dt_Datos_Pago = Obj_Cancelaciones.Consultar_Ventas();

                            //Establecemos el valor a los controles del panel , que muestran los datos del pago.
                            Array.ForEach(Dt_Datos_Pago.Rows.OfType <DataRow>().ToArray(), fila =>
                            {
                                Txt_No_Venta_Inf.Text   = fila.IsNull(Ope_Ventas.Campo_No_Venta) ? string.Empty : fila.Field <string>(Ope_Ventas.Campo_No_Venta);
                                Txt_Descuentos_Inf.Text = fila.IsNull(Ope_Ventas.Campo_Descuentos) ? string.Empty : string.Format("{0:n}", fila.Field <decimal>(Ope_Ventas.Campo_Descuentos));
                                Txt_Subtotal_Inf.Text   = fila.IsNull(Ope_Ventas.Campo_Subtotal) ? string.Empty : string.Format("{0:n}", fila.Field <decimal>(Ope_Ventas.Campo_Subtotal));
                                Txt_Impuestos_Inf.Text  = fila.IsNull(Ope_Ventas.Campo_Impuestos) ? string.Empty : string.Format("{0:n}", fila.Field <decimal>(Ope_Ventas.Campo_Impuestos));
                                Txt_Total_Inf.Text      = fila.IsNull(Ope_Ventas.Campo_Total) ? string.Empty : string.Format("{0:n}", fila.Field <decimal>(Ope_Ventas.Campo_Total));

                                // se utiliza MySql.Data.Types.MySqlDateTime por el manejador de base de datos, en caso de cambiar a SQL debe ser DateTime
                                Txt_Fecha_Tramite.Text       = fila.IsNull(Ope_Ventas.Campo_Fecha_Tramite) ? string.Empty : string.Format("{0:dd MMM yyyy}", fila.Field <MySql.Data.Types.MySqlDateTime>(Ope_Ventas.Campo_Fecha_Tramite));
                                Txt_Persona_Tramita_Inf.Text = fila.IsNull(Ope_Ventas.Campo_Persona_Tramita) ? string.Empty : fila.Field <string>(Ope_Ventas.Campo_Persona_Tramita);
                                Txt_Empresa_Inf.Text         = fila.IsNull(Ope_Ventas.Campo_Empresa) ? string.Empty : fila.Field <string>(Ope_Ventas.Campo_Empresa);
                                Txt_Dias_Festivos.Text       = fila.IsNull(Ope_Ventas.Campo_Aplican_Dias_Festivos) ? string.Empty : fila.Field <string>(Ope_Ventas.Campo_Aplican_Dias_Festivos);

                                //
                                if (fila.Field <string>("forma_pago").Contains("EFECTIVO"))
                                {
                                    Txt_Monto_Efectivo.Text = fila.IsNull(Ope_Pagos.Campo_Monto_Pago) ? string.Empty : string.Format("{0:n}", fila.Field <decimal>(Ope_Pagos.Campo_Monto_Pago));
                                }
                                else
                                {
                                    Txt_Forma_Pago.Text   = fila.IsNull("forma_pago") ? string.Empty : fila.Field <string>("forma_pago");
                                    Txt_Banco.Text        = fila.IsNull("nombre_banco") ? string.Empty : fila.Field <string>("nombre_banco");
                                    Txt_Tarjeta.Text      = fila.IsNull(Ope_Pagos.Campo_Tipo_Tarjeta_Banco) ? string.Empty : fila.Field <string>(Ope_Pagos.Campo_Tipo_Tarjeta_Banco);
                                    Txt_Comision.Text     = fila.IsNull(Ope_Pagos.Campo_Monto_Comision) ? string.Empty : string.Format("{0:n}", fila.Field <decimal>(Ope_Pagos.Campo_Monto_Comision));
                                    Txt_Monto_Cargar.Text = fila.IsNull(Ope_Pagos.Campo_Monto_Pago) ? string.Empty : string.Format("{0:n}", fila.Field <decimal>(Ope_Pagos.Campo_Monto_Pago));

                                    Txt_Numero_Transaccion.Text = fila.IsNull(Ope_Pagos.Campo_Referencia_Transferencia) ? string.Empty : fila.Field <string>(Ope_Pagos.Campo_Referencia_Transferencia);
                                    Txt_Numero_Tarjeta.Text     = fila.IsNull(Ope_Pagos.Campo_Numero_Tarjeta_Banco) ? string.Empty : fila.Field <string>(Ope_Pagos.Campo_Numero_Tarjeta_Banco);
                                }
                            });

                            if (!String.IsNullOrEmpty(Txt_Numero_Tarjeta.Text))
                            {
                                Txt_Numero_Tarjeta.Text = "xxxxxxxxxxxx" + Txt_Numero_Tarjeta.Text.Substring(12, 4);
                            }

                            //Cargamos el Grid de Detalles de Ventas
                            Grid_Detalle_Venta.DataSource = Dt_Detalles_Venta;

                            #region (Personalizar Estilo del Grid de Detalles de Ventas)

                            #region (Custom Columnas)
                            Grid_Detalle_Venta.EnableHeadersVisualStyles = false;

                            Array.ForEach(Grid_Detalle_Venta.Columns.OfType <DataGridViewColumn>().ToArray(), columna =>
                            {
                                DataGridViewCellStyle rowStyle = Grid_Detalle_Venta.RowHeadersDefaultCellStyle;

                                rowStyle.BackColor       = Color.Black;
                                rowStyle.ForeColor       = Color.White;
                                rowStyle.Font            = new Font("Arial", 9, FontStyle.Bold);
                                columna.HeaderCell.Style = rowStyle;

                                switch (columna.HeaderText)
                                {
                                case "Cantidad":
                                    columna.Width = 100;
                                    columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                                    break;

                                case "Nombre":
                                    columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
                                    columna.Width = 200;
                                    break;

                                case "Subtotal":
                                    columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                                    columna.Width = 100;
                                    columna.DefaultCellStyle.Format = "c";
                                    break;

                                case "Total":
                                    columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                                    columna.Width = 100;
                                    columna.DefaultCellStyle.Format = "c";
                                    break;

                                default:
                                    columna.Visible = true;
                                    break;
                                }
                            });
                            #endregion

                            #region (Custom Filas)
                            Array.ForEach(Grid_Detalle_Venta.Rows.OfType <DataGridViewRow>().ToArray(), fila =>
                            {
                                fila.Height = 30;
                                Array.ForEach(fila.Cells.OfType <DataGridViewCell>().ToArray(), celda =>
                                {
                                    celda.Style.BackColor = SystemColors.Window;
                                    celda.Style.ForeColor = Color.Black;
                                    celda.Style.Font      = new Font("Tahoma", 9, FontStyle.Regular);
                                    celda.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                                });
                            });
                            #endregion

                            #endregion
                        }
                    }
                }
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Nombre: Llenar_Grid_Ventas
        ///
        /// Descripción: Método que carga el grid de ventas y cambia el formato del mismo.
        ///
        /// Usuario Creo: Juan Alberto Hernandez Negrete.
        /// Fecha Creo: 01 Noviembre 2013 11:43 Hrs.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        private void Llenar_Grid_Ventas()
        {
            Cls_Ope_Cancelaciones_Negocio Obj_Ventas = new Cls_Ope_Cancelaciones_Negocio();
            DataTable Dt_Ventas = null;

            try
            {
                #region (Establecer Filtros Busqueda)
                Obj_Ventas.P_No_Venta            = string.IsNullOrEmpty(Txt_No_Venta.Text) ? string.Empty : Txt_No_Venta.Text.Trim();
                Obj_Ventas.P_Caja_Id             = Cmb_Cajas.SelectedValue.ToString();
                Obj_Ventas.P_Es_Venta            = (Btn_Venta.Tag != null) ? (bool)Btn_Venta.Tag : false;
                Obj_Ventas.P_Es_Grupo            = (Btn_Grupo.Tag != null) ? (bool)Btn_Grupo.Tag : false;
                Obj_Ventas.P_Persona_Tramita     = string.IsNullOrEmpty(Txt_Persona_Tramita.Text) ? string.Empty : Txt_Persona_Tramita.Text.Trim();
                Obj_Ventas.P_Empresa_Tramita     = string.IsNullOrEmpty(Txt_Empresa.Text) ? string.Empty : Txt_Empresa.Text.Trim();
                Obj_Ventas.Fecha_Inicio_Busqueda = Dtp_Fecha_Inicio.Value;
                Obj_Ventas.Fecha_Fin_Busqueda    = Dtp_Fecha_Fin.Value;
                Dt_Ventas = Obj_Ventas.Consultar_Ventas_Sencilla();
                #endregion

                #region (Cargar Grid Ventas)
                if (Dt_Ventas is DataTable)
                {
                    if (Dt_Ventas.Rows.Count > 0)
                    {
                        Grid_Ventas.DataSource = Dt_Ventas;
                    }
                    else
                    {
                        Grid_Ventas.DataSource = new DataTable();
                    }
                }
                else
                {
                    Grid_Ventas.DataSource = new DataTable();
                }
                #endregion

                #region (Personalizar Estilo del Grid de Ventas)

                #region (Custom Columnas)
                Grid_Ventas.EnableHeadersVisualStyles = false;
                Array.ForEach(Grid_Ventas.Columns.OfType <DataGridViewColumn>().ToArray(), columna =>
                {
                    DataGridViewCellStyle rowStyle = Grid_Ventas.RowHeadersDefaultCellStyle;

                    rowStyle.BackColor       = Color.Black;
                    rowStyle.ForeColor       = Color.White;
                    rowStyle.Font            = new Font("Arial", 9, FontStyle.Bold);
                    columna.HeaderCell.Style = rowStyle;

                    switch (columna.HeaderText)
                    {
                    case "No_Venta":
                        columna.Visible    = true;
                        columna.Width      = 100;
                        columna.HeaderText = "No Venta";
                        break;

                    case "Descuentos":
                        columna.Visible = false;
                        columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        columna.Width = 100;
                        columna.DefaultCellStyle.Format = "c";
                        break;

                    case "Subtotal":
                        columna.Visible = true;
                        columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        columna.Width = 100;
                        columna.DefaultCellStyle.Format = "c";
                        break;

                    case "Impuestos":
                        columna.Visible = true;
                        columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        columna.Width = 100;
                        columna.DefaultCellStyle.Format = "c";
                        break;

                    case "Total":
                        columna.Visible = true;
                        columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        columna.Width = 100;
                        columna.DefaultCellStyle.Format = "c";
                        break;

                    case "Persona_Tramita":
                        columna.Visible = false;
                        columna.Width   = 100;
                        break;

                    case "Empresa":
                        columna.Visible = true;
                        columna.Width   = 166;
                        columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
                        break;

                    case "Fecha_Tramite":
                        columna.Visible = true;
                        columna.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        columna.Width      = 140;
                        columna.HeaderText = "Fecha Tramite";
                        break;

                    case "Aplican_Dias_Festivos":
                        columna.Visible = false;
                        columna.Width   = 100;
                        break;

                    default:
                        columna.Visible = true;
                        break;
                    }
                });
                #endregion

                #region (Custom Filas)
                Array.ForEach(Grid_Ventas.Rows.OfType <DataGridViewRow>().ToArray(), fila =>
                {
                    fila.Height = 35;
                    Array.ForEach(fila.Cells.OfType <DataGridViewCell>().ToArray(), celda =>
                    {
                        celda.Style.BackColor = SystemColors.Window;
                        celda.Style.ForeColor = Color.Black;
                        celda.Style.Font      = new Font("Tahoma", 9, FontStyle.Regular);
                        celda.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    });
                });
                #endregion

                #endregion
            }
            catch (Exception Ex)
            {
                MessageBox.Show(this, Ex.Message, "Error - Método: [Llenar_Grid_Ventas]", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }