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); }
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; } }
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); }
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; }
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); }