Ejemplo n.º 1
0
        private void reservar(int cantHab, Tipo_Habitacion tipo_seleccionado)
        {
            Reserva reserva = new Reserva();

            reserva.CodigoRegimen        = regimen_elegido.CodRegimen;
            reserva.Fecha_Inicio_struct  = dateTimeEntrada.Value;
            reserva.Fecha_Fin_struct     = dateTimeSalida.Value;
            reserva.Fecha_Reserva_struct = Globals.getFechaSistema();
            reserva.Usr = Globals.infoSesion.User.Usr;
            reserva.cantHabitaciones = cantHab;
            reserva.tipo_habitacion  = tipo_seleccionado;
            List <Habitacion> habitaciones_disponibles;

            habitaciones_disponibles = DAOReserva.habitacionDisponibles(Globals.infoSesion.Hotel.CodHotel, tipo_seleccionado.TipoCodigo, reserva.Fecha_Inicio, reserva.Fecha_Fin);

            if (habitaciones_disponibles.Count < cantHab)
            {
                DialogResult dr = MessageBox.Show("No existen suficientes habitaciones disponibles para efectuar la reserva.",
                                                  "", MessageBoxButtons.OK);
                return;
            }
            for (int i = 0; i < cantHab; i++)
            {
                Detalle_Reserva det = new Detalle_Reserva();
                det.CodigoHotel = Globals.infoSesion.Hotel.CodHotel;
                det.Habitacion  = habitaciones_disponibles[i].Id_Habitacion;
                reserva.detalles_reserva.Add(det);
            }

            new ConfirmarReserva(reserva).Show();
            Globals.deshabilitarAnterior(this);
        }
Ejemplo n.º 2
0
        private void botonDisponibilidad_Click(object sender, EventArgs e)
        {
            if (!datos_alterados)
            {
                showToolTip("Hay disponibilidad ya que no se modificaron los datos.", botonDisponibilidad, botonDisponibilidad.Location);
                return;
            }
            if (chequearDatos())
            {
                nueva_reserva = duplicarReserva(reserva_elegida);
                nueva_reserva.Fecha_Inicio_struct = dateTimeInicio.Value;
                nueva_reserva.Fecha_Fin_struct    = dateTimeFin.Value;
                nueva_reserva.tipo_habitacion     = tipos_habitacion[comboTipoHab.SelectedIndex];
                nueva_reserva.CodigoRegimen       = lista_regimenes[comboTipoRegimen.SelectedIndex].CodRegimen;
                int cantPersonas = Int32.Parse(textCant.Text);
                //Si se mantiene el tipo de habitacion, entonces solo tenemos que agregar o retirar habitaciones, que no sean las originales
                if (tipo_elegido.TipoCodigo == nueva_reserva.tipo_habitacion.TipoCodigo)
                {
                    cantPersonas = cantPersonas - cantPersonas_originales;
                }

                List <Habitacion> habitaciones_disponibles;
                habitaciones_disponibles = DAOReserva.habitacionDisponibles(Globals.infoSesion.Hotel.CodHotel,
                                                                            nueva_reserva.tipo_habitacion.TipoCodigo,
                                                                            nueva_reserva.Fecha_Inicio, nueva_reserva.Fecha_Fin);
                int cantAreservar = cantPersonas / nueva_reserva.tipo_habitacion.CantPersonas;
                if (habitaciones_disponibles.Count < cantAreservar)
                {
                    MessageBox.Show("No existen suficientes habitaciones disponibles para efectuar la reserva.",
                                    "", MessageBoxButtons.OK);
                    return;
                }

                //Si es que faltan habitaciones (Tanto se mantenga o no el tipo de habitacion)
                for (int i = 0; i < cantAreservar; i++)
                {
                    Detalle_Reserva det = new Detalle_Reserva();
                    det.CodigoHotel   = Globals.infoSesion.Hotel.CodHotel;
                    det.CodigoReserva = reserva_elegida.CodigoReserva;
                    det.Habitacion    = habitaciones_disponibles[i].Id_Habitacion;
                    nueva_reserva.detalles_reserva.Add(det);
                }
                //Si es que sobran habitaciones (Si el tipo de habitacion se cambia, el numero es negativo y no cicla y queda vacio)
                for (int i = 0; i < -cantAreservar; i++)
                {
                    Detalle_Reserva det = new Detalle_Reserva();
                    det.CodigoHotel   = Globals.infoSesion.Hotel.CodHotel;
                    det.CodigoReserva = reserva_elegida.CodigoReserva;
                    det.Habitacion    = habitaciones_disponibles[i].Id_Habitacion;
                    detallesAremover.Add(det);
                }
                textPrecio.Text = Globals.obtenerPrecio(nueva_reserva.CodigoRegimen, cantPersonas + cantPersonas_originales,
                                                        Globals.infoSesion.Hotel.Recargo).ToString();
                //Simamos la cantPersonas_originales para obtener la cantidad total de personas ingresadas y no tener que levantar todo de nuevo
                MessageBox.Show("Hay disponibilidad para modificar la reserva.",
                                "", MessageBoxButtons.OK);
                hab_confirmadas = true;
            }
        }