예제 #1
0
        /// <summary>
        /// Lista las mesas de una reserva ya creada.
        /// </summary>
        private void CargarDGVMesasReservadas()
        {
            if (ID_Reserva != -1)
            {
                string InformacionDelError = string.Empty;

                ClsMesasXReservas Mesas = new ClsMesasXReservas();

                List <MesaXReserva> ListarMesas = Mesas.LeerListado(ClsMesasXReservas.EMesasDisponibles.MesasReservadas, ref InformacionDelError, FechaReserva, ID_Reserva);

                if (ListarMesas != null)
                {
                    int CapacidadTotal = 0;

                    foreach (MesaXReserva Elemento in ListarMesas)
                    {
                        int NumeroDeFila = dgvMesasReservadas.Rows.Add();

                        dgvMesasReservadas.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesas.ID_Mesa].Value   = Elemento.ID_Mesa;
                        dgvMesasReservadas.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesas.Numero].Value    = Elemento.Mesa.Numero;
                        dgvMesasReservadas.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesas.Capacidad].Value = Elemento.Mesa.Capacidad;

                        CapacidadTotal += Elemento.Mesa.Capacidad;
                    }
                    dgvMesasReservadas.Sort(dgvMesasReservadas.Columns[(int)ENumColDGVMesas.Numero], ListSortDirection.Ascending);

                    lblResultadoCapacidadTotal.Text = Convert.ToString(CapacidadTotal);
                }
                else if (InformacionDelError == string.Empty)
                {
                    MessageBox.Show("Fallo al comprobar si trabaja con planta alta", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                MessageBox.Show($"No se encontro el codigo identificador de la reserva para realizar la carga", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Close();
            }
        }
        private void CargarDGVMesasDisponibles(ClsMesasXReservas.EMesasDisponibles _TipoDeFiltro)
        {
            dgvSeleccionarMesaReserva.Rows.Clear();

            lblResultadoCapacidadTotal.Text = "0";

            string InformacionDelError = string.Empty;

            ClsMesasXReservas   MesasXReservas       = new ClsMesasXReservas();
            List <MesaXReserva> ListaMesasReservadas = MesasXReservas.LeerListado(_TipoDeFiltro, ref InformacionDelError, FechaParaReservar.Date);

            ClsMesas    Mesas            = new ClsMesas();
            List <Mesa> MesasDisponibles = null;

            // Trae la lista por planta
            if (_TipoDeFiltro == ClsMesasXReservas.EMesasDisponibles.MesasDisponiblesPB)
            {
                MesasDisponibles = Mesas.LeerListado(ClsMesas.ETipoDeListado.MesasActivasPB, ref InformacionDelError);
            }
            else
            {
                MesasDisponibles = Mesas.LeerListado(ClsMesas.ETipoDeListado.MesasActivasPA, ref InformacionDelError);
            }

            if (MesasDisponibles != null && ListaMesasReservadas != null)
            {
                // Recorro todas las mesas activas
                foreach (Mesa Elemento in MesasDisponibles)
                {
                    bool MesaNoReservada = true;

                    // Elimino de la lista las mesas que encuentre en la lista de las reservadas
                    foreach (MesaXReserva ElementoSecundario in ListaMesasReservadas)
                    {
                        if (Elemento.ID_Mesa == ElementoSecundario.ID_Mesa && ElementoSecundario.ID_Reserva != ID_Reserva)
                        {
                            MesaNoReservada = false;
                        }
                    }

                    if (MesaNoReservada)
                    {
                        bool MarcarMesaReservada = false;
                        int  NumeroDeFila        = dgvSeleccionarMesaReserva.Rows.Add();

                        dgvSeleccionarMesaReserva.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesa.ID_Mesa].Value   = Elemento.ID_Mesa;
                        dgvSeleccionarMesaReserva.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesa.Numero].Value    = Elemento.Numero;
                        dgvSeleccionarMesaReserva.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesa.Capacidad].Value = Elemento.Capacidad;

                        // Marca las mesas ya reservadas al editar una reserva
                        foreach (MesaXReserva ElementoSecundario in ListaMesasReservadas)
                        {
                            if (Elemento.ID_Mesa == ElementoSecundario.ID_Mesa)
                            {
                                MarcarMesaReservada             = true;
                                lblResultadoCapacidadTotal.Text = Convert.ToString(Convert.ToInt32(lblResultadoCapacidadTotal.Text) + Elemento.Capacidad);
                            }
                        }

                        dgvSeleccionarMesaReserva.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesa.Seleccionar].Value = MarcarMesaReservada;

                        if (MarcarMesaReservada)
                        {
                            ClsColores.MarcarFilaDGV(dgvSeleccionarMesaReserva, NumeroDeFila, true);
                        }
                        else
                        {
                            ClsColores.MarcarFilaDGV(dgvSeleccionarMesaReserva, NumeroDeFila, false);
                        }
                    }
                }

                UltimaFilaSeleccionada = -1;

                dgvSeleccionarMesaReserva.Sort(dgvSeleccionarMesaReserva.Columns[(int)ENumColDGVMesa.Numero], ListSortDirection.Ascending);
            }
            else if (InformacionDelError == string.Empty)
            {
                MessageBox.Show($"Ocurrio un fallo al cargar las mesas reservadas", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
예제 #3
0
        private void BtnGuardarCambios_Click(object sender, EventArgs e)
        {
            //TODO - Conexion con la BBDD para validar datos y cargarlos o no
            // Validar los datos.
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            ViaDeContacto ContactoSeleccionado = (ViaDeContacto)cmbFormaContacto.SelectedItem;

            lblMostrarNombre.Text   = lblMostrarNombre.Text.Trim();
            lblMostrarApellido.Text = lblMostrarApellido.Text.Trim();
            lblMostrarTelefono.Text = lblMostrarTelefono.Text.Trim();

            if (dtpFecha.Value < DateTime.Today)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "Debe ingresar una fecha, y esta debe ser mayor o igual a la actual.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (!ValidarHora(true))
            {
                DatosValidos          = false;
                RegistroDeErrores    += "Cambie el campo hora a un horario valido.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (ContactoSeleccionado == null)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "Debe cargar la forma en que se contacto el cliente.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (ListaDeMesasReserva.Count == 0)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "Debe cargar alguna mesa para asignarle a la 'reserva'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (ID_Cliente == -1)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "Debe cargar un cliente.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (DatosValidos)
            {
                string InformacionDelError = string.Empty;

                ClsReservas Reservas          = new ClsReservas();
                Reserva     ActualizarReserva = new Reserva();

                ActualizarReserva.ID_Cliente       = ID_Cliente;
                ActualizarReserva.ID_Reserva       = ID_Reserva;
                ActualizarReserva.Fecha            = Convert.ToDateTime(dtpFecha.Value.Date);
                ActualizarReserva.Hora             = TimeSpan.Parse(mtbHorario.Text);
                ActualizarReserva.ID_ViaContacto   = ContactoSeleccionado.ID_ViaDeContacto;
                ActualizarReserva.CantidadPersonas = (int)nudCantidadPersonas.Value;
                ActualizarReserva.ID_EstadoReserva = (int)ClsEstadoReservas.EEstadosReservas.Pendiente;

                Reservas.Actualizar(ActualizarReserva, ref InformacionDelError);

                ClsMesasXReservas MesasXReservas     = new ClsMesasXReservas();
                MesaXReserva      CargarMesasReserva = new MesaXReserva();

                List <MesaXReserva> Eliminar = MesasXReservas.LeerListado(ClsMesasXReservas.EMesasDisponibles.PorID, ref InformacionDelError, DateTime.Today.Date, ID_Reserva);

                foreach (MesaXReserva Elemento in Eliminar)
                {
                    MesasXReservas.Borrar(Elemento.ID_MesaXReserva, ref InformacionDelError);
                }

                CargarMesasReserva.ID_Reserva = ActualizarReserva.ID_Reserva;

                foreach (int Elemento in ListaDeMesasReserva)
                {
                    CargarMesasReserva.ID_Mesa = Elemento;
                    MesasXReservas.Crear(CargarMesasReserva, ref InformacionDelError);
                }

                DialogResult = DialogResult.OK;
                Close();
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 300))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }