Exemplo 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);
        }
Exemplo 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;
            }
        }
Exemplo n.º 3
0
 public static bool quitarHabitacion(Detalle_Reserva detalle)
 {
     int codReserva = detalle.CodigoReserva;
     int codHotel = detalle.CodigoHotel;
     int hab = detalle.Habitacion;
     return executeProcedure("deleteDetalleReserva", codReserva, codHotel, hab);
 }
Exemplo n.º 4
0
 public static List<Detalle_Reserva> transductor_detalle(DataTable dt)
 {
     List<Detalle_Reserva> lista = new List<Detalle_Reserva>();
     if (dt != null)
     {
         foreach (DataRow fila in dt.Rows)
         {
             Detalle_Reserva detalle = new Detalle_Reserva();
             detalle.CodigoReserva = Convert.ToInt32(fila["codReserva"]);
             detalle.CodigoHotel = Convert.ToInt32(fila["codHotel"]);
             detalle.Habitacion = Convert.ToInt32(fila["habitacion"]);
             //Transcribir
             lista.Add(detalle);
         }
     }
     return lista;
 }
Exemplo n.º 5
0
 public static bool agregarHabitacion(Detalle_Reserva detalle)
 {
     int codReserva = detalle.CodigoReserva;
     int codHotel = detalle.CodigoHotel;
     int habitacion = detalle.Habitacion;
     return executeProcedure("insertDetalleReserva", codReserva, codHotel, habitacion);
 }