Ver Mensaje Individual
  #9 (permalink)  
Antiguo 14/01/2016, 06:41
Avatar de manyblue
manyblue
 
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años
Puntos: 10
Respuesta: Organizar Precios y Temporadas

x_atrix, muchísimas gracias, probaré lo que me dices y te comento.
Bueno, al final me decidí por lo más complicado para mi por tener que corregir consultas pero... facilitará al usuario del hotel decidir sus propias temporadas.

1) Cree una nueva tabla:
Código:
CREATE TABLE IF NOT EXISTS `tbl_temporadas_precios_habitaciones` (
  `id_temporada` int(11) NOT NULL AUTO_INCREMENT,
  `refHabitacion` int(11) DEFAULT NULL,
  `strNombreTemporada` varchar(150) DEFAULT NULL,
  `dateDesde` date DEFAULT NULL,
  `dateHasta` date DEFAULT NULL,
  `intPrecio` double DEFAULT NULL,
  `strDescripcionTemporada` varchar(250) DEFAULT NULL,
  PRIMARY KEY (`id_temporada`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Por que refHotel y no refHabitacion, pues con el hotel tengo usuario y es menos lioso.
2) Me hago esta consulta:
Código PHP:
<?php
$varHotel 
"0";
if (isset(
$_GET["idHotel"])) {
  
$varHotel $_GET["idHotel"];
}
mysql_select_db($database_Conexion_db_WebReservas$Conexion_db_WebReservas);
$query_ConsultaPrecios sprintf("SELECT tbl_usuarios.idUsuario, tbl_hotel.refUsuario, tbl_hotel.idHotel, tbl_temporadas_precios_habitaciones.refHotel, tbl_temporadas_precios_habitaciones.id_Temporada, tbl_temporadas_precios_habitaciones.strNombreTemporada, tbl_temporadas_precios_habitaciones.dateDesde, tbl_temporadas_precios_habitaciones.dateHasta, tbl_temporadas_precios_habitaciones.intPrecio, tbl_temporadas_precios_habitaciones.strDescripcionTemporada, tbl_usuarios.strNombre, tbl_usuarios.strApellidos, tbl_usuarios.strEmail, tbl_usuarios.intEstado, tbl_usuarios.strNick_Usuario, tbl_usuarios.strImagen_Usuario, tbl_usuarios.strTelefono, tbl_usuarios.strMovil, tbl_usuarios.intNivel, tbl_usuarios.Fecha_Alta_Usuario, tbl_usuarios.Fecha_Actualizacion_Usuario, tbl_hotel.strNombre, tbl_hotel.strNombreCEO, tbl_hotel.strNombre_Empresa, tbl_hotel.strNIF_CIF, tbl_hotel.intEstado, tbl_hotel.intCategoria, tbl_hotel.strDireccion, tbl_hotel.strPoblacion, tbl_hotel.idProvincia, tbl_hotel.strEstadoPaisExtrangero, tbl_hotel.intCodigo_Postal, tbl_hotel.strPais, tbl_hotel.strtDescripcion, tbl_hotel.strResumen, tbl_hotel.strResumen_ing, tbl_hotel.strResumen_ale, tbl_hotel.strResumen_fra, tbl_hotel.strResumen_hol, tbl_hotel.strDescripcion_ing, tbl_hotel.strDescripcion_ale, tbl_hotel.strDescripcion_fra, tbl_hotel.strDescripcion_hol, tbl_hotel.dblLatitud, tbl_hotel.dblLongitud, tbl_hotel.intNumero_Habitaciones, tbl_hotel.strEmail, tbl_hotel.strTelefono, tbl_hotel.strFax,tbl_hotel.strMovil, tbl_hotel.intWifi, tbl_hotel.intRestaurante, tbl_hotel.intCafeteria, tbl_hotel.intGaraje, tbl_hotel.intJardines, tbl_hotel.strInstalaciones_Deportivas, tbl_hotel.intPiscinaExterior, tbl_hotel.intPiscinaInterior, tbl_hotel.intAnimalesCompania, tbl_hotel.intServicioDiscrecional, tbl_hotel.intSpa, tbl_hotel.Fecha_Alta_Hotel, tbl_hotel.Fecha_Modificacion_Hotel FROM tbl_usuarios INNER JOIN tbl_hotel ON tbl_hotel.refUsuario = tbl_usuarios.idUsuario INNER JOIN tbl_temporadas_precios_habitaciones ON tbl_temporadas_precios_habitaciones.refHotel = tbl_hotel.idHotel WHERE tbl_temporadas_precios_habitaciones.refHotel = %s"GetSQLValueString($varHotel"int"));
$ConsultaPrecios mysql_query($query_ConsultaPrecios$Conexion_db_WebReservas) or die(mysql_error());
$row_ConsultaPrecios mysql_fetch_assoc($ConsultaPrecios);
$totalRows_ConsultaPrecios mysql_num_rows($ConsultaPrecios);
?>
3) Lo presento de esta forma:
Código PHP:
<?php 
                                                      
                                                      
  $desde 
