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." €"." <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