Beispiel #1
0
        private void botonGuardar_Click(object sender, EventArgs e)
        {
            if (chequearDatos())
            {
                habitacion.Id_Habitacion = Int32.Parse(textNumero.Text);
                habitacion.Piso          = Int32.Parse(textPiso.Text);
                habitacion.Descripcion   = textDescripcion.Text;
                //Usa la descripcion el combo, entonces....
                habitacion.Tipo_codigo = Tipo_Habitacion.getCodeByDescription(comboTipo.SelectedItem.ToString(), lista_tipos);

                habitacion.Ubicacion = comboUbicacion.SelectedItem.ToString();
                if (comboEstado.SelectedIndex == 0)
                {
                    habitacion.CampoBaja = false;
                }
                else
                {
                    habitacion.CampoBaja = true;
                }

                if (!DAOHabitacion.actualizar(habitacion))
                {
                    MessageBox.Show("Error al modificar la habitación.", "Error al Modificar Habitación",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Habitación Modificada Correctamente.", "Modificar Habitación",
                                    MessageBoxButtons.OK, MessageBoxIcon.None);
                    ((HabitacionBajaMod)Globals.VentanaAnterior).updateGrid();
                    this.Close();
                }
            }
        }
Beispiel #2
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);
        }
        private void ModificarReserva_Load(object sender, EventArgs e)
        {
            textNroReserva.Text = reserva_elegida.CodigoReserva.ToString();
            Huesped huesped = DAOHuesped.obtener(reserva_elegida.Huesped);

            if (huesped == null)
            {
                MessageBox.Show("Error al obtener los datos de la Base de Datos. Se volverá a la ventana anterior.",
                                "", MessageBoxButtons.OK);
                this.Close();
                return;
            }
            textHuesped.Text = huesped.Nombre + " " + huesped.Apellido;

            lista_regimenes = DAORegimen.obtenerByHotel(hotel.CodHotel);
            regimen_elegido = DAORegimen.obtener(reserva_elegida.CodigoRegimen);

            tipos_habitacion = DAOHabitacion.obtenerTipoTodos();
            tipo_elegido     = DAOHabitacion.obtenerTipoByReserva(reserva_elegida.CodigoReserva);

            //Rellenar Tipo Habitacion
            foreach (Tipo_Habitacion tipo in tipos_habitacion)
            {
                comboTipoHab.Items.Add(tipo.Descripcion);
            }
            //Rellenar Regimenes
            foreach (Regimen reg in lista_regimenes)
            {
                comboTipoRegimen.Items.Add(reg.Descripcion);
            }
            limpiarDatos();
        }
Beispiel #4
0
        private void botonGuardar_Click(object sender, EventArgs e)
        {
            if (camposCompletos())
            {
                Habitacion nuevaHabitacion = new Habitacion();
                //Se completan Campos de Habitacion
                nuevaHabitacion.Id_Habitacion = Convert.ToInt32(textNumero.Text);
                nuevaHabitacion.CodHotel      = hotel.CodHotel;
                nuevaHabitacion.Tipo_codigo   = Tipo_Habitacion.getCodeByDescription(comboTipoHab.SelectedItem.ToString(), lista_tipos);
                nuevaHabitacion.Piso          = Convert.ToInt32(textPiso.Text);
                nuevaHabitacion.Ubicacion     = comboUbicacion.SelectedItem.ToString();
                nuevaHabitacion.Descripcion   = textDescripcion.Text;

                if (!DAOHabitacion.insertar(nuevaHabitacion))
                {
                    MessageBox.Show("Error al crear la habitación.", "Error al crear Nueva Habitación",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Habitación Creada Correctamente.", "Nueva Habitación",
                                    MessageBoxButtons.OK, MessageBoxIcon.None);
                    ((HabitacionBajaMod)Globals.VentanaAnterior).updateGrid();
                    this.Close();
                }
            }
        }
