PHP - Reservación de Habitaciones en Hotel

 
Vista:
Imágen de perfil de Ruben Dario
Val: 17
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Reservación de Habitaciones en Hotel

Publicado por Ruben Dario (8 intervenciones) el 23/11/2016 03:07:55
Saludos nuevamente por aqui amigos, esta vez vengo a pedirle ayuda, respecto en como poder hacer una consulta o recorrido, me explico, estoy haciendo un sistema para reservar habitaciones en hotel, donde el cliente selecciona fecha de entrada y salida, al clikear el boton, se mostrara un listado de las habitaciones disponibles, y en cada fila hay un checkbox para que el cliente pueda seleciconar la habitacion a reservar, al darle clic a x cantidad de habitaciones se muestra un formulario con algunos datos de las habitaciones reservadas, esto todo bien recibo los datos de los checkbox por medio de un array, ahora la cuestion es que el costo de la habitaciones es por temporada, es decir;

TEMPORADA BAJA=ENERO, JULIO, AGOSTO, NOVIEMBRE Y DICIEMBRE
TEMPORADA MEDIA=MARZO, ABRIL, MAYO, JUNIO, SEPTIEMBRE, OCTUBRE Y PUENTES
TEMPORADA ALTA=FEBRERO (CARNAVAL), SEMANA SANTA, FIESTAS DE IBARRA Y EVENTOS ESPECIALES

en cada temporada es un costo diferente, y la verdad no consigo como hacer el recorrido para obtener esos costos, es decir que el cliente selecicone fecha entrada 2017-01-01 y salida 2017-02-28.

Donse sabemos que el mes de Enero pertenece a la temporada baja y la tarifa es 10bs y el mes de febrero es de la temporada alta y el costo es 20bs, entonces sumando todo seria un costo total de 870bs en total por esos dos meses, espero que alguien me pueda echar la mano,

Tengo creada una tabla temporadas donde alli guardo los campos

temporada desde hasta
BAJA FECHA FECHA
MEDIA
ALTA

Y asi sucesivamente para registrar todas las temporadas y fechas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Reservación de Habitaciones en Hotel

Publicado por xve (6933 intervenciones) el 23/11/2016 10:20:45
Hola Ruben, yo creo que la manera de actuar, es contar los días de cada mes, para poder realizar el calculo.

Creo que tendrias que hacerte una función que devuelve un array con los meses y días de cada mes, para posteriormente hacer el calculo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 680
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Reservación de Habitaciones en Hotel

Publicado por Lawliet (351 intervenciones) el 23/11/2016 18:59:04
Hola...

Lo estuve meditando un poco y siento que por lo menos para mi, la mejor forma de tener esa organización sería mediante un catálogo de temporadas, además que siento que sería como que lo correcto, después de todo si yo como el dueño del hotel quiero cambiar el precio de X temporada entonces puedo irme fácilmente al módulo y hacer el cambio correspondiente.

Para ello pienso que se deberían de tener las siguientes tablas:

mes
1
2
3
mesId
mesName
mesNum

temporada
1
2
3
temporadaId
temporadaName
temporadaDescipcion

mes_temporada
1
2
3
4
mesId
temporadaId
precio
comentarios

Ahora bien, si gustas algo más simple pero funcional podríamos dejarlo de la siguiente manera:

temporada
1
2
3
4
5
temporadaId
temporadaName
mesNum
precio
comentarios

De esa manera siento que podrás controlar los precios cuando selecciones el mes correspondiente.

Obviamente la idea del catálogo es opcional aunque se me hace la mejor para que un administrador pueda manipular las temporadas a su gusto. Lo importante se encuentra en la base de datos prácticamente que vienen siendo las tablas que te proporciono.

Sin más que comentar, quedamos al pendiente de cualquier duda y/o comentario.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ruben Dario
Val: 17
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Reservación de Habitaciones en Hotel

Publicado por Ruben Dario (8 intervenciones) el 24/11/2016 02:06:03
as gracias por responder amigo, la verdad esta muy buena esa propuesta que me indicas amigo Lawliet, algo parecido tengo yo, pero tengo una tabla tarifas donde selecicono el tipo de habitacionm y le agrego el costo a los 3 tipos de temporadas, (media, baja y alta), y otra tabla temporadas donde le coloco el nombr d etemporada y la fecha desde y hasta ya que las fechas pueden cambiarse de acuerdo a la necesidad del dueño del hotel, aqui intentando las cosas usando mysqli pude hacerlo, y pues cuando lo quiero pasar a una funcion dentro de la clase pdo me da un problema, que necesito sacar o retornar la variable pago, pero e intentado miles maneras y nada aun

aqui esta el codigo que tengo en la funcion, al final esta la variable pago que quiero retomarla y mostrarla en un campo del formulario

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public function MostrarDetallesReservaciones()
{
		self::SetNames();
		$sql = " select
      habitaciones.numhabitacion,
      habitaciones.codtarifa,
      tiposhabitaciones.nombretipo,
      tarifas.baja,
      tarifas.media,
      tarifas.alta
        from habitaciones, tiposhabitaciones, tarifas
        where 
      habitaciones.numhabitacion = '".$_GET["check"]."' and
      habitaciones.codtarifa = tarifas.codtarifa and
      tarifas.codtipo = tiposhabitaciones.codtipo";
		foreach ($this->dbh->query($sql) as $row)
		{
			$this->p[] = $row;
		}
		return $this->p;
		$this->dbh=null;
		$codtarifa = $row['codtarifa'];
 
		$inicio = $_GET["desde"];
        $fin = $_GET["hasta"];
        $pago = 0;
 
 
		$sql2 = " select * from tarifas
    where codtarifa = '".$codtarifa."'";
		foreach ($this->dbh->query($sql2) as $row2)
		{
			$this->p2[] = $row2;
		}
 
      while($inicio <= $fin) {
 
		$sql3 = " select temporada from temporadas
    where desde <= '".$inicio."' and hasta >= '".$inicio."'";
		foreach ($this->dbh->query($sql3) as $row3)
		{
			$this->p3[] = $row3;
		}
 
		 if($row3['temporada']=='BAJA') {
   $costo = $row2['baja'];
  } elseif($row3['temporada']=='MEDIA') {
   $costo = $row2['media'];
  } elseif($row3['temporada']=='ALTA') {
   $costo = $row2['alta'];
  }
 
	  //ESTA ES LA VARIABLE QUE DESEO ENVIAR A OTRO ARCHIVO
	  $pago = $pago + $costo;
	  //$this->pago += $costo;
 
      $inicio = date("Y-m-d", strtotime("$inicio +1 day"));
 
       }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar