/// <summary>
        /// Nombre: Consultar_Detalles_Grupo
        ///
        /// Descripción: Método que realiza la consulta de los detalles del grupos.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete.
        /// Fecha Creo: 22 Octubre 2013 10:34 a.m.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <param name="Datos"></param>
        /// <returns></returns>
        public static DataTable Consultar_Detalles_Grupo(Cls_Ope_Grupos_Negocio Datos)
        {
            StringBuilder Mi_SQL             = new StringBuilder();
            Boolean       Transaccion_Activa = false;
            DataTable     Dt_Datos           = null;

            Conexion.Iniciar_Helper();

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

            try
            {
                Conexion.HelperGenerico.Iniciar_Transaccion();

                Mi_SQL.Append(" select ");
                Mi_SQL.Append(" detalles_venta." + Ope_Ventas_Detalles.Campo_Cantidad + " as CANTIDAD ");
                Mi_SQL.Append(", producto." + Cat_Productos.Campo_Nombre + " as PRODUCTO ");
                Mi_SQL.Append(", " + Cls_Ayudante_Sintaxis.Convertir_A_Decimal("detalles_venta." + Ope_Ventas_Detalles.Campo_Total) + " as TOTAL ");
                Mi_SQL.Append(", detalles_venta." + Ope_Ventas_Detalles.Campo_Producto_Id + " as PRODUCTO_ID ");
                Mi_SQL.Append(", detalles_venta." + Ope_Ventas_Detalles.Campo_Subtotal + " as COSTO ");
                Mi_SQL.Append(", producto." + Cat_Productos.Campo_Tipo + " as TIPO ");
                Mi_SQL.Append(", '' as IMPRIMIR ");

                Mi_SQL.Append(" from ");
                Mi_SQL.Append(Ope_Ventas_Detalles.Tabla_Ope_Ventas_Detalles + " detalles_venta ");

                Mi_SQL.Append(" left outer join " + Cat_Productos.Tabla_Cat_Productos + " producto on ");
                Mi_SQL.Append(" detalles_venta." + Ope_Ventas_Detalles.Campo_Producto_Id + "=producto." + Cat_Productos.Campo_Producto_Id);

                Mi_SQL.Append(" where ");
                Mi_SQL.Append(" detalles_venta." + Ope_Ventas.Campo_No_Venta + "='" + Datos.P_No_Venta + "' ");

                Dt_Datos = 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("Consultar_Grupos: " + Ex.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Dt_Datos);
        }
        /// <summary>
        /// Nombre: Cancelar_Grupo
        ///
        /// Descripción: Método que cancela la captura del grupo.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete
        /// Fecha Creo: 22 Octubre 2013 09:47 a.m.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <param name="Datos">Objeto que permite transportar datos de la capa de usuarios a la de datos.</param>
        /// <returns>El estatus de la operación actual</returns>
        public static bool Cancelar_Grupo(Cls_Ope_Grupos_Negocio Datos)
        {
            StringBuilder Mi_SQL             = new StringBuilder();
            Boolean       Estatus_Operacion  = 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();

                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 + "='" + Datos.P_Motivo_Cancelacion + "'");
                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);

                Estatus_Operacion = true;
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception Ex)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Cancelar_Grupo: " + Ex.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Estatus_Operacion);
        }
        /// <summary>
        /// Nombre: Frm_Cat_Ventana_Busqueda_Grupos
        ///
        /// Descripción: Método que realiza la carga inicial de la página.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete.
        /// Fecha Creo: 22 Octubre 2013 19:16 p.m.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        public Frm_Cat_Ventana_Busqueda_Grupos()
        {
            InitializeComponent();//Se inicializan la carga inicial de los controles del formulario.
            Inicializar_Controles();

            //Agregamos el evento que se ejecuta cuando se realiza la seleccion de  un elemento de la tabla de grupos.
            Grid_Grupos.CellClick += (sender, e) =>
            {
                if (e.RowIndex != (-1))
                {
                    if (!string.IsNullOrEmpty(Grid_Grupos.Rows[e.RowIndex].Cells["NO_VENTA"].FormattedValue.ToString()))
                    {
                        Cls_Ope_Grupos_Negocio Obj_Grupos = new Cls_Ope_Grupos_Negocio();
                        //Establecemos los valores que serán devueltos con los resultados de la búsqueda
                        this.No_Venta               = Grid_Grupos.Rows[e.RowIndex].Cells["NO_VENTA"].FormattedValue.ToString();
                        Obj_Grupos.P_No_Venta       = this.No_Venta;
                        this.Persona_Tramita        = Grid_Grupos.Rows[e.RowIndex].Cells["PERSONA_TRAMITA"].FormattedValue.ToString();
                        this.Empresa                = Grid_Grupos.Rows[e.RowIndex].Cells["EMPRESA"].FormattedValue.ToString();
                        this.Fecha_Tramite          = ((MySql.Data.Types.MySqlDateTime)Grid_Grupos.Rows[e.RowIndex].Cells["FECHA_TRAMITE"].Value).GetDateTime();
                        this.Fecha_Inicio_Vigencia  = ((MySql.Data.Types.MySqlDateTime)Grid_Grupos.Rows[e.RowIndex].Cells["FECHA_INICIO_VIGENCIA"].Value).GetDateTime();
                        this.Fecha_Termino_Vigencia = ((MySql.Data.Types.MySqlDateTime)Grid_Grupos.Rows[e.RowIndex].Cells["FECHA_TERMINO_VIGENCIA"].Value).GetDateTime();
                        this.Aplica_Dias_Festivos   = Grid_Grupos.Rows[e.RowIndex].Cells["APLICA_DIAS_FESTIVOS"].FormattedValue.ToString();
                        this.Total          = Grid_Grupos.Rows[e.RowIndex].Cells["TOTAL"].FormattedValue.ToString();
                        this.Hacer_Busqueda = true;                                  //Establecemos que si se realizo la selección de un elemento de la tabla.
                        this.Dt_Grupos      = Obj_Grupos.Consultar_Detalles_Grupo(); //Se realiza la consulta del detalle del grupo seleccionado.

                        //Se válida que al seleccionar un grupo el mismo no se encuentre cancelado.
                        if (!Grid_Grupos.Rows[e.RowIndex].Cells["ESTATUS"].FormattedValue.ToString().Equals("Cancelado") &&
                            !Grid_Grupos.Rows[e.RowIndex].Cells["ESTATUS"].FormattedValue.ToString().Equals("PAGADO"))
                        {
                            this.Close();
                        }
                        else
                        {
                            this.Hacer_Busqueda = false;
                            MessageBox.Show(this, "El registro seleccionado actualmente se encuentra " +
                                            Grid_Grupos.Rows[e.RowIndex].Cells["ESTATUS"].FormattedValue.ToString() + ", ya no es posible realizar movimientos.",
                                            "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
            };
        }
        /// <summary>
        /// Nombre: Btn_Consultar_Click
        ///
        /// Descripción: Método que realiza la consulta de los grupos según los filtros seleccionados.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete
        /// Fecha Creo: 22 Octubre 2013 18:07 p.m.
        /// Usuario Modifico: Roberto González Oseguera
        /// Fecha Modifico: 21-feb-2014
        /// Causa modificación: Se cambia <DateTime?> por <MySql.Data.Types.MySqlDateTime?> para recibir
        ///                     un campo fecha al utilizar una base de datos MySQL
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_Consultar_Click(object sender, EventArgs e)
        {
            Cls_Ope_Grupos_Negocio Obj_Grupos = new Cls_Ope_Grupos_Negocio(); //Variable para realizar peticiones a la clase de negocios.
            DataTable Dt_Grupos = null;                                       //Variable que almacena los resultados de grupos segun los filtros seleccionados.

            try
            {
                //Establecer los filtros de la búsqueda de grupos.
                Grid_Grupos.DataSource              = new DataTable();
                Obj_Grupos.P_Persona_Tramita        = (string.IsNullOrEmpty(Txt_Persona_Tramita.Text)) ? string.Empty : Txt_Persona_Tramita.Text.Trim();
                Obj_Grupos.P_Empresa                = (string.IsNullOrEmpty(Txt_Empresa.Text)) ? string.Empty : Txt_Empresa.Text.Trim();
                Obj_Grupos.P_Fecha_Inicio_Vigencia  = Dtp_Fecha_Inicio.Value;
                Obj_Grupos.P_Fecha_Termino_Vigencia = Dtp_Fecha_Fin.Value;
                //Se realiza la consulta de grupos.
                Dt_Grupos = Obj_Grupos.Consultar_Grupos();

                //Cargamos la tabla con los resultados de la búsqueda de grupos.
                if (Dt_Grupos is DataTable)
                {
                    Grid_Grupos.DataSource = Dt_Grupos.AsEnumerable()
                                             .Select(grupo => new
                    {
                        NO_VENTA               = grupo.IsNull("No_Venta") ? string.Empty : grupo.Field <string>("No_Venta"),
                        FECHA_TRAMITE          = grupo.IsNull("Fecha_Tramite") ? null : grupo.Field <MySql.Data.Types.MySqlDateTime?>("Fecha_Tramite"),
                        PERSONA_TRAMITA        = grupo.IsNull("Persona_Tramita") ? string.Empty : grupo.Field <string>("Persona_Tramita"),
                        EMPRESA                = grupo.IsNull("Empresa") ? string.Empty : grupo.Field <string>("Empresa"),
                        FECHA_INICIO_VIGENCIA  = grupo.IsNull("Fecha_Tramite") ? null : grupo.Field <MySql.Data.Types.MySqlDateTime?>("Fecha_Inicio_Vigencia"),
                        FECHA_TERMINO_VIGENCIA = grupo.IsNull("Fecha_Tramite") ? null : grupo.Field <MySql.Data.Types.MySqlDateTime?>("Fecha_Fin_Vigencia"),
                        APLICA_DIAS_FESTIVOS   = grupo.IsNull("Aplican_Dias_Festivos") ? string.Empty : grupo.Field <string>("Aplican_Dias_Festivos"),
                        TOTAL   = grupo.IsNull(Ope_Ventas.Campo_Total) ? 0M : grupo.Field <decimal>(Ope_Ventas.Campo_Total),
                        ESTATUS = grupo.IsNull(Ope_Ventas.Campo_Estatus) ? string.Empty : grupo.Field <string>(Ope_Ventas.Campo_Estatus)
                    })
                                             .ToList();
                }

                Array.ForEach(Grid_Grupos.Columns.OfType <DataGridViewColumn>().ToArray(), columna => {
                    columna.Visible = false;

                    switch (columna.HeaderText)
                    {
                    case "FECHA_TRAMITE":
                        columna.Visible = true;
                        columna.Width   = 120;
                        break;

                    case "PERSONA_TRAMITA":
                        columna.Visible = true;
                        columna.Width   = 142;
                        break;

                    case "EMPRESA":
                        columna.Visible = true;
                        break;

                    case "ESTATUS":
                        columna.Visible = true;
                        break;

                    default:
                        break;
                    }
                    if (!string.IsNullOrEmpty(columna.HeaderText))
                    {
                        columna.HeaderText = columna.HeaderText.Replace("_", " ");
                    }
                });

                Array.ForEach(Grid_Grupos.Rows.OfType <DataGridViewRow>().ToArray(), fila =>
                {
                    Array.ForEach(fila.Cells.OfType <DataGridViewCell>().ToArray(), celda => { celda.Style.BackColor = Color.WhiteSmoke; celda.Style.Font = new Font("Tahoma", 9, FontStyle.Regular); });
                });
            }
            catch (Exception Ex)
            {
                MessageBox.Show(this, Ex.Message, "Error - Método:[Btn_Consultar_Click]", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Nombre: Consultar_Grupos
        ///
        /// Descripción: Método que realiza la consulta de los grupos.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete.
        /// Fecha Creo: 22 Octubre 2013 10:34 a.m.
        /// Usuario Modifico: Roberto González Oseguera
        /// Fecha Modifico: 24-feb-2014
        /// Causa Modificación: Se cambia el filtro por fecha para se para inicial y final
        /// </summary>
        /// <param name="Datos"></param>
        /// <returns></returns>
        public static DataTable Consultar_Grupos(Cls_Ope_Grupos_Negocio Datos)
        {
            StringBuilder Mi_SQL = new StringBuilder();

            try
            {
                Mi_SQL.Append(" select venta.*");
                Mi_SQL.Append(" from ");
                Mi_SQL.Append(Ope_Ventas.Tabla_Ope_Ventas + " venta ");

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

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

                if (!string.IsNullOrEmpty(Datos.P_Estatus))
                {
                    Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                    Mi_SQL.Append(Ope_Ventas.Campo_Estatus + "='" + Datos.P_Estatus + "' ");
                }

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

                if (Datos.P_Fecha_Inicio_Vigencia != DateTime.MinValue && Datos.P_Fecha_Termino_Vigencia != DateTime.MinValue)
                {
                    Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                    Mi_SQL.Append("(" + Ope_Ventas.Campo_Fecha_Tramite + " between " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Inicio_Vigencia.AddDays(-1)) + " ");
                    Mi_SQL.Append(" and ");
                    Mi_SQL.Append(" " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Termino_Vigencia) + ") ");
                }
                else if (Datos.P_Fecha_Inicio_Vigencia != DateTime.MinValue)
                {
                    Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                    Mi_SQL.Append("(" + Ope_Ventas.Campo_Fecha_Tramite + " >= ");
                    Mi_SQL.Append(" " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Inicio_Vigencia) + ") ");
                }
                else if (Datos.P_Fecha_Termino_Vigencia != DateTime.MinValue)
                {
                    Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                    Mi_SQL.Append("(" + Ope_Ventas.Campo_Fecha_Tramite + " >= ");
                    Mi_SQL.Append(" " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Termino_Vigencia) + ") ");
                }

                Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                Mi_SQL.Append(Ope_Ventas.Campo_Persona_Tramita + " is not null ");

                BDMySQL BD = new BDMySQL();
                return(BD.Consultar(Mi_SQL.ToString()));
            }
            catch (Exception Ex)
            {
                throw new Exception("Consultar_Grupos: " + Ex.Message);
            }
            finally
            {
            }
        }
        /// <summary>
        /// Nombre: Consultar_Grupos
        ///
        /// Descripción: Método que realiza la consulta de los grupos.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete.
        /// Fecha Creo: 22 Octubre 2013 10:34 a.m.
        /// Usuario Modifico: Roberto González Oseguera
        /// Fecha Modifico: 24-feb-2014
        /// Causa Modificación: Se cambia el filtro por fecha para se para inicial y final
        /// </summary>
        /// <param name="Datos"></param>
        /// <returns></returns>
        public static DataTable Consultar_Grupos(Cls_Ope_Grupos_Negocio Datos)
        {
            StringBuilder Mi_SQL             = new StringBuilder();
            Boolean       Transaccion_Activa = false;
            DataTable     Dt_Datos           = null;

            Conexion.Iniciar_Helper();

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

            try
            {
                Conexion.HelperGenerico.Iniciar_Transaccion();

                Mi_SQL.Append(" select venta.*");
                Mi_SQL.Append(" from ");
                Mi_SQL.Append(Ope_Ventas.Tabla_Ope_Ventas + " venta ");

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

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

                if (!string.IsNullOrEmpty(Datos.P_Estatus))
                {
                    Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                    Mi_SQL.Append(Ope_Ventas.Campo_Estatus + "='" + Datos.P_Estatus + "' ");
                }

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

                if (Datos.P_Fecha_Inicio_Vigencia != DateTime.MinValue && Datos.P_Fecha_Termino_Vigencia != DateTime.MinValue)
                {
                    Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                    Mi_SQL.Append("(" + Ope_Ventas.Campo_Fecha_Tramite + " between " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Inicio_Vigencia.AddDays(-1)) + " ");
                    Mi_SQL.Append(" and ");
                    Mi_SQL.Append(" " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Termino_Vigencia) + ") ");
                }
                else if (Datos.P_Fecha_Inicio_Vigencia != DateTime.MinValue)
                {
                    Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                    Mi_SQL.Append("(" + Ope_Ventas.Campo_Fecha_Tramite + " >= ");
                    Mi_SQL.Append(" " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Inicio_Vigencia) + ") ");
                }
                else if (Datos.P_Fecha_Termino_Vigencia != DateTime.MinValue)
                {
                    Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                    Mi_SQL.Append("(" + Ope_Ventas.Campo_Fecha_Tramite + " >= ");
                    Mi_SQL.Append(" " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Termino_Vigencia) + ") ");
                }

                Mi_SQL.Append((Mi_SQL.ToString().ToLower().Contains("where")) ? " and " : " where ");
                Mi_SQL.Append(Ope_Ventas.Campo_Persona_Tramita + " is not null ");

                Dt_Datos = 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("Consultar_Grupos: " + Ex.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Dt_Datos);
        }
        /// <summary>
        /// Nombre: Alta_Grupo
        ///
        /// Descripción: Método que realiza el alta del grupo.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete
        /// Fecha Creo: 21 Octubre 2013 18:50
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <param name="Datos"></param>
        /// <returns></returns>
        public static bool Alta_Grupo(Cls_Ope_Grupos_Negocio Datos)
        {
            StringBuilder Mi_SQL             = new StringBuilder();
            String        No_Venta           = "";
            Boolean       Estatus_Operacion  = 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();
                No_Venta = Cls_Metodos_Generales.Obtener_ID_Consecutivo(Ope_Ventas.Tabla_Ope_Ventas, Ope_Ventas.Campo_No_Venta, "", 10);

                #region (Registrar Venta)
                Mi_SQL.Append("INSERT INTO " + Ope_Ventas.Tabla_Ope_Ventas + " (");
                Mi_SQL.Append(Ope_Ventas.Campo_No_Venta);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Total);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Estatus);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Persona_Tramita);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Empresa);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Fecha_Tramite);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Fecha_Inicio_Vigencia);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Fecha_Fin_Vigencia);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Aplican_Dias_Festivos);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Usuario_Creo);
                Mi_SQL.Append(" , " + Ope_Ventas.Campo_Fecha_Creo);
                Mi_SQL.Append(") VALUES (");
                Mi_SQL.Append("'" + No_Venta + "'");
                Mi_SQL.Append(", " + Datos.P_Total);
                Mi_SQL.Append(", 'Pendiente'");
                Mi_SQL.Append(", '" + Datos.P_Persona_Tramita + "'");
                Mi_SQL.Append(", '" + Datos.P_Empresa + "'");
                Mi_SQL.Append(", " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Tramite));
                Mi_SQL.Append(", " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Inicio_Vigencia));
                Mi_SQL.Append(", " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Termino_Vigencia));
                Mi_SQL.Append(", '" + Datos.P_Aplica_Dias_Festivos + "'");
                Mi_SQL.Append(", 'Usuario Punto Venta Web'");
                Mi_SQL.Append(", " + Cls_Ayudante_Sintaxis.Fecha());
                Mi_SQL.Append(")");

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

                #region (Registrar Detalle Venta)
                if (Datos.P_Dt_Ventas is DataTable)
                {
                    var detalles_grupo = Datos.P_Dt_Ventas.AsEnumerable()
                                         .Select(det_grupo => new
                    {
                        _producto_id = det_grupo.IsNull("PRODUCTO_ID") ? string.Empty : det_grupo.Field <string>("PRODUCTO_ID"),
                        _cantidad    = det_grupo.IsNull("CANTIDAD") ? 0.0M : det_grupo.Field <decimal>("CANTIDAD"),
                        _costo       = det_grupo.IsNull("COSTO") ? 0.0M : det_grupo.Field <decimal>("COSTO"),
                        _total       = det_grupo.IsNull("TOTAL") ? 0.0M : det_grupo.Field <decimal>("TOTAL")
                    });

                    if (detalles_grupo.Any())
                    {
                        foreach (var det_grupo in detalles_grupo)
                        {
                            Mi_SQL.Append("INSERT INTO " + Ope_Ventas_Detalles.Tabla_Ope_Ventas_Detalles + " (" + Ope_Ventas_Detalles.Campo_No_Venta);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Producto_Id);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Cantidad);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Subtotal);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Total);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Usuario_Creo);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Fecha_Creo);
                            Mi_SQL.Append(") VALUES ('");
                            Mi_SQL.Append(No_Venta);
                            Mi_SQL.Append("', '" + det_grupo._producto_id);
                            Mi_SQL.Append("', " + det_grupo._cantidad);
                            Mi_SQL.Append(", " + det_grupo._costo);
                            Mi_SQL.Append(", " + det_grupo._total);
                            Mi_SQL.Append(", 'Usuario Punto Venta Web");
                            Mi_SQL.Append("', " + Cls_Ayudante_Sintaxis.Fecha());
                            Mi_SQL.Append(")");
                            Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString());
                            Mi_SQL.Remove(0, Mi_SQL.Length);
                        }
                    }
                }
                #endregion

                Estatus_Operacion = true;

                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception Ex)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Alta_Grupo: " + Ex.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Estatus_Operacion);
        }
        ///*******************************************************************************************************
        ///NOMBRE_FUNCIÓN: Imprimir_Recibo
        ///DESCRIPCIÓN: Formar un string con la información del recibo de pago y anviar a la impresora
        ///PARÁMETROS:
        ///CREO: Roberto González Oseguera
        ///FECHA_CREO: 24-oct-2013
        ///MODIFICÓ:
        ///FECHA_MODIFICÓ:
        ///CAUSA_MODIFICACIÓN:
        ///*******************************************************************************************************
        private void Imprimir_Recibo()
        {
            StringBuilder Texto_Imprimir = new StringBuilder(120);
            // consultar parámetros
            var Obj_Parametros = new Cls_Apl_Parametros_Negocio();

            Obj_Parametros = Obj_Parametros.Obtener_Parametros();
            int     Cantidad_Producto;
            decimal Total_Producto;
            decimal Total_Pagado;
            Dictionary <string, string> Dic_Formas_Pago = Obtener_Formas_Pago();

            // validar que la tabla no sea nulo
            if (Dt_Datos_Pago != null && Dt_Datos_Pago.Columns.Contains("ACCESOS"))
            {
                // formar texto del recibo
                Texto_Imprimir.AppendLine(Obj_Parametros.P_Encabezado_Recibo + "\n");
                Texto_Imprimir.AppendLine("Fecha " + DateTime.Now.ToString("dd-MMM-yyyy HH:mm:ss").ToLower());
                // encabezado detalles:
                Texto_Imprimir.AppendLine("".PadLeft(40, '-') + "\n" + "  Producto                       Precio\n" + "".PadLeft(40, '-'));
                // recorrer la tabla
                foreach (DataRow Fila_Venta in Dt_Datos_Pago.Rows)
                {
                    // obtener la cantidad de productos y validar que sea mayor que cero
                    if (int.TryParse(Fila_Venta["CANTIDAD"].ToString(), out Cantidad_Producto) == true && Cantidad_Producto > 0)
                    {
                        // obtener el tipo de producto y recortar si excede la longitud
                        Tipo_Acceso = Fila_Venta["PRODUCTO"].ToString();
                        if (Tipo_Acceso.Length > 23)
                        {
                            Tipo_Acceso = Tipo_Acceso.Substring(0, 23);
                        }
                        decimal.TryParse(Fila_Venta["TOTAL"].ToString(), out Total_Producto);
                        // agregar línea producto
                        Texto_Imprimir.AppendLine(
                            Cantidad_Producto.ToString().PadLeft(4, '0') + " "
                            + Tipo_Acceso.PadRight(23) + " "
                            + Total_Producto.ToString("#,##0.00").PadLeft(10)
                            );
                        // si es un SERVICIO y se imprime, enviar impresión a la impresora de servicios
                        if (string.Compare(Fila_Venta["TIPO"].ToString(), "Servicio", true) == 0 && string.Compare(Fila_Venta["IMPRIMIR"].ToString(), "True", true) == 0 && !string.IsNullOrEmpty(Obj_Impresora_Caja.P_Impresora_Servicios))
                        {
                            string Imprimir_Servicio = Tipo_Acceso + "\n\n\n\n\n";
                            // enviar a imprimir productos
                            for (int i = 0; i < Cantidad_Producto; i++)
                            {
                                RawPrinterHelper.Enviar_Texto_Impresora(Obj_Impresora_Caja.P_Impresora_Servicios, Reemplazo_StringBuilder(new StringBuilder(Imprimir_Servicio)).ToString(), "Servicio " + i + 1 + No_Venta);
                            }
                        }
                    }
                }
                // separador y total
                Texto_Imprimir.AppendLine("".PadLeft(40, '-') + "\n" + "Subtotal".PadRight(24) + Subtotal_Pago.ToString("c").PadLeft(15));
                // si hay descuento: mostrar
                if (Descuento_Pago > 0)
                {
                    Texto_Imprimir.AppendLine(("Descuento " + Motivo_Descuento).PadRight(29) + Descuento_Pago.ToString("c").PadLeft(10));
                }
                Texto_Imprimir.AppendLine("Total".PadRight(24) + Total_Pago.ToString("c").PadLeft(15));
                // agregar forma de pago
                if (Dt_Formas_Pago != null)
                {
                    string Tarjeta = "";
                    string Str_Forma_Pago;
                    foreach (DataRow Fila in Dt_Formas_Pago.Rows)
                    {
                        Str_Forma_Pago = "";
                        if (Dic_Formas_Pago.ContainsKey(Fila["Forma_Id"].ToString()))
                        {
                            Str_Forma_Pago = Dic_Formas_Pago[Fila["Forma_Id"].ToString()];
                        }
                        decimal.TryParse(Fila["Monto_Pago"].ToString(), out Total_Pagado);
                        Texto_Imprimir.AppendLine(("Su pago " + Str_Forma_Pago).PadRight(24) + Total_Pagado.ToString("c").PadLeft(15));
                        Tarjeta = Fila["Numero_Tarjeta_Banco"].ToString().Trim();
                        // si hay un número de tarjeta, mostrar últimos 3 caracteres
                        if (!string.IsNullOrEmpty(Tarjeta))
                        {
                            Texto_Imprimir.AppendLine(Tarjeta.Substring(Tarjeta.Length - 3, 3).PadLeft(16, '*'));
                        }
                    }
                }

                // folio y cajero
                Texto_Imprimir.AppendLine("\nFolio: " + No_Venta);
                Texto_Imprimir.AppendLine("Cajero: Usuario Punto Venta Web");

                // obtener datos del grupo
                Cls_Ope_Grupos_Negocio Obj_Grupos_Negocio = new Cls_Ope_Grupos_Negocio();
                Obj_Grupos_Negocio.P_No_Venta = No_Venta;
                DataTable Dt_Grupos = Obj_Grupos_Negocio.Consultar_Grupos();
                if (Dt_Grupos != null && Dt_Grupos.Rows.Count > 0)
                {
                    // agregar datos del grupo
                    Texto_Imprimir.AppendLine("".PadLeft(40, '-') + "\n" + "Grupo " + Dt_Grupos.Rows[0][Ope_Ventas.Campo_Empresa].ToString());
                    Texto_Imprimir.AppendLine(Dt_Grupos.Rows[0][Ope_Ventas.Campo_Persona_Tramita].ToString());
                }

                // separador y mensaje del día
                Texto_Imprimir.AppendLine("\n" + Obj_Parametros.P_Mensaje_Dia_Recibo + "\n\n\n\n\n\n\n\n");

                //// enviar a la impresora
                RawPrinterHelper.Enviar_Texto_Impresora(Obj_Impresora_Caja.P_Impresora_Pago, Reemplazo_StringBuilder(Texto_Imprimir).ToString(), "Venta " + No_Venta);
                //RawPrinterHelper.Enviar_Texto_Impresora(Obj_Impresora_Caja.P_Impresora_Pago, Texto_Imprimir.ToString().Replace("ñ", "\x0A4").Replace("á", "\x0A0"), "Venta " + No_Venta);
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Nombre: Actualizar_Grupo
        ///
        /// Descripción: Método que actualiza los datos del grupo.
        ///
        /// Usuario Creo: Juan Alberto Hernández Negrete
        /// Fecha Creo: 22 Octubre 2013 09:28 a.m.
        /// Usuario Modifico:
        /// Fecha Modifico:
        /// </summary>
        /// <param name="Datos">Objeto que permite transportar datos de la capa de usuarios a la de datos.</param>
        /// <returns>El estatus de la operación actual</returns>
        public static bool Actualizar_Grupo(Cls_Ope_Grupos_Negocio Datos)
        {
            StringBuilder Mi_SQL             = new StringBuilder();
            Boolean       Estatus_Operacion  = 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();

                #region (Actualizar Datos Grupo)
                Mi_SQL.Append("update " + Ope_Ventas.Tabla_Ope_Ventas);
                Mi_SQL.Append(" set ");
                Mi_SQL.Append(Ope_Ventas.Campo_Persona_Tramita + "='" + Datos.P_Persona_Tramita + "'");
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Empresa + "='" + Datos.P_Empresa + "'");
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Fecha_Tramite + "=" + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Tramite));
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Fecha_Inicio_Vigencia + "=" + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Inicio_Vigencia));
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Fecha_Fin_Vigencia + "=" + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(Datos.P_Fecha_Termino_Vigencia));
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Aplican_Dias_Festivos + "='" + Datos.P_Aplica_Dias_Festivos + "'");
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Total + "=" + Datos.P_Total);
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Usuario_Modifico + "='" + MDI_Frm_Apl_Principal.Nombre_Usuario + "'");
                Mi_SQL.Append(", " + Ope_Ventas.Campo_Fecha_Modifico + "=" + Cls_Ayudante_Sintaxis.Fecha());
                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 (Eliminar Detalle Grupo)
                Mi_SQL.Append("delete from " + Ope_Ventas_Detalles.Tabla_Ope_Ventas_Detalles);
                Mi_SQL.Append(" where ");
                Mi_SQL.Append(Ope_Ventas_Detalles.Campo_No_Venta + "='" + Datos.P_No_Venta + "'");

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

                #region (Registrar Detalle Venta)
                if (Datos.P_Dt_Ventas is DataTable)
                {
                    var detalles_grupo = Datos.P_Dt_Ventas.AsEnumerable()
                                         .Select(det_grupo => new
                    {
                        _producto_id = det_grupo.IsNull("PRODUCTO_ID") ? string.Empty : det_grupo.Field <string>("PRODUCTO_ID"),
                        _cantidad    = det_grupo.IsNull("CANTIDAD") ? 0 : det_grupo.Field <int>("CANTIDAD"),
                        _costo       = det_grupo.IsNull("COSTO") ? 0 : det_grupo.Field <decimal>("COSTO"),
                        _total       = det_grupo.IsNull("TOTAL") ? 0 : det_grupo.Field <decimal>("TOTAL")
                    });

                    if (detalles_grupo.Any())
                    {
                        foreach (var det_grupo in detalles_grupo)
                        {
                            Mi_SQL.Append("INSERT INTO " + Ope_Ventas_Detalles.Tabla_Ope_Ventas_Detalles + " (" + Ope_Ventas_Detalles.Campo_No_Venta);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Producto_Id);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Cantidad);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Subtotal);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Total);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Usuario_Creo);
                            Mi_SQL.Append(", " + Ope_Ventas_Detalles.Campo_Fecha_Creo);
                            Mi_SQL.Append(") VALUES ('");
                            Mi_SQL.Append(Datos.P_No_Venta);
                            Mi_SQL.Append("', '" + det_grupo._producto_id);
                            Mi_SQL.Append("', " + det_grupo._cantidad);
                            Mi_SQL.Append(", " + det_grupo._costo);
                            Mi_SQL.Append(", " + det_grupo._total);
                            Mi_SQL.Append(", '" + ERP_BASE.Paginas.Paginas_Generales.MDI_Frm_Apl_Principal.Nombre_Usuario);
                            Mi_SQL.Append("', " + Cls_Ayudante_Sintaxis.Fecha());
                            Mi_SQL.Append(")");
                            Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString());
                            Mi_SQL.Remove(0, Mi_SQL.Length);
                        }
                    }
                }
                #endregion

                Estatus_Operacion = true;
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception Ex)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Actualizar_Grupo: " + Ex.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Estatus_Operacion);
        }