Beispiel #5
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            var th = ObtenerDatosFormulario();

            if (alternativa == "Agregar")
            {
                Tipo_Habitacion.AgregarTipoHabitacion(th);
            }
            else if (alternativa == "Actualizar")
            {
                if (this.lstTipoHabitacion.SelectedItems.Count == 0)
                {
                    MessageBox.Show("Seleccione una fila para Actualizar.");
                }

                else
                {
                    int indice = lstTipoHabitacion.SelectedIndex;
                    Tipo_Habitacion.ActualizarTipoHabitacion(th, indice);
                    ActualizarListaTipoHabitaciones();
                }
            }

            LimpiarFormulario();
            ActualizarListaTipoHabitaciones();
            BloquearFormulario();
        }
    public HabitacionDisponible getHabitDisponible(string estadoHab, int numeroHab, string tipoHab, string descripHab, double tarifaHab,
                                                   System.DateTime fechaInic, System.DateTime fechaFin, ImagenesStandard imgStandard, ImagenesSuite imgSuite, ImagenesJunior imgJunior)
    {
        HabitacionDisponible habitDisponible = new HabitacionDisponible();

        try
        {
            Habitacion      habitacion     = new Habitacion();
            Tipo_Habitacion tipoHabitacion = new Tipo_Habitacion();

            habitacion.estado_Habitacion          = estadoHab;
            habitacion.numero_Habitacion          = numeroHab;
            habitacion.tipo_Habitacion_Habitacion = tipoHab;

            tipoHabitacion.descripcion_Tipo_Habitacion = descripHab;
            tipoHabitacion.nombre_Tipo_Habitacion      = tipoHab;
            tipoHabitacion.tarifa_Tipo_Habitacion      = tarifaHab;

            habitDisponible.fechaFin       = fechaFin;
            habitDisponible.fechaInic      = fechaInic;
            habitDisponible.habitacion     = habitacion;
            habitDisponible.tipoHabitacion = tipoHabitacion;
            habitDisponible.imagenJunior   = imgJunior;
            habitDisponible.imagenStandard = imgStandard;
            habitDisponible.imagenSuite    = imgSuite;

            return(habitDisponible);
        }
        catch (Exception ex) {
            return(habitDisponible);
        }
    }
Beispiel #7
0
        public List <Tipo_Habitacion> getAll()
        {
            var           todosLosTiposHab = new List <Tipo_Habitacion>();
            SqlConnection connection       = new SqlConnection(InfoGlobal.connectionString);
            SqlCommand    spCommand        = new SqlCommand("CUATROGDD2018.SP_GetAll_TiposHabitaciones", connection);

            spCommand.CommandType = CommandType.StoredProcedure;
            connection.Open();
            spCommand.Parameters.Clear();
            //agrego parametros al SP_GetAll_TiposHabitaciones

            DataTable tiposTable = new DataTable();

            tiposTable.Load(spCommand.ExecuteReader());
            if (tiposTable != null && tiposTable.Rows != null)
            {
                foreach (DataRow row in tiposTable.Rows)
                {
                    Tipo_Habitacion tipo = this.Build_TipoHabitacion(row);
                    todosLosTiposHab.Add(tipo);
                }
            }
            connection.Close();
            return(todosLosTiposHab);
        }
 private void frmHabitacion_Load(object sender, EventArgs e)
 {
     ActualizarListaHabitaciones();
     cboEstadoHabitacion.DataSource = Estado_Habitacion.ObtenerEstadoHabitacion();
     cboTipoHabitacion.DataSource   = Tipo_Habitacion.ObtenerTipoHabitaciones();
     BloquearFormulario();
 }
        public IHttpActionResult actualizarTipo(string tipo, string descripcion, double tarifa)
        {
            Tipo_Habitacion habitacion = new Tipo_Habitacion();
            //RepositorioHabitacion reposiorio = new RepositorioHabitacion();
            IHabitacionLN repositorio = FabricaIoC.Contenedor.Resolver <HabitacionLN>();

            habitacion = repositorio.actualizarTipo(tipo, descripcion, tarifa);
            return(Ok(habitacion));
        }
