/// <summary>
        /// crea un encabezado de matricula nuevo
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnBCrearMatricula_Click(object sender, EventArgs e)
        {
            try
            {

                if (String.IsNullOrEmpty(this.cmbCarrera.Text)){
                    this.lblMensaje.Text = "Debe seleccionar la especialidad.";
                    this.lblMensaje.CssClass = "errorMessage";
                    return;
                }

                for (int i = 0; i < this.ASPxGridViewHistorialMatricula.VisibleRowCount; i++)
                {
                    string estado = this.ASPxGridViewHistorialMatricula.GetRowValues(i, "estado").ToString();
                    if (estado.Equals("PROCESO"))
                    {
                        this.lblMensaje.Text = "No puede crear una mátricula nueva cuanto tiene una en PROCESO.";
                        this.lblMensaje.CssClass = "errorMessage";
                        return;
                    }
                }

                Class.Matricula.Matricula matricula = new Class.Matricula.Matricula();
                matricula.convenio.idConvenio = Int32.Parse(this.cmbConvenio.Value.ToString());
                matricula.estado = "PROCESO";
                matricula.pagoContado = Confirmacion.SI.ToString();
                matricula.ordinaria = Confirmacion.SI.ToString();
                matricula.estudiante.idEstudiante = Int32.Parse(this.cmbEstudiante.Value.ToString());
                matricula.periodo.idPeriodo = this.cmbPeriodo.Value.ToString();
                matricula.usuarioCreacion = Session["usuario"].ToString();
                matricula.carrera.idCarrera = Int32.Parse(this.cmbCarrera.Value.ToString());
                matricula.grupo = this.cmbGrupo.Value.ToString();

                this.matriculaBo.nuevo(matricula);

               
                this.lblMensaje.Text = "Matrícula creada, pase a la siguiente pestaña.";
                this.lblMensaje.CssClass = "successMessage";

            }
            catch (Exception ex)
            {
                this.lblMensaje.Text = Utilidades.validarExepcionSQL(ex.Message);
                this.lblMensaje.CssClass = "errorMessage";
                Session["errorMessage"] = ex.Message;
            }
            finally
            {
                this.cargarDatos();
            }
        }
                /// <summary>
        /// consulta todas las aulas
        /// </summary>
        /// <returns>List</returns>
        public List<Class.Matricula.Matricula> consultarTodos()
        {
            List<Class.Matricula.Matricula> lista = new List<Class.Matricula.Matricula>();
            Database db = DatabaseFactory.openDatabase("matricula_web_db");
            MySqlCommand comando = new MySqlCommand("sp_matricula_SELECT_all");
            comando.CommandType = CommandType.Text;
            //indicamos el nombre de la tabla
            DataSet ds = db.executeReader(comando, "matricula");


            foreach (DataRow row in ds.Tables[0].Rows)
            {
                Class.Matricula.Matricula dato = new Class.Matricula.Matricula();
                if (!row["idMatricula"].ToString().Equals(""))
                    dato.idMatricula = Int32.Parse(row["idMatricula"].ToString());
                if (!row["periodo"].ToString().Equals(""))
                    dato.periodo.idPeriodo = row["periodo"].ToString();
                if (!row["estudiante"].ToString().Equals(""))
                    dato.estudiante.idEstudiante = Int32.Parse(row["estudiante"].ToString());

                if (!row["carrera"].ToString().Equals(""))
                    dato.carrera.idCarrera = Int32.Parse(row["carrera"].ToString());
               
                if (!row["convenio"].ToString().Equals(""))
                    dato.convenio.idConvenio = Int32.Parse(row["convenio"].ToString());
                if (!row["pagoContado"].ToString().Equals(""))
                    dato.pagoContado = row["pagoContado"].ToString();
                if (!row["ordinaria"].ToString().Equals(""))
                    dato.ordinaria = row["ordinaria"].ToString();

                if (!row["montoCredito"].ToString().Equals(""))
                    dato.montoCredito = Double.Parse(row["montoCredito"].ToString());
                if (!row["montoDescuento"].ToString().Equals(""))
                    dato.montoDescuento = Double.Parse(row["montoDescuento"].ToString());
                if (!row["montoPrima"].ToString().Equals(""))
                    dato.montoPrima = Double.Parse(row["montoPrima"].ToString());
                if (!row["montoTotal"].ToString().Equals(""))
                    dato.montoTotal = Double.Parse(row["montoTotal"].ToString());
                if (!row["montoComision"].ToString().Equals(""))
                    dato.montoComision = Double.Parse(row["montoComision"].ToString());

                if (!row["estado"].ToString().Equals("")) 
                    dato.estado = row["estado"].ToString();
                //Se deben de indicar los valores del usuario
                if (!row["usuarioCreacion"].ToString().Equals("")) 
                    dato.usuarioCreacion = row["usuarioCreacion"].ToString();
                if (!row["usuarioModificacion"].ToString().Equals("")) 
                    dato.usuarioModificacion = row["usuarioModificacion"].ToString();
                //Se deben de indicar los valores de la fecha
                if (!row["fechaCreacion"].ToString().Equals(""))
                    dato.fechaCreacion = DateTime.Parse(row["fechaCreacion"].ToString());
                if (!row["fechaModificacion"].ToString().Equals(""))
                    dato.fechaModificacion = DateTime.Parse(row["fechaModificacion"].ToString());
                lista.Add(dato);
            }
            return lista;
        }
 /// <summary>
 /// verifica si existe una  Matricula
 /// </summary>
 /// <param name="dato"></param>
 /// <returns>TRUE si existe FALSE en caso contrario</returns>
 public bool existe(Class.Matricula.Matricula dato)
 {
     Class.Matricula.Matricula objeto = new Class.Matricula.Matricula();
     using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
     {
         MySqlCommand comando = new MySqlCommand("sp_matricula_SELECT_ByID");
         comando.CommandType = CommandType.StoredProcedure;
         comando.Parameters.AddWithValue("p_idMatricula", dato.idMatricula);
         DataSet ds = db.executeReader(comando, "matricula");
         if (ds.Tables[0].Rows.Count > 0)
         {
             return true;
         }
         else
         {
             return false;
         }
     } 
 }
        /// <summary>
        /// consulta una Matricula
        /// </summary>
        /// <param name="dato"></param>
        /// <returns></returns>
        public Class.Matricula.Matricula consultarByPeriodoCarreraEstudiante(String periodo, Int32 carrera, Int32 estudiante)
        {

            using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
            {
                MySqlCommand comando = new MySqlCommand("sp_matricula_SELECT_ByPeriodoCarreraEstudiante");
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("p_periodo", periodo);
                comando.Parameters.AddWithValue("p_carrera", carrera);
                comando.Parameters.AddWithValue("p_estudiante", estudiante);
                Class.Matricula.Matricula dato = new Class.Matricula.Matricula();

                //Despues del comando indicar el nombre de la tabla
                DataSet ds = db.executeReader(comando, "matricula");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    DataRow row = ds.Tables[0].Rows[0];

                    if (!row["idMatricula"].ToString().Equals(""))
                        dato.idMatricula = Int32.Parse(row["idMatricula"].ToString());
                    if (!row["periodo"].ToString().Equals(""))
                        dato.periodo.idPeriodo = row["periodo"].ToString();
                    if (!row["estudiante"].ToString().Equals(""))
                        dato.estudiante.idEstudiante = Int32.Parse(row["estudiante"].ToString());

                    if (!row["carrera"].ToString().Equals(""))
                        dato.carrera.idCarrera = Int32.Parse(row["carrera"].ToString());

                    if (!row["convenio"].ToString().Equals(""))
                        dato.convenio.idConvenio = Int32.Parse(row["convenio"].ToString());
                    if (!row["pagoContado"].ToString().Equals(""))
                        dato.pagoContado = row["pagoContado"].ToString();
                    if (!row["ordinaria"].ToString().Equals(""))
                        dato.ordinaria = row["ordinaria"].ToString();

                    if (!row["montoCredito"].ToString().Equals(""))
                        dato.montoCredito = Double.Parse(row["montoCredito"].ToString());
                    if (!row["montoDescuento"].ToString().Equals(""))
                        dato.montoDescuento = Double.Parse(row["montoDescuento"].ToString());
                    if (!row["montoPrima"].ToString().Equals(""))
                        dato.montoPrima = Double.Parse(row["montoPrima"].ToString());
                    if (!row["montoTotal"].ToString().Equals(""))
                        dato.montoTotal = Double.Parse(row["montoTotal"].ToString());
                    if (!row["montoComision"].ToString().Equals(""))
                        dato.montoComision = Double.Parse(row["montoComision"].ToString());

                    if (!row["estado"].ToString().Equals(""))
                        dato.estado = row["estado"].ToString();
                    //Para indicar los datos del usuario
                    if (!row["usuarioCreacion"].ToString().Equals(""))
                        dato.usuarioCreacion = row["usuarioCreacion"].ToString();
                    if (!row["usuarioModificacion"].ToString().Equals(""))
                        dato.usuarioModificacion = row["usuarioModificacion"].ToString();
                    //Indicamos los valores de las fechas
                    if (!row["fechaCreacion"].ToString().Equals(""))
                        dato.fechaCreacion = DateTime.Parse(row["fechaCreacion"].ToString());
                    if (!row["fechaModificacion"].ToString().Equals(""))
                        dato.fechaModificacion = DateTime.Parse(row["fechaModificacion"].ToString());
                }
                else
                {
                    dato = null;
                }
                return dato;
            }
        }