$_GET['FDesde'];
  
$hasta $_GET["FHasta"];
  
$new_desde date"m-d"strtotime($desde));
  
$dateHasta date"m-d"strtotime($hasta));

  
// Temporada Baja = 13/01 al 10/03 - 07/04 al 14/06 - 01/09 al 26/11
  // Temporada Media =  11/03 al 26/03 - 15/06 al 31/07 - 27/11 al 14/12
  // Temporada Alta = 27/03 al 06/04 - 01/08 al 31/08 - 01/08 al 31/08
  
  // DATOS FACTURACIÓN //
  
  
do {
      
  
$dateDesde date("m-d"strtotime($row_ConsultaPrecios['dateDesde']));
  
$dateHasta date("m-d"strtotime($row_ConsultaPrecios['dateHasta']));
  
$NombreTemporada $row_ConsultaPrecios['strNombreTemporada'];
  
$PrecioTemporada $row_ConsultaPrecios['intPrecio'];
  
  if((
$dateDesde <= $new_desde) && ($dateHasta >= $dateHasta) && ($row_ConsultaPrecios['strNombreTemporada'] = "Baja")):
     
$PrecioHabitacion $row_ConsultaPrecios['intPrecio'];
     
$Temporada $NombreTemporada;
  elseif((
$dateDesde <= $new_desde) && ($dateHasta >= $dateHasta) && ($row_ConsultaPrecios['strNombreTemporada'] = "Media")):
     
$PrecioHabitacion $row_ConsultaPrecios['intPrecio'];
     
$Temporada $NombreTemporada;
  elseif((
$dateDesde <= $new_desde) && ($dateHasta >= $dateHasta) && ($row_ConsultaPrecios['strNombreTemporada'] = "Alta")):
     
$PrecioHabitacion $row_ConsultaPrecios['intPrecio'];
     
$Temporada $NombreTemporada;
  endif;

  } while (
$row_ConsultaPrecios mysql_fetch_assoc($ConsultaPrecios));
  
  
  
// DIFERENCIA DE DIAS ENTRE Fdesde HASTA Fhasta //
  
$inicio strtotime($_GET['FDesde']);
  
$fin strtotime($_GET["FHasta"]);
  
$dateDiff $fin $inicio;
  echo 
"<strong>Días Totales:</strong> ".($dateDiffTotal floor($dateDiff/(60*60*24))+1)." días";
  echo 
"<br />"?>
  <strong>Fecha Factura:</strong> <?php echo date("d-m-Y");?><br />
  <strong>Cliente:</strong> 
  <?php echo ObtenerNombreUsuario($row_DatosDatosConsulta['refUsuario']); ?>
  <?php echo ObtenerAlellidosUsuario($row_DatosDatosConsulta['refUsuario']); ?>
  <br />
  
  <?php
  
// CALCULOS FACTURACIÓN //
  
echo "<strong>Precio/Día:</strong> ".$PrecioHabitacion." €"."&nbsp;&nbsp;&nbsp;<strong>Temporada:</strong> ".$Temporada;
  echo 
"<br />";
  echo 
"<strong>Sub Total:</strong> ".$SubTotal $PrecioHabitacion $dateDiffTotal." €";
  echo 
"<br />";
  
$Impuesto $row_ConsultaHabitaciones['intValor_Impuesto']; 
  
$NombreImpuesto $row_ConsultaHabitaciones['strNombre_Impuesto'];
  
$Impuestos = (($Impuesto $SubTotal) / 100);
  echo 
"<strong>".$Impuesto."% ".$NombreImpuesto.":</strong> ".$row_ConsultaPrecios['strNombreTemporada']." €";
  echo 
"<br />";
  echo 
"<strong>Total:</strong> ".$Total $Impuestos $SubTotal." €";
  
  
?>
Me va genial, pero lo dicho, probaré como me dices tu x_atrix
Un saludo: Manyblue