Beispiel #10
0
        private Tipo_Habitacion ObtenerDatosFormulario()
        {
            Tipo_Habitacion tipohabitacion = new Tipo_Habitacion();

            tipohabitacion.ID_TipoHabitacion = txtCodTipoHabitacion.Text;
            tipohabitacion.Descripcion       = txtDescripcionTipoHabitacion.Text;

            return(tipohabitacion);
        }
Beispiel #11
0
        private void lstTipoHabitacion_Click(object sender, EventArgs e)
        {
            Tipo_Habitacion th = (Tipo_Habitacion)lstTipoHabitacion.SelectedItem;

            if (th != null)
            {
                txtCodTipoHabitacion.Text         = th.ID_TipoHabitacion.ToString();
                txtDescripcionTipoHabitacion.Text = th.Descripcion;
            }
        }
Beispiel #12
0
        private Tipo_Habitacion Build_TipoHabitacion(DataRow row)
        {
            Tipo_Habitacion tipo = new Tipo_Habitacion();

            tipo.id_tipo_habitacion = Convert.ToInt32(row["id_tipo_habitacion"]);
            tipo.descripcion        = Convert.ToString(row["descripcion"]);
            tipo.porcentual         = Convert.ToInt32(row["porcentual"]);
            tipo.cant_Huespedes     = Convert.ToInt32(row["cant_huespedes"]);
            return(tipo);
        }
Beispiel #13
0
        private int getCantMaximaHuespedes()
        {
            int cant = 0;

            foreach (Habitacion habReserva in reservaSeleccionada.habitacionesReserva)
            {
                Tipo_Habitacion tipoHab = tipoHabCtrl.getTipoHabitacion_ConID(habReserva.id_tipo_habitacion);
                cant = cant + tipoHab.cant_Huespedes;
            }
            return(cant);
        }
Beispiel #14
0
        private Tipo_Habitacion ObtenerDatosFormulario()
        {
            Tipo_Habitacion tipohabitacion = new Tipo_Habitacion();

            if (!string.IsNullOrEmpty(txtCodTipoHabitacion.Text))
            {
                tipohabitacion.ID_TipoHabitacion = Convert.ToInt32(txtCodTipoHabitacion.Text);
            }

            tipohabitacion.Descripcion = txtDescripcionTipoHabitacion.Text;

            return(tipohabitacion);
        }
        private void cargarTiposHabitacion()
        {
            Tipo_Habitacion tipoDefault = new Tipo_Habitacion();

            tipoDefault.id_tipo_habitacion = 0;
            tipoDefault.descripcion        = "Todos";
            List <Tipo_Habitacion> tiposHabitacion = tipoHabCtrl.getAll();

            tiposHabitacion.Add(tipoDefault);
            tipoHabBox.DisplayMember = "descripcion";
            tipoHabBox.ValueMember   = "id_tipo_habitacion";
            tipoHabBox.DataSource    = tiposHabitacion;
        }
    public Tipo_Habitacion obtenerTipoHabitacion(string tipo)
    {
        Tipo_Habitacion tipoHabitacion = new Tipo_Habitacion();

        try
        {
            tipoHabitacion = db.Tipo_Habitacion.Find(tipo);
            return(tipoHabitacion);
        }
        catch (Exception ex) {
            return(tipoHabitacion);
        }
    }
