private void btnBuscar_Click(object sender, EventArgs e)
        {
            frmBuscarClaseParticular formBuscarClaseParticular = new frmBuscarClaseParticular();

            if (formBuscarClaseParticular.ShowDialog() == DialogResult.OK)
            {
                cp      = formBuscarClaseParticular.ClaseSeleccionada;
                cliente = formBuscarClaseParticular.Cliente;

                txtDNICliente.Text       = cliente.dni;
                txtNombreCliente.Text    = cliente.nombre;
                txtNombreServicio.Text   = cp.nombre;
                txtDescripcion.Text      = cp.descripcion;
                txtPrecio.Text           = cp.precio.ToString();
                txtObservaciones.Text    = cp.observaciones;
                txtDireccion.Text        = cp.direccion;
                cboDistrito.SelectedItem = cp.distrito;
                dtpFechaMatricula.Value  = cp.fecha;
                cp.fechaSpecified        = true;
                cboHoraIni.SelectedItem  = cp.horaIni;
                cboHoraFin.SelectedItem  = cp.horaFin;
                txtDNIDocente.Text       = cp.colaborador.dni;
                txtNombreDocente.Text    = cp.colaborador.nombre;
                //matricula
                gbPago.Visible = false;
                cboDescuentos.SelectedIndex = -1;
                txtAbonar.Text             = "";;
                txtSaldo.Text              = "";
                cboFormaPago.SelectedIndex = -1;
                estadoComponentes(Estado.Buscar);
            }
        }
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            frmBuscarClaseParticular formBuscarClaseParticular = new frmBuscarClaseParticular();
            if(formBuscarClaseParticular.ShowDialog() == DialogResult.OK)
            {
                cp = formBuscarClaseParticular.ClaseSeleccionada;
                cliente = formBuscarClaseParticular.Cliente;

                txtDNICliente.Text = cliente.dni;
                txtNombreCliente.Text = cliente.nombre;
                txtNombreServicio.Text = cp.nombre;
                txtDescripcion.Text = cp.descripcion;
                txtPrecio.Text = cp.precio.ToString();
                txtObservaciones.Text = cp.observaciones;
                txtDireccion.Text = cp.direccion;
                cboDistrito.SelectedText = "";
                cboDistrito.SelectedText = cp.distrito;
                dtpFechaMatricula.Value = cp.fecha;
                
                cboHoraIni.SelectedIndex = -1;
                cboHoraFin.SelectedIndex = -1;
                cboHoraIni.SelectedText = "";
                cboHoraFin.SelectedText = "";
                cboHoraIni.SelectedText = cp.horaIni.ToShortTimeString();
                cboHoraFin.SelectedText = cp.horaFin.ToShortTimeString();
                txtDNIDocente.Text = cp.colaborador.dni;
                txtNombreDocente.Text = cp.colaborador.nombre;

                estadoComponentes(Estado.Buscar);
            }
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            int idClase;

            //validar los datos antes

            //se construye clase particular
            cp                = new Service.claseParticular();
            cp.colaborador    = docente;
            cp.descripcion    = txtDescripcion.Text;
            cp.direccion      = txtDireccion.Text;
            cp.distrito       = cboDistrito.SelectedItem.ToString();
            cp.fecha          = dtpFechaMatricula.Value;
            cp.fechaSpecified = true;
            //se debe revisar la hora en el DateTime

            //cp.horaIni = (DateTime.Parse(cboHoraIni.SelectedItem.ToString()));
            //cp.horaFin = (DateTime.Parse(cboHoraFin.SelectedItem.ToString()));

            cp.horaIni = DateTime.Now;
            cp.horaFin = DateTime.Now;

            cp.horaFinSpecified = true;
            cp.horaIniSpecified = true;
            cp.nombre           = txtNombreServicio.Text;
            cp.observaciones    = txtObservaciones.Text;
            cp.precio           = float.Parse(txtPrecio.Text);
            //insertar clase particular
            idClase        = Program.dbController.insertarClaseParticular(cp);
            cp.id_servicio = idClase;

            //se construye la matricula
            Service.matricula mat = new Service.matricula();
            mat.cliente        = cliente;
            mat.descuento      = (Service.descuento)cboDescuentos.SelectedItem;
            mat.fecha          = DateTime.Today;
            mat.fechaSpecified = true;
            mat.monto          = cp.precio;
            mat.saldo          = float.Parse(txtSaldo.Text);
            mat.servicio       = cp;

            //cuota
            if (txtAbonar.Text != "0")
            {
                Service.cuota cuota = new Service.cuota();
                cuota.fecha          = DateTime.Today;
                cuota.fechaSpecified = true;
                cuota.formaPago      = cboFormaPago.SelectedItem.ToString();
                cuota.monto          = float.Parse(txtAbonar.Text);
                //insertar cuota
                mat.saldo = mat.saldo - cuota.monto;
            }
            Program.dbController.insertarMatricula(mat);

            frmMensaje mensaje = new frmMensaje("Clase Particular Registrada", "Mensaje de confirmación", "");
        }
        private void btnPagarAhora_Click(object sender, EventArgs e)
        {
            int idMat;
            int idClase;
            //se construye clase particular
            cp = new Service.claseParticular();
            cp.colaborador = docente;
            cp.descripcion = txtDescripcion.Text;
            cp.direccion = txtDireccion.Text;
            cp.distrito = cboDistrito.SelectedItem.ToString();

            cp.fecha = dtpFechaMatricula.Value;
            cp.fechaSpecified = true;
            
            //se debe revisar la hora en el DateTime
            cp.horaIni = DateTime.Now;
            cp.horaFin = DateTime.Now;

            cp.horaFinSpecified = true;
            cp.horaIniSpecified = true;

            cp.nombre = txtNombreServicio.Text;
            cp.observaciones = txtObservaciones.Text;
            cp.precio = float.Parse(txtPrecio.Text);
            

            mat.descuento = (Service.descuento)cboDescuentos.SelectedItem;
            mat.monto = float.Parse(txtTotal.Text);


            frmPagoMat formPagoMat = new frmPagoMat(mat);
            if(formPagoMat.ShowDialog() == DialogResult.OK)
            {
                if(formPagoMat.Cuota != null)
                {
                    cuotas.Add(formPagoMat.Cuota);
                    mat.cuotas = cuotas.ToArray();
                }
                txtSaldo.Text = (float.Parse(txtSaldo.Text) - formPagoMat.Cuota.monto).ToString();
                

                mat.saldo = float.Parse(txtSaldo.Text);
            }

        }