private void buttonNuevoPago_Click(object sender, RoutedEventArgs e)
        {
            Pago ultimoPago = socio.Pagos.OrderByDescending(p => p.MesPago).FirstOrDefault();
            bool?actualizar = new PagoWindow(socio, ultimoPago, null).ShowDialog();

            if (actualizar.HasValue && actualizar.Value)
            {
                try
                {
                    socio = SociosHandler.Instancia.ObtenerSocio(socio.Id);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ha ocurrido un error al cargar datos de socio.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    Logger.Log(ex.ToString());
                }
                actualizarListaPagos();
                Actualizar = true;
            }
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the Pagos EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToPagos(Pago pago)
 {
     base.AddObject("Pagos", pago);
 }
Ejemplo n.º 3
0
        private void buttonIngresarPago_Click(object sender, RoutedEventArgs e)
        {
            // Chequeo de precondiciones
            List <string> advertencias = new List <string>();

            if (string.IsNullOrEmpty(dtpMesPago.Text) || !dtpMesPago.Value.HasValue)
            {
                advertencias.Add("Debe seleccionar mes de pago.");
            }

            if (string.IsNullOrEmpty(dtpFechaIngreso.Text) || !dtpFechaIngreso.Value.HasValue)
            {
                advertencias.Add("Debe seleccionar fecha de ingreso.");
            }

            if (listMontos.SelectedItems.Count == 0)
            {
                advertencias.Add("Debe seleccionar al menos una disciplina.");
            }

            // Mensaje de Alto
            if (advertencias.Count > 0)
            {
                System.Windows.MessageBox.Show(string.Join("\n", advertencias), "Alto", MessageBoxButton.OK, MessageBoxImage.Stop);
                return;
            }


            advertencias = new List <string>();

            // No se selecciono alguna de las disciplinas
            if (listMontos.SelectedItems.Count < listMontos.Items.Count)
            {
                advertencias.Add("No se han seleccionado todas las disciplinas.");
            }
            // Uno de los montos a pagar es igual a 0
            foreach (Monto mon in listMontos.SelectedItems)
            {
                if (mon.MontoParcial == 0)
                {
                    advertencias.Add("El valor de uno de los montos es $U 0,00.");
                    break;
                }
            }
            // No se registraron pagos en el mes anterior para alguna de las disciplinas
            if (ultimoPago != null) // Solo chequeo si es un socio con pagos ingresados
            {
                String dsc = SociosHandler.Instancia.SocioNoPagoDscMesAnterior(socio.Id, dtpMesPago.Value.Value);
                if (dsc != null)
                {
                    advertencias.Add("No se registran pagos en el mes pasado para la disciplina " + dsc + ".");
                }
            }


            MessageBoxResult response = MessageBoxResult.Yes;

            // Mensaje de Confirmación
            if (advertencias.Count > 0)
            {
                response = MessageBox.Show(string.Join("\n", advertencias) + "\n\n" + "Esta seguro que desea ingresar pago?", "Advertencia", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
            }

            if (response == MessageBoxResult.Yes) // Agrego el pago a la base
            {
                try
                {
                    Pago nuevoPago = new Pago {
                        SocioId    = socio.Id,
                        MesPago    = dtpMesPago.Value.Value,
                        MontoTotal = montoTotal,
                        Fecha      = dtpFechaIngreso.Value.Value
                    };

                    PagosHandler.Instancia.AgregarPago(nuevoPago);

                    foreach (Monto mon in listMontos.SelectedItems)
                    {
                        mon.PagoId     = nuevoPago.Id;
                        mon.Disciplina = null;
                        PagosHandler.Instancia.AgregarMonto(mon);
                    }

                    // Una vez agregado el pago se actualiza la lista de pagos de la ficha del socio
                    MessageBox.Show("El pago ha sido ingresado exitosamente", "Información", MessageBoxButton.OK, MessageBoxImage.Information);
                    this.DialogResult = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ha ocurrido un error al ingresar pago.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    Logger.Log(ex.ToString());
                }

                this.Close();
            }
        }