Beispiel #17
0
 private void btnEliminar_Click(object sender, EventArgs e)
 {
     if (this.lstTipoHabitacion.SelectedItems.Count == 0)
     {
         MessageBox.Show("Seleccione una fila para Eliminar.");
     }
     else
     {
         Tipo_Habitacion th = (Tipo_Habitacion)lstTipoHabitacion.SelectedItem;
         Tipo_Habitacion.EliminarTipoHabitacion(th);
         ActualizarListaTipoHabitaciones();
         LimpiarFormulario();
     }
 }
        private void lstHabitacion_Click(object sender, EventArgs e)
        {
            Habitacion h = (Habitacion)lstHabitacion.SelectedItem;

            if (h != null)
            {
                txtCodHabitacion.Text = Convert.ToString(h.ID_Habitacion);
                txtNroHabitacion.Text = Convert.ToString(h.Numero);
                //cboEstadoHabitacion.SelectedItem = Convert.ToString(h._Estado_Habitacion);
                cboEstadoHabitacion.SelectedItem = (Estado_Habitacion)Estado_Habitacion.ObtenerEsHabitacion(h._Estado_Habitacion.ID_EstadoHabitacion);
                txtCostoHabitacion.Text          = Convert.ToString(h.Costo);
                cboTipoHabitacion.SelectedItem   = (Tipo_Habitacion)Tipo_Habitacion.ObtenerThabitacion(h._TipoHabitacion.ID_TipoHabitacion);
                txtDescripcionHabitacion.Text    = h.Descripcion;
            }
        }
    public Tipo_Habitacion actualizarTipo(string tipo, string descripcion, double tarifa)
    {
        Tipo_Habitacion habitacion = new Tipo_Habitacion();

        try
        {
            habitacion.descripcion_Tipo_Habitacion = descripcion;
            habitacion.hotel_Tipo_Habitacion       = "Patito";
            habitacion.tarifa_Tipo_Habitacion      = tarifa;
            habitacion.nombre_Tipo_Habitacion      = tipo;
            db.Entry(habitacion).State             = EntityState.Modified;
            db.SaveChanges();
            return(db.Tipo_Habitacion.Find(tipo));
        }
        catch (Exception ex) {
            return(habitacion);
        }
    }
Beispiel #20
0
        public static List <Tipo_Habitacion> transductor_tipo(DataTable dt)
        {
            List <Tipo_Habitacion> lista = new List <Tipo_Habitacion>();

            if (dt != null)
            {
                foreach (DataRow fila in dt.Rows)
                {
                    Tipo_Habitacion tipo = new Tipo_Habitacion();
                    tipo.TipoCodigo   = Convert.ToInt32(fila["tipoCodigo"]);
                    tipo.Descripcion  = Convert.ToString(fila["tipoDescripcion"]);
                    tipo.Porcentual   = Convert.ToDouble(fila["tipoPorcentual"]);
                    tipo.CantPersonas = Convert.ToInt32(fila["tipoCantidad"]);
                    //Transcribir
                    lista.Add(tipo);
                }
            }
            return(lista);
        }
