private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                ValidacionesMantenimiento validacion = new ValidacionesMantenimiento();
                bool valido = true;
                foreach (TextBox txb in grdValidar.Children)
                {
                    BrushConverter bc = new BrushConverter();
                    txb.Foreground = (Brush)bc.ConvertFrom("#FF000000");
                    if (validacion.Validar(txb.Text, Convert.ToInt32(txb.Tag)) == false)
                    {
                        valido = false;
                        txb.Foreground = (Brush)bc.ConvertFrom("#FFFF0404");
                    }
                }

                if (valido == true)
                {
                    SIGEEA_Cuota cuota = new SIGEEA_Cuota();
                    AsociadoMantenimiento asociado = new AsociadoMantenimiento();
                    cuota.Nombre_Cuota = txbNombre.Text;
                    cuota.Monto_Cuota = Convert.ToDouble(txbMonto.Text);
                    cuota.FecInicio_Cuota = dtpFecInicio.SelectedDate.Value;
                    cuota.FecFin_Cuota = dtpFecFin.SelectedDate.Value;
                    cuota.FK_Id_Moneda = ucMoneda.getMoneda();
                    if (pk_cuota == 0) asociado.RegistrarCuota(cuota);
                    else
                    {
                        cuota.PK_Id_Cuota = pk_cuota;
                        asociado.EditarCuota(cuota);
                    }
                    MessageBox.Show("La cuota se ha registrado con éxito.", "SIGEEA", MessageBoxButton.OK, MessageBoxImage.Information);
                    this.Close();
                }
                else
                {
                    throw new System.ArgumentException("Los datos ingresados no coinciden con los formatos requeridos.");
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message, "SIGEEA", MessageBoxButton.OK, MessageBoxImage.Error);
            }

        }
 partial void DeleteSIGEEA_Cuota(SIGEEA_Cuota instance);
 partial void UpdateSIGEEA_Cuota(SIGEEA_Cuota instance);
 partial void InsertSIGEEA_Cuota(SIGEEA_Cuota instance);
        /// <summary>
        /// Actualiza la categoría del asociado con respecto a las cuotas
        /// </summary>
        /// <param name="pCuota"></param>
        /// <param name="pAsociado"></param>
        private void ActualizarCategoriaCuota(SIGEEA_Cuota pCuota, int pAsociado)
        {
            try
            {
                DataClasses1DataContext dc = new DataClasses1DataContext();
                int calificacion;

                SIGEEA_Asociado asociado = dc.SIGEEA_Asociados.First(c => c.PK_Id_Asociado == pAsociado);
                List<SIGEEA_spObtenerInfoCategoriaAsocCuotasResult> lista = dc.SIGEEA_spObtenerInfoCategoriaAsocCuotas(pAsociado).ToList();
                double calificacionActual = dc.SIGEEA_CatAsociados.First(c => c.PK_Id_CatAsociado == asociado.FK_Id_CatAsociado).CuotasProm_CatAsociado;
                if (DateTime.Now > pCuota.FecFin_Cuota) calificacion = 1; //Si ya se pasó la fecha de pago
                else if (DateTime.Now == pCuota.FecFin_Cuota) calificacion = 3; //Si hoy es el día de pago
                else calificacion = 5; //Si va a pagar con antelación
                int cantidadPagos = lista.Count();
                double calificacionNuevaTotal = ((cantidadPagos - 1) * calificacionActual) + calificacion;
                double calificacionNuevaFinal = calificacionNuevaTotal / cantidadPagos;

                dc.SIGEEA_spActualizaCategoriaCuotas(asociado.FK_Id_CatAsociado, calificacionNuevaFinal);
                dc.SubmitChanges();
            }
            catch (Exception ex)
            {

            }
        }
 /// <summary>
 /// Edita la información de una cuota existente
 /// </summary>
 /// <param name="pCuota"></param>
 public void EditarCuota(SIGEEA_Cuota pCuota)
 {
     DataClasses1DataContext dc = new DataClasses1DataContext();
     SIGEEA_Cuota cuota = dc.SIGEEA_Cuotas.First(c => c.PK_Id_Cuota == pCuota.PK_Id_Cuota);
     cuota.Monto_Cuota = pCuota.Monto_Cuota;
     cuota.FecFin_Cuota = pCuota.FecFin_Cuota;
     cuota.FecInicio_Cuota = pCuota.FecInicio_Cuota;
     cuota.FK_Id_Moneda = pCuota.FK_Id_Moneda;
     cuota.Nombre_Cuota = pCuota.Nombre_Cuota;
     dc.SubmitChanges();
 }
 /// <summary>
 /// Registra una nueva cuota a pagar por el asociado, automáticamente se ejecuta
 /// un trigger en la base de datos que le asigna de manera automática a cada asociado
 /// activo el pago pendiente de la misma.
 /// </summary>
 /// <param name="pCuota"></param>
 public void RegistrarCuota(SIGEEA_Cuota pCuota)
 {
     DataClasses1DataContext dc = new DataClasses1DataContext();
     dc.SIGEEA_Cuotas.InsertOnSubmit(pCuota);
     dc.SubmitChanges();
 }