///*************************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Modificar_Forma_Pago
        ///DESCRIPCIÓN          : Realiza la modificación de una forma de pago en la base de datos
        ///PARÁMETROS           :
        ///CREO                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 09 Octubre 2013
        ///MODIFICO             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*************************************************************************************
        private Boolean Modificar_Forma_Pago()
        {
            Cls_Cat_Formas_Pago_Negocio P_Forma_Pago = new Cls_Cat_Formas_Pago_Negocio();
            Boolean Modificar = false;

            try
            {
                if (Validar_Alta())
                {
                    P_Forma_Pago.P_Forma_ID         = Txt_ID_Forma_Pago.Text;
                    P_Forma_Pago.P_Nombre           = Txt_Nombre.Text;
                    P_Forma_Pago.P_Usuario_Modifico = MDI_Frm_Apl_Principal.Nombre_Usuario;
                    P_Forma_Pago.P_Fecha_Modifico   = DateTime.Now;
                    P_Forma_Pago.Modificar_Forma_Pago();
                    MessageBox.Show("La forma de pago '" + Txt_ID_Forma_Pago.Text + "' ha sido modificada", "Formas de Pago", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Modificar = true;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Formas de Pago", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return(Modificar);
        }
        ///*******************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Alta_Forma_Pago
        ///DESCRIPCIÓN          : Guarda la información de la forma de pago en la base de datos
        ///PARÁMETROS           : P_Forma_Pago que contiene la información de la forma de pago
        ///CREÓ                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 09 Octubre 2013
        ///MODIFICÓ             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*******************************************************************************
        public static Boolean Alta_Forma_Pago(Cls_Cat_Formas_Pago_Negocio P_Forma_Pago)
        {
            Boolean       Alta   = true;
            StringBuilder Mi_SQL = new StringBuilder();
            String        Forma_Pago_ID;

            try
            {
                Conexion.HelperGenerico.Conexion_y_Apertura();
                Forma_Pago_ID = Cls_Metodos_Generales.Obtener_ID_Consecutivo(Cat_Formas_Pago.Tabla_Cat_Formas_Pago, Cat_Formas_Pago.Campo_Forma_ID, "", 5);

                Mi_SQL.Append("INSERT INTO " + Cat_Formas_Pago.Tabla_Cat_Formas_Pago + "(");
                Mi_SQL.Append(Cat_Formas_Pago.Campo_Forma_ID + ",");
                Mi_SQL.Append(Cat_Formas_Pago.Campo_Nombre + ",");
                Mi_SQL.Append(Cat_Formas_Pago.Campo_Usuario_Creo + ",");
                Mi_SQL.Append(Cat_Formas_Pago.Campo_Fecha_Creo);
                Mi_SQL.Append(") VALUES (");
                Mi_SQL.Append("'" + Forma_Pago_ID + "',");
                Mi_SQL.Append("'" + P_Forma_Pago.P_Nombre + "',");
                Mi_SQL.Append("'" + P_Forma_Pago.P_Usuario_Creo + "',");
                Mi_SQL.Append(Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(P_Forma_Pago.P_Fecha_Creo) + ")");
                Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString());
            }
            catch (Exception e)
            {
                Alta = false;
                throw new Exception("Alta de Forma de Pago : " + e.Message);
            }
            finally
            {
                Conexion.HelperGenerico.Cerrar_Conexion();
            }

            return(Alta);
        }
        public static void Eliminar_Forma_Pago(Cls_Cat_Formas_Pago_Negocio P_Forma_Pago)
        {
            StringBuilder Mi_SQL = new StringBuilder();

            Mi_SQL.Append("DELETE FROM " + Cat_Formas_Pago.Tabla_Cat_Formas_Pago);
            Mi_SQL.Append(" WHERE " + Cat_Formas_Pago.Campo_Forma_ID + " = " + P_Forma_Pago.P_Forma_ID);
            Conexion.HelperGenerico.Conexion_y_Apertura();
            Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString());
            Conexion.HelperGenerico.Cerrar_Conexion();
        }
        ///*************************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Cargar_Formas_Pago
        ///DESCRIPCIÓN          : Muestra la forma en pantalla
        ///PARÁMETROS           :
        ///CREÓ                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 09 Octubre 2013
        ///MODIFICÓ             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*************************************************************************************
        private void Cargar_Formas_Pago()
        {
            Cls_Cat_Formas_Pago_Negocio P_Forma_Pago = new Cls_Cat_Formas_Pago_Negocio();

            try
            {
                Grid_Formas_Pago.DataSource = P_Forma_Pago.Consultar_Formas_Pago();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Formas de Pago", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        ///*************************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Cargar_Formas_Pago
        ///DESCRIPCIÓN          : Consulta todos los formas de pago de la base de datos y los coloca en el combo forma de pago
        ///PARÁMETROS           :
        ///CREÓ                 : Hugo Enrique Ramírez Aguilera
        ///FECHA_CREO           : 11 Junio 2015
        ///MODIFICÓ             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*************************************************************************************
        private void Cargar_Formas_Pago()
        {
            Cls_Cat_Formas_Pago_Negocio Rs_Consulta = new Cls_Cat_Formas_Pago_Negocio();
            DataTable Dt_Consulta = new DataTable();

            try
            {
                Dt_Consulta = Rs_Consulta.Consultar_Formas_Pago();

                Cls_Metodos_Generales.Rellena_Combo_Box(Cmb_Forma_Pago, Dt_Consulta, Cat_Formas_Pago.Campo_Nombre, Cat_Formas_Pago.Campo_Forma_ID);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Cargar_Formas_Pago", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        ///*************************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Btn_Eliminar_Click
        ///DESCRIPCIÓN          : Elimina una forma de pago de la base de datos
        ///PARÁMETROS           :
        ///CREÓ                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 09 Octubre 2013
        ///MODIFICÓ             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*************************************************************************************
        private void Btn_Eliminar_Click(object sender, EventArgs e)
        {
            Cls_Cat_Formas_Pago_Negocio P_Forma_Pago = new Cls_Cat_Formas_Pago_Negocio();

            try
            {
                if (Autorizar_Movimiento())
                {
                    if (Txt_ID_Forma_Pago.Text != String.Empty)
                    {
                        if (MessageBox.Show(this, "¿Quiere realmente eliminar la forma de pago '" + Txt_ID_Forma_Pago.Text + "' ?", "Advertencia", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                        {
                            P_Forma_Pago.P_Forma_ID = Txt_ID_Forma_Pago.Text;
                            P_Forma_Pago.Eliminar_Forma_Pago();
                            MessageBox.Show("La forma de pago '" + Txt_ID_Forma_Pago.Text + "' ha sido eliminada", "Formas de Pago", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            Cls_Metodos_Generales.Limpia_Controles(Fra_Datos_Generales);
                            Cargar_Formas_Pago();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Para eliminar una forma de pago, debe seleccionarla de la lista", "Formas de Pago", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
                else
                {
                    MessageBox.Show(this, "Usuario o password incorrectos", "Autorizar Movimiento", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception exc)
            {
                if (exc.Data.Contains("HelpLink.EvtID"))
                {
                    if (exc.Data["HelpLink.EvtID"].ToString() == "547")
                    {
                        MessageBox.Show("No se puede eliminar el registro debido a que tiene relación con otras tablas", "Formas de Pago", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show(exc.GetHashCode().ToString() + " " + exc.Message);
                }
            }
        }
        ///*******************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Consultar_Formas_Pago
        ///DESCRIPCIÓN          : Consulta la información de las formas de pago en la base de datos
        ///PARÁMETROS           : P_Forma_Pago que contiene la información de la forma de pago
        ///CREÓ                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 09 Octubre 2013
        ///MODIFICÓ             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*******************************************************************************
        public static System.Data.DataTable Consultar_Formas_Pago(Cls_Cat_Formas_Pago_Negocio P_Forma_Pago)
        {
            StringBuilder Mi_SQL = new StringBuilder();

            Boolean Transaccion_Activa = false;

            Conexion.Iniciar_Helper();

            if (!Conexion.HelperGenerico.Estatus_Transaccion())
            {
                Conexion.HelperGenerico.Conexion_y_Apertura();
            }
            else
            {
                Transaccion_Activa = true;
            }
            try
            {
                Mi_SQL.Append("SELECT * FROM " + Cat_Formas_Pago.Tabla_Cat_Formas_Pago + " WHERE 1 = 1 ");
                if (!String.IsNullOrEmpty(P_Forma_Pago.P_Forma_ID))
                {
                    Mi_SQL.Append("AND " + Cat_Formas_Pago.Campo_Forma_ID + " = '" + P_Forma_Pago.P_Forma_ID + "'");
                }
                if (!String.IsNullOrEmpty(P_Forma_Pago.P_Nombre))
                {
                    Mi_SQL.Append("AND " + Cat_Formas_Pago.Campo_Nombre + " LIKE '" + P_Forma_Pago.P_Nombre + "%'");
                }

                return(Conexion.HelperGenerico.Obtener_Data_Table(Mi_SQL.ToString()));
            }
            catch (Exception e)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Consultar Formas de Pago : " + e.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
        }
        ///*******************************************************************************************************
        ///NOMBRE_FUNCIÓN: StringBuilder Obtener_Formas_Pago
        ///DESCRIPCIÓN: Consulta el catálogo de formas de pago y regresa un diccionario con las formas de pago
        ///             con el ID como llave y el nombre como valor
        ///PARÁMETROS:
        ///CREO: Roberto González Oseguera
        ///FECHA_CREO: 30-oct-2013
        ///MODIFICÓ:
        ///FECHA_MODIFICÓ:
        ///CAUSA_MODIFICACIÓN:
        ///*******************************************************************************************************
        private Dictionary <string, string> Obtener_Formas_Pago()
        {
            var       Obj_Consulta_Formas_Pago = new Cls_Cat_Formas_Pago_Negocio();
            var       Diccionario = new Dictionary <string, string>();
            DataTable Dt_Formas_Pago;

            Dt_Formas_Pago = Obj_Consulta_Formas_Pago.Consultar_Formas_Pago();
            // validar contenido de Dt_Formas_Pago
            if (Dt_Formas_Pago != null)
            {
                foreach (DataRow Fila in Dt_Formas_Pago.Rows)
                {
                    // si no existe el id en el diccionario, agregar
                    if (!Diccionario.ContainsKey(Fila[Cat_Formas_Pago.Campo_Forma_ID].ToString()))
                    {
                        Diccionario.Add(Fila[Cat_Formas_Pago.Campo_Forma_ID].ToString(), Fila[Cat_Formas_Pago.Campo_Nombre].ToString());
                    }
                }
            }

            return(Diccionario);
        }
        ///*************************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Consultar_Formas_Pago
        ///DESCRIPCIÓN          : Realiza la consulta productos en la base de datos
        ///PARÁMETROS           :
        ///CREO                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 09 Octubre 2013
        ///MODIFICO             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*************************************************************************************
        private void Consultar_Formas_Pago()
        {
            Cls_Cat_Formas_Pago_Negocio P_Forma_Pago = new Cls_Cat_Formas_Pago_Negocio();

            try
            {
                switch (Cmb_Busqueda_Tipo.Text)
                {
                case "Id de Forma de Pago":
                    P_Forma_Pago.P_Forma_ID     = Txt_Descripcion_Busqueda.Text;
                    Grid_Formas_Pago.DataSource = P_Forma_Pago.Consultar_Formas_Pago();
                    break;

                case "Nombre":
                    P_Forma_Pago.P_Nombre       = Txt_Descripcion_Busqueda.Text;
                    Grid_Formas_Pago.DataSource = P_Forma_Pago.Consultar_Formas_Pago();
                    break;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Formas de Pago", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        ///*************************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Alta_Forma_Pago
        ///DESCRIPCIÓN          : Realiza el registro de una forma de pago en la base de datos
        ///PARÁMETROS           :
        ///CREO                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 09 Octubre 2013
        ///MODIFICO             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*************************************************************************************
        private Boolean Alta_Forma_Pago()
        {
            Cls_Cat_Formas_Pago_Negocio P_Forma_Pago = new Cls_Cat_Formas_Pago_Negocio();
            Boolean Alta = false;

            try
            {
                if (Validar_Alta())
                {
                    P_Forma_Pago.P_Nombre       = Txt_Nombre.Text;
                    P_Forma_Pago.P_Usuario_Creo = MDI_Frm_Apl_Principal.Nombre_Usuario;
                    P_Forma_Pago.P_Fecha_Creo   = DateTime.Now;
                    P_Forma_Pago.Alta_Forma_Pago();
                    Alta = true;
                    MessageBox.Show("La forma de pago ha sido registrada", "Formas de Pago", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Formas de Pago", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return(Alta);
        }
        ///*******************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Modificar_Forma_Pago
        ///DESCRIPCIÓN          : Modifica la información de la forma de pago en la base de datos
        ///PARÁMETROS           : P_Forma_Pago que contiene la información de la forma de pago
        ///CREÓ                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 09 Octubre 2013
        ///MODIFICÓ             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*******************************************************************************
        public static void Modificar_Forma_Pago(Cls_Cat_Formas_Pago_Negocio P_Forma_Pago)
        {
            StringBuilder Mi_SQL = new StringBuilder();

            try
            {
                Conexion.Iniciar_Helper();
                Conexion.HelperGenerico.Conexion_y_Apertura();
                Mi_SQL.Append("UPDATE " + Cat_Formas_Pago.Tabla_Cat_Formas_Pago + " SET ");
                Mi_SQL.Append(Cat_Formas_Pago.Campo_Nombre + " = '" + P_Forma_Pago.P_Nombre + "',");
                Mi_SQL.Append(Cat_Formas_Pago.Campo_Usuario_Modifico + " = '" + P_Forma_Pago.P_Usuario_Modifico + "',");
                Mi_SQL.Append(Cat_Formas_Pago.Campo_Fecha_Modifico + " = " + Cls_Ayudante_Sintaxis.Insertar_Fecha_Hora(P_Forma_Pago.P_Fecha_Modifico) + " ");
                Mi_SQL.Append("WHERE " + Cat_Formas_Pago.Campo_Forma_ID + " = '" + P_Forma_Pago.P_Forma_ID + "'");
                Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString());
            }
            catch (Exception e)
            {
                throw new Exception("Modificar Forma de Pago : " + e.Message);
            }
            finally
            {
                Conexion.HelperGenerico.Cerrar_Conexion();
            }
        }