Beispiel #21
0
        private void botonReservar_Click(object sender, EventArgs e)
        {
            //Chequeo de cosas
            if (chequearDatos())
            {
                if (comboBoxTipoRegimen.SelectedIndex == -1)
                {
                    new ListarRegimenes().Show();
                    Globals.deshabilitarAnterior(this);
                    return;
                }
                regimen_elegido = lista_regimenes[comboBoxTipoRegimen.SelectedIndex];

                //Reservar con los datos validados
                int             cantHuespedes     = Int32.Parse(textCantHuespedes.Text);
                Tipo_Habitacion tipo_seleccionado = DAOHabitacion.obtenerTipo(Tipo_Habitacion.getCodeByDescription(comboTipoHab.SelectedItem.ToString(), tipos_habitacion));
                if (tipo_seleccionado.CantPersonas < cantHuespedes)
                {
                    int cantHabitaciones =
                        ((cantHuespedes % tipo_seleccionado.CantPersonas) == 0) ? (cantHuespedes / tipo_seleccionado.CantPersonas)
                        : ((cantHuespedes / tipo_seleccionado.CantPersonas) + 1);

                    DialogResult dr = MessageBox.Show("Se reservarán " + cantHabitaciones.ToString() + " habitaciones. Desea continuar?",
                                                      "", MessageBoxButtons.YesNo);
                    switch (dr)
                    {
                    case DialogResult.Yes:
                        reservar(cantHabitaciones, tipo_seleccionado);
                        break;

                    case DialogResult.No:
                        break;
                    }
                }
                else
                {
                    reservar(1, tipo_seleccionado);
                }
            }
        }
        public IHttpActionResult obtenerTipoHabitacion(string tipo)
        {
            IImagenLN     repositorioImagenes = FabricaIoC.Contenedor.Resolver <ImagenLN>();
            IHabitacionLN repositorio         = FabricaIoC.Contenedor.Resolver <HabitacionLN>();

            Tipo_Habitacion habitacion = new Tipo_Habitacion();

            habitacion = repositorio.obtenerTipoHabitacion(tipo);

            var imagenJunior   = repositorioImagenes.obtenerImagenesJunior();
            var imagenStandard = repositorioImagenes.obtenerImagenesStandard();
            var imagenSuite    = repositorioImagenes.obtenerImagenesSuite();

            TipoHabitacionConImagenes tipoHabitacion = new TipoHabitacionConImagenes();

            tipoHabitacion.tipoHabitacionX = habitacion;
            tipoHabitacion.imagenJunior    = imagenJunior;
            tipoHabitacion.imagenStandard  = imagenStandard;
            tipoHabitacion.imagenSuite     = imagenSuite;

            return(Ok(tipoHabitacion));
        }
