예제 #1
0
        private String getCondiciones(String numero, String piso, Hotel hotel, TipoHabitacion tipoHabitacion, KeyValuePair <String, Boolean> estado, SqlCommand sqlCommand)
        {
            List <String> condiciones = new List <String>();

            if (numero != null)
            {
                condiciones.Add("HAB.Numero = @habNumero ");
                sqlCommand.Parameters.AddWithValue("@habNumero", numero);
            }
            if (piso != null)
            {
                condiciones.Add("HAB.Piso=@habPiso");
                sqlCommand.Parameters.AddWithValue("@habPiso", piso);
            }
            if (hotel != null && hotel.getIdHotel() != 0)
            {
                condiciones.Add("HAB.idHotel=@habIdHotel");
                sqlCommand.Parameters.AddWithValue("@habIdHotel", hotel.getIdHotel());
            }


            if (tipoHabitacion != null && tipoHabitacion.getIdTipoHabitacion() != 0)
            {
                condiciones.Add("HAB.idTipoHabitacion=@habidTipoHabitacion");
                sqlCommand.Parameters.AddWithValue("@habidTipoHabitacion", tipoHabitacion.getIdTipoHabitacion());
            }

            if (estado.Key != null)
            {
                condiciones.Add("HAB.Activa=@habActiva");
                sqlCommand.Parameters.AddWithValue("@habActiva", estado.Value);
            }


            if (condiciones.Count != 0)
            {
                return(" WHERE " + string.Join(" AND ", condiciones.ToArray()));
            }
            return("");
        }
예제 #2
0
        public List <HabitacionDisponible> getHabitacionesDisponibles(DateTime fechaInicio, DateTime fechaFin, Hotel hotel, TipoHabitacion tipoHabitacion, Regimen regimen, Reserva reserva)
        {
            List <HabitacionDisponible> habitacionesDisponibles = new List <HabitacionDisponible>();
            RepositorioRegimen          repoRegimen             = new RepositorioRegimen();

            String        connectionString = ConfigurationManager.AppSettings["BaseLocal"];
            SqlConnection sqlConnection    = new SqlConnection(connectionString);
            SqlCommand    sqlCommand       = new SqlCommand();
            SqlDataReader reader;

            RepositorioReserva repoReserva = new RepositorioReserva();

            repoReserva.cancelarReservasNoShow(hotel);
            sqlCommand.Parameters.AddWithValue("@fechaInicio", fechaInicio);
            sqlCommand.Parameters.AddWithValue("@fechaFin", fechaFin);

            sqlCommand.Parameters.AddWithValue("@idHotel", hotel.getIdHotel());

            String queryTipoHab = "";

            if (tipoHabitacion != null)
            {
                sqlCommand.Parameters.AddWithValue("@idtipoHabitacion", tipoHabitacion.getIdTipoHabitacion());
                queryTipoHab = "AND HAB.idTipoHabitacion=@idtipoHabitacion ";
            }
            String queryModificarReservaParaTraerLaHabitacionQueYaReserve = reserva == null ? "" : "AND RES.idReserva!=" + reserva.getIdReserva();

            sqlCommand.CommandType = CommandType.Text;
            sqlCommand.Connection  = sqlConnection;
            sqlCommand.CommandText =
                "SELECT HAB.idHabitacion,HAB.Activa,HAB.Numero,HAB.Piso,HAB.Ubicacion,Hab.Descripcion,HAB.idHotel,HAB.idTipoHabitacion,REG.idRegimen FROM LOS_BORBOTONES.Habitacion AS HAB " +
                "JOIN LOS_BORBOTONES.Hotel AS HOT ON HOT.idHotel=HAB.idHotel " +
                "JOIN LOS_BORBOTONES.Regimen_X_Hotel AS RXH ON RXH.idHotel=HOT.idHotel " +
                "JOIN LOS_BORBOTONES.Regimen AS REG ON REG.idRegimen = RXH.idRegimen " +
                "JOIN LOS_BORBOTONES.TipoHabitacion AS TIP ON TIP.idTipoHabitacion=HAB.idTipoHabitacion " +
                "WHERE REG.Activo=1 " +
                "AND HAB.idHotel=@idHotel " +
                "AND HAB.Activa=1 " +
                queryTipoHab +
                "AND NOT EXISTS ( " +
                "SELECT * FROM LOS_BORBOTONES.Reserva_X_Habitacion_X_Cliente AS RXHXC " +
                "JOIN LOS_BORBOTONES.Reserva AS RES ON RES.idReserva = RXHXC.idReserva  " +
                "WHERE HAB.idHabitacion= RXHXC.idHabitacion " +
                queryModificarReservaParaTraerLaHabitacionQueYaReserve +
                "AND  (RES.FechaDesde < @fechaFin AND @fechaInicio < RES.FechaHasta  ) " +
                "AND NOT EXISTS( " +
                "SELECT * FROM LOS_BORBOTONES.EstadoReserva AS ESRE " +
                "WHERE RES.idReserva = ESRE.idReserva " +
                "AND ESRE.TipoEstado  IN ('RCR','RCC','RCNS') " +
                ") " +
                ") " +

                "AND NOT EXISTS (SELECT * FROM LOS_BORBOTONES.CierreTemporal AS CIE WHERE CIE.idHotel= HOT.idHotel AND CIE.FechaInicio < @fechaFin AND @fechaInicio < CIE.FechaFin) ";

            if (regimen != null)
            {
                sqlCommand.Parameters.AddWithValue("@idRegimen", regimen.getIdRegimen());
                sqlCommand.CommandText += " AND REG.idRegimen=@idRegimen ";
            }

            sqlCommand.CommandText += " GROUP BY HAB.idHabitacion, REG.idRegimen, HAB.Activa,HAB.Numero,HAB.Piso,HAB.Ubicacion,HAB.idHotel,HAB.idTipoHabitacion,HAB.Descripcion " +
                                      " ORDER BY HAB.idHabitacion;";

            sqlConnection.Open();

            reader = sqlCommand.ExecuteReader();

            while (reader.Read())
            {
                int    qidHabitacion     = reader.GetInt32(reader.GetOrdinal("idHabitacion"));
                int    qidTipoHabitacion = reader.GetInt32(reader.GetOrdinal("idTipoHabitacion"));
                bool   qactiva           = reader.GetBoolean(reader.GetOrdinal("Activa"));
                int    qnumero           = reader.GetInt32(reader.GetOrdinal("Numero"));
                int    qpiso             = reader.GetInt32(reader.GetOrdinal("Piso"));
                int    qidRegimen        = reader.GetInt32(reader.GetOrdinal("idRegimen"));
                String qubicacion        = reader.GetString(reader.GetOrdinal("Ubicacion"));
                String qdescripcion      = reader.SafeGetString(reader.GetOrdinal("Descripcion"));

                Regimen    qregimen    = repoRegimen.getById(qidRegimen);
                Habitacion qhabitacion = new Habitacion(qidHabitacion, qactiva, qnumero, qpiso, qubicacion, qdescripcion);
                habitacionesDisponibles.Add(new HabitacionDisponible(qhabitacion, qregimen));
            }

            //Cierro Primera Consulta
            sqlConnection.Close();
            return(habitacionesDisponibles);
        }