public void Borrar(IEntidad entidad)
        {
            clsCuota cuota = new clsCuota();

            try
            {
                cuota = getCast(entidad);
            }
            catch (Exception e)
            {
                throw e;
            }

            int filas;

            try
            {
                filas = manager.DeleteCuota(cuota);
                if (filas == 0)
                {
                    throw new ArgumentException("La deuda ingresada no existe o ya fue pagada");
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public List<clsCuota> ListarCuota()
        {
            List<clsCuota> list = new List<clsCuota>();
            DataTable dt;
            string query = "select * from Cuota";

            try
            {
                dt = dbManager.Consultar(query);
            }
            catch (Exception e)
            {

                throw e;
            }

            foreach (DataRow item in dt.Rows)
            {
                clsCuota c = new clsCuota();

                c.Id = Convert.ToInt32(item["IdCuota"]);
                c.IdAlumno = Convert.ToInt32(item["IdAlumno"]);
                c.IdCurso = Convert.ToInt32(item["IdCurso"]);
                c.Fecha = Convert.ToDateTime(item["Fecha"]);

                list.Add(c);
            }

            return list;
        }
        public void Agregar(IEntidad entidad)
        {
            clsCuota cuota = new clsCuota();

            try
            {
                cuota = getCast(entidad);
            }
            catch (Exception e)
            {
                throw e;
            }
            clsCuota compare = new clsCuota();
            compare.IdAlumno = cuota.IdAlumno;
            compare.IdCurso = cuota.IdCurso;
            try
            {
                if (manager.SelectCuota(compare).Count == 0)
                    cuota.Id = manager.InsertarCuota(cuota);
                else
                    throw new ArgumentException("Esta deuda ya existe");
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public int InsertarCuota(clsCuota entidad)
        {
            //idCuota, IdAlumno, IdCurso, Fecha
            String query = "insert Cuota values('" + entidad.IdAlumno + "','" + entidad.IdCurso + "','" + String.Format("{0:s}", entidad.Fecha) + "');";
            int filas;

            try
            {
                filas = dbManager.Ejecutar(query, Interfaces.Tipo.INSERTAR);
            }
            catch (Exception e)
            {

                throw e;
            }

            return filas;
        }
        public int DeleteCuota(clsCuota entidad)
        {
            int filas = 0;

            string query = "delete Cuota where IdCuota = " + entidad.Id + ";";

            try
            {
                filas = dbManager.Ejecutar(query, Tipo.ELIMINAR);
            }
            catch (Exception e)
            {

                throw e;
            }

            return filas;
        }
        public IEntidad ObtenerPorId(int id)
        {
            clsCuota cuota = new clsCuota();
            cuota.Id = id;
            clsCuota ncuota = null;

            try
            {
                ncuota = manager.SelectCuota(cuota)[0];
                if (ncuota == null)
                {
                    throw new ArgumentException("La deuda ingresada no existe o ya fue pagada");
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return ncuota;
        }
        public List<IEntidad> Lista(IEntidad filtro)
        {
            clsCuota cuota = new clsCuota();

            List<IEntidad> list = new List<IEntidad>();

            try
            {
                cuota = getCast(filtro);
            }
            catch (Exception e)
            {
                throw e;
            }

            try
            {
                list.AddRange(manager.SelectCuota(cuota));
            }
            catch (Exception e)
            {
                throw e;
            }

            return list;
        }
        private void Construccion_Consulta()
        {
            string fechaComodin = "02/02/1950";
            DateTime FechaInicio = Convert.ToDateTime(fechaComodin);
            DateTime FechaFin = Convert.ToDateTime(fechaComodin);
            clsAlumno Alumno = new clsAlumno();
            clsCurso Curso = new clsCurso();
            clsCuota cuota = new clsCuota();

            if (chbPersonalizar.Checked)
            {
                 FechaInicio = dtpFechaInicio.Value.Date;
                 FechaFin = dtpFechaFin.Value.Date;
            }
            else
            {
                switch (Segunda_seleccion)
                {
                    case Periodo.Diario: FechaFin = DateTime.Today; FechaInicio = DateTime.Today.AddDays(-1); ; break;
                    case Periodo.Semanal: FechaFin = DateTime.Today; FechaInicio = DateTime.Today.AddDays(-7); ; break;
                    case Periodo.Quincenal: FechaFin = DateTime.Today; FechaInicio = DateTime.Today.AddDays(-15); ; break;
                    case Periodo.Mensual: FechaFin = DateTime.Today; FechaInicio = DateTime.Today.AddMonths(-1); ; break;
                    case Periodo.Anual: FechaFin = DateTime.Today; FechaInicio = DateTime.Today.AddMonths(-12); ; break;
                    case Periodo.Todo:; break;
                }
            }
            this.Procedimiento_sin_campos(FechaInicio, FechaFin);
        }
        public int UpdateCuota(clsCuota entidad)
        {
            int filas;

            string query = "update Cuota set IdCurso= " + entidad.IdCurso
                        + " IdAlumno = " + entidad.IdAlumno
                        + " Fecha = " + entidad.Fecha
                        + " where IdCuota = " + entidad.Id + ";";

            try
            {
                filas = dbManager.Ejecutar(query, Tipo.ACTUALIZAR);
            }
            catch (Exception e)
            {

                throw e;
            }

            return filas;
        }
        public List<clsCuota> SelectCuota(clsCuota entidad)
        {
            List<clsCuota> list = new List<clsCuota>();
            bool cuota = false, alumno = false, curso = false;
            DataTable dt;

            string query = "select * from Cuota where";
            if (entidad.Id != -1)
            {
                query += " IdCuota= '" + entidad.Id + "'";
                cuota = true;
            }
            if (entidad.IdAlumno != -1)
            {
                if (cuota)
                {
                    query += " and";
                }
                query += " IdAlumno= '" + entidad.IdAlumno + "'";
                alumno = true;
            }
            if (entidad.IdCurso != -1)
            {
                if (cuota | alumno)
                {
                    query += " and";
                }
                query += " IdCurso= '" + entidad.IdCurso + "'";
                curso = true;
            }
            if (DateTime.Compare(entidad.Fecha , Convert.ToDateTime("01/01/0001 0:00:00")) != 0)
            {
                if (cuota | alumno | curso)
                {
                    query += " and";
                }
                query += " Fecha = " + String.Format("{0:s}", entidad.Fecha);
            }

            query += ";";

            try
            {
                dt = dbManager.Consultar(query);
            }
            catch (Exception e)
            {

                throw e;
            }

            foreach (DataRow item in dt.Rows)
            {
                clsCuota c = new clsCuota();

                c.Id = Convert.ToInt32(item["IdCuota"]);
                c.IdAlumno = Convert.ToInt32(item["IdAlumno"]);
                c.IdCurso = Convert.ToInt32(item["IdCurso"]);
                c.Fecha = Convert.ToDateTime(item["Fecha"]);

                list.Add(c);
            }

            return list;
        }
 private void frmRegistrarCuota_Load(object sender, EventArgs e)
 {
     this.Cuota = new clsCuota();
     RepoF = new clsRepoFactory();
     this.ActualizarGrillaAlumnos();
     rdNombre.Checked = true;
     rdNombreCurso.Checked = true;
 }
        private void btnContinuar_Click(object sender, EventArgs e)
        {
            try
            {
                Cuota = new clsCuota();
                if (Alumno.Id == -1)
                {
                    MessageBox.Show("El Alumno es null");
                }
                if (Curso.Id == -1)
                {
                    MessageBox.Show("El curso tambien lo rompiste");
                }
                Cuota.IdAlumno = Alumno.Id;
                Cuota.IdCurso = Curso.Id;
                Cuota.Fecha = DateTime.Today;
                clsRepositorioCuota consultador = new clsRepositorioCuota();
                consultador.Agregar(Cuota);
                DialogResult Recibo = MessageBox.Show("¿Desea imprimir el recibo de la operacion?", "¡Exito!", MessageBoxButtons.YesNo);
                if (Recibo == DialogResult.Yes)
                {
                    crReciboCobroMatricula Comprobante = new crReciboCobroMatricula();
                    //Comprobante.SetParameterValue("NombreAlumno", Alumno.Nombre);
                    //Comprobante.SetParameterValue("nroPago", Cuota.Id);

                    DataSetReportes reporte = new DataSetReportes();
                    DataTable Datos = reporte.Tables["ReciboMatricula"];

                    Datos.Rows.Add(Curso.Nombre, Curso.Precio, Cuota.Fecha);

                    Comprobante.SetDataSource(Datos);

                    frmEmisionRecibo EmisionRecibo = new frmEmisionRecibo(Comprobante,Alumno.Nombre,Cuota.Id);

                    EmisionRecibo.Show();

                }
                DialogResult continuar = MessageBox.Show("Cuota Registrada correctamente, ¿desea registrar otra?", "¡Exito!", MessageBoxButtons.YesNo);
                if (continuar == System.Windows.Forms.DialogResult.Yes)
                {
                    dgvEtapaUno.Rows.Clear();
                    dgvEtapaDos.Rows.Clear();
                    this.ActualizarGrillaAlumnos();
                }
                else
                {
                    this.Close();
                }
            }
            catch (Exception a)
            {
                MessageBox.Show("Ha ocurrido el siguiente error: " + a.Message);
            }
        }