Beispiel #23
0
        internal Tipo_Habitacion getTipoHabitacion_ConID(int id_tipo)
        {
            Tipo_Habitacion tipoEncontrado = new Tipo_Habitacion();
            SqlConnection   connection     = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());
            SqlCommand      spCommand      = new SqlCommand("CUATROGDD2018.SP_GetTipoHabitacion_PorID", connection);

            spCommand.CommandType = CommandType.StoredProcedure;
            spCommand.Parameters.Add(new SqlParameter("@idTipo", id_tipo));
            connection.Open();
            DataTable dtHotel = new DataTable();

            dtHotel.Load(spCommand.ExecuteReader());
            if (dtHotel != null && dtHotel.Rows != null)
            {
                foreach (DataRow row in dtHotel.Rows)
                {
                    tipoEncontrado = this.Build_TipoHabitacion(row);
                }
            }

            connection.Close();
            return(tipoEncontrado);
        }
    public HabitacionDisponible habitacionDisponible(System.DateTime fechaInicio, System.DateTime fechaFinal, string tipo)
    {
        HabitacionDisponible habitDisponible = new HabitacionDisponible();

        habitDisponible = null;

        Habitacion      habitacion     = new Habitacion();
        Tipo_Habitacion tipoHabitacion = new Tipo_Habitacion();

        RepositorioImagen repoImagen     = new RepositorioImagen();
        ImagenesJunior    imagenJunior   = repoImagen.obtenerImagenesJunior();
        ImagenesStandard  imagenStandard = repoImagen.obtenerImagenesStandard();
        ImagenesSuite     imagenSuite    = repoImagen.obtenerImagenesSuite();

        try
        {
            contexto.actualiza_Estado_Habitacion();

            int cambioFecha = 0;

            while (habitDisponible == null)
            {
                var habitaciones = from Habitacion h in contexto.Habitacion
                                   join Tipo_Habitacion th in contexto.Tipo_Habitacion
                                   on h.tipo_Habitacion_Habitacion equals th.nombre_Tipo_Habitacion
                                   where th.nombre_Tipo_Habitacion == tipo
                                   select new
                {
                    h.estado_Habitacion,
                    h.numero_Habitacion,
                    h.tipo_Habitacion_Habitacion,
                    th.descripcion_Tipo_Habitacion,
                    th.nombre_Tipo_Habitacion,
                    th.tarifa_Tipo_Habitacion,
                };

                foreach (var miHabitacion in habitaciones)
                {
                    var reservada = from Reservacion r in contexto.Reservacion
                                    where r.idHabitacion_Reservacion == miHabitacion.numero_Habitacion

                                    select new
                    {
                        r.id_Reservacion,
                        r.fechaLLegada_Reservacion,
                        r.fechaSalida_Reservacion,
                        r.idCliente_Reservacion,
                        r.idHabitacion_Reservacion,
                    };
                    if (reservada.Count() > 0)
                    {
                        foreach (var reserv in reservada)
                        {
                            if (fechaInicio >= reserv.fechaLLegada_Reservacion && fechaInicio <= reserv.fechaSalida_Reservacion ||
                                fechaFinal >= reserv.fechaLLegada_Reservacion && fechaFinal <= reserv.fechaSalida_Reservacion ||
                                reserv.fechaLLegada_Reservacion >= fechaInicio && reserv.fechaLLegada_Reservacion <= fechaFinal ||
                                reserv.fechaSalida_Reservacion >= fechaInicio && reserv.fechaSalida_Reservacion <= fechaFinal)
                            {
                                break;
                            }
                            else
                            {
                                habitDisponible = getHabitDisponible(miHabitacion.estado_Habitacion, miHabitacion.numero_Habitacion,
                                                                     miHabitacion.tipo_Habitacion_Habitacion, miHabitacion.descripcion_Tipo_Habitacion, miHabitacion.tarifa_Tipo_Habitacion,
                                                                     fechaInicio, fechaFinal, imagenStandard, imagenSuite, imagenJunior);

                                if (cambioFecha == 1)
                                {
                                    habitDisponible.mensaje = "No pudimos encontrar una habitacion en dentro de las fechas indicadas," +
                                                              " sin embargo," + "le ofrecemos una habitacion similar para estas fechas";
                                }
                                else
                                {
                                    habitDisponible.mensaje = "Hemos encontrado esta habitacion para usted";
                                }

                                return(habitDisponible);
                            }
                        }
                    }
                    else
                    {
                        habitDisponible = getHabitDisponible(miHabitacion.estado_Habitacion, miHabitacion.numero_Habitacion, miHabitacion.tipo_Habitacion_Habitacion,
                                                             miHabitacion.descripcion_Tipo_Habitacion, miHabitacion.tarifa_Tipo_Habitacion, fechaInicio, fechaFinal, imagenStandard,
                                                             imagenSuite, imagenJunior);
                        if (cambioFecha == 1)
                        {
                            habitDisponible.mensaje = "No pudimos encontrar una habitacion dentro de las fechas indicadas," +
                                                      " sin embargo," + "le ofrecemos una habitacion similar para estas fechas";
                        }
                        else
                        {
                            habitDisponible.mensaje = "Hemos encontrado esta habitacion para usted";
                        }

                        return(habitDisponible);
                    }
                }
                cambioFecha = 1;
                fechaInicio = fechaInicio.AddDays(1);
                fechaFinal  = fechaFinal.AddDays(1);
            }
            return(habitDisponible);
        }
        catch (Exception ex) {
            return(habitDisponible);
        }
    }
Beispiel #25
0
 private void ActualizarListaTipoHabitaciones()
 {
     lstTipoHabitacion.DataSource = null;
     lstTipoHabitacion.DataSource = Tipo_Habitacion.ObtenerTipoHabitaciones();
 }
    public List <HabitacionesDisponibles> obtenerHabitaciones(DateTime fechaInicio, DateTime fechaFinal, string tipo)
    {
        List <HabitacionesDisponibles> hds = new List <HabitacionesDisponibles>(); //habitaciones disponibles
        Habitacion      habitacion         = new Habitacion();                     //habitacion para obtener
        Tipo_Habitacion tipoHabitacion     = new Tipo_Habitacion();                //tipo de habitacion en la BD

        int   cantidadDias = (int)(fechaFinal - fechaInicio).TotalDays;
        float costoTotal   = 0;

        //recorrer todos los tipos que solicita el usuario

        try
        {
            //Obtener todas las habitaciones por el tipo actual
            var habitaciones = from Habitacion h in db.Habitacion
                               join Tipo_Habitacion th in db.Tipo_Habitacion
                               on h.tipo_Habitacion_Habitacion equals th.nombre_Tipo_Habitacion
                               where th.nombre_Tipo_Habitacion == tipo
                               select new
            {
                h.estado_Habitacion,
                h.numero_Habitacion,
                h.tipo_Habitacion_Habitacion,
                th.descripcion_Tipo_Habitacion,
                th.nombre_Tipo_Habitacion,
                th.tarifa_Tipo_Habitacion,
            };                   //creación de la habitacion

            foreach (var miHabitacion in habitaciones)
            {
                var reservada = from Reservacion r in db.Reservacion
                                where r.idHabitacion_Reservacion == miHabitacion.numero_Habitacion
                                select new
                {
                    r.id_Reservacion,
                    r.fechaLLegada_Reservacion,
                    r.fechaSalida_Reservacion,
                    r.idCliente_Reservacion,
                    r.idHabitacion_Reservacion,
                };
                var tam = reservada.Count();
                if (tam > 0)//si está en la tabla reservada
                {
                    foreach (var reserv in reservada)
                    {
                        if (fechaInicio >= reserv.fechaLLegada_Reservacion && fechaInicio <= reserv.fechaSalida_Reservacion ||
                            fechaFinal >= reserv.fechaLLegada_Reservacion && fechaFinal <= reserv.fechaSalida_Reservacion ||
                            reserv.fechaLLegada_Reservacion >= fechaInicio && reserv.fechaLLegada_Reservacion <= fechaFinal ||
                            reserv.fechaSalida_Reservacion >= fechaInicio && reserv.fechaSalida_Reservacion <= fechaFinal)
                        {
                            break;//si la habitación está reservada no se puede tomar en cuenta
                        }//if
                        else //si está en reservada pero no se reservó en el rango de fechas entra
                        {
                            //creación de la habitación temporal que se genera según los filtros empleados.
                            HabitacionesDisponibles habitacionTemp = new HabitacionesDisponibles();

                            costoTotal = (cantidadDias * (float)miHabitacion.tarifa_Tipo_Habitacion);

                            habitacionTemp.numero_Habitacion = miHabitacion.numero_Habitacion;
                            habitacionTemp.tipo_Habitacion   = miHabitacion.tipo_Habitacion_Habitacion;
                            habitacionTemp.costo             = costoTotal;

                            hds.Add(habitacionTemp);//se agrega la habitación a la lista que se retornará
                        }//else
                    }//foreach de reservaciones
                }    //if reservada.Count
                else // si no está en la tabla reservada está libre y se agraga
                {
                    //creación de la habitación temporal que se genera según los filtros empleados.
                    HabitacionesDisponibles habitacionTemp = new HabitacionesDisponibles();

                    costoTotal = (cantidadDias * (float)miHabitacion.tarifa_Tipo_Habitacion);

                    habitacionTemp.numero_Habitacion = miHabitacion.numero_Habitacion;
                    habitacionTemp.tipo_Habitacion   = miHabitacion.tipo_Habitacion_Habitacion;
                    habitacionTemp.costo             = costoTotal;

                    hds.Add(habitacionTemp);//se agrega la habitación a la lista que se retornará
                }//else
            }//foreach de habitaciones

            return(hds);
        }
        catch (Exception ex) {
            return(hds);
        }
    }//obtenerHabitaciones