= $room['start_date']) { $room['Count']++; $found = true; } } if(!$found) { $zeroOutput = true; } } $colName = null; if($nDays>0 && $nDays<=3) $colName = 3;// "1_3_margin"; elseif($nDays>=4 && $nDays<=6) $colName = 4;// "4_6_margin"; elseif($nDays>=7 && $nDays<=10) $colName = 5;//"7_10_margin"; elseif($nDays>10) $colName = 6;//"10_more_margin"; //------------------------------------------------------------------------------- $newRoomData = $roomData; $uniqueHids = getUniqueCombination("hotel_id",$newRoomData); //$uniqueRTids = getUniqueCombination("general_room_type_id",$newRoomData); $uniqueRVids = getUniqueCombination("general_room_view_id",$newRoomData); $uniqueMids = getUniqueCombination("general_meal_id",$newRoomData); $uniqueRoomTypes = getUniqueRoomTypes($conn); $newRoomData2 = Array(); foreach($uniqueHids as $h ) { //foreach($uniqueRTids as $rt ) //{ foreach($uniqueRVids as $rv ) { foreach($uniqueMids as $m ) { foreach($uniqueRoomTypes as $roomType ) { $newRoom = Array(); $newRoom['hotel_id'] = $h; //$newRoom['general_room_type_id'] = $rt; $newRoom['general_room_view_id'] = $rv; $newRoom['general_meal_id'] = $m; $newRoom['type'] = $roomType['type']; $in = 0; $fixedMargionAddedInSingle = false; $fixedMargionAddedInDouble = false; foreach($newRoomData as &$room ) { if(($room['hotel_id'] == $h) AND ($room['general_room_view_id'] == $rv) AND ($room['general_meal_id'] == $m) AND ($room['type'] == $roomType['type']) AND $room['number_of_people'] == 1) { $in = 1; $newRoom['hotel_name'] = $room['hotel_name']; $newRoom['hotel_name_ar'] = $room['hotel_name_ar']; $newRoom['rating'] = $room['rating']; $newRoom['meal_name'] = $room['meal_name']; $newRoom['area_name'] = $room['area_name']; $newRoom['area_name_en'] = $room['area_name_en']; $newRoom['room_view_name'] = $room['room_view_name']; $newRoom['website'] = $room['website']; $Margion = getMargionFromMargions($Margions,$nDays,$colName,$newRoom['rating']); $MargionType = getMargionTypeFromMargions($Margions,$nDays,$colName,$newRoom['rating']); if($room['number_of_people'] == 1 )//'Single' { if(strtoupper($MargionType)=="PERCENT") { $locTotal = $room['Total'] * $room['Count']; $locTotal = $locTotal + ($locTotal * $Margion/100); $newRoom['Single'] = $newRoom['Single'] + $locTotal; } else { $locTotal = $room['Total'] * $room['Count']; if(!$fixedMargionAddedInSingle) { $locTotal = $locTotal + ($Margion * 2); } $newRoom['Single'] = $newRoom['Single'] + $locTotal ; $fixedMargionAddedInSingle = true; } } } } foreach($newRoomData as &$room ) { if(($room['hotel_id'] == $h) AND ($room['general_room_view_id'] == $rv) AND ($room['general_meal_id'] == $m) AND ($room['type'] == $roomType['type']) AND $room['number_of_people'] == 2) { $in = 1; $newRoom['hotel_name'] = $room['hotel_name']; $newRoom['hotel_name_ar'] = $room['hotel_name_ar']; $newRoom['rating'] = $room['rating']; $newRoom['meal_name'] = $room['meal_name']; $newRoom['area_name'] = $room['area_name']; $newRoom['area_name_en'] = $room['area_name_en']; $newRoom['room_view_name'] = $room['room_view_name']; $newRoom['website'] = $room['website']; $Margion = getMargionFromMargions($Margions,$nDays,$colName,$newRoom['rating']); $MargionType = getMargionTypeFromMargions($Margions,$nDays,$colName,$newRoom['rating']); if ($room['number_of_people'] == 2 ) //Double { if(strtoupper($MargionType)=="PERCENT") { $locTotal = $room['Total'] * $room['Count']; $locTotal = $locTotal + ($locTotal * $Margion/100); $newRoom['Double'] = $newRoom['Double'] + $locTotal; $locTotal = $room['child_2_12_with_bed'] * $room['Count']; $locTotal = $locTotal + ($locTotal * $Margion/100); $newRoom['child_2_12_with_bed'] = $newRoom['child_2_12_with_bed'] + $locTotal; } else { $locTotal = $room['Total'] * $room['Count']; if(!$fixedMargionAddedInDouble) { $locTotal = $locTotal + $Margion; } $newRoom['Double'] = $newRoom['Double'] + $locTotal ; $locTotal = $room['child_2_12_with_bed'] * $room['Count']; if(!$fixedMargionAddedInDouble) { $locTotal = $locTotal + $Margion/2; } $newRoom['child_2_12_with_bed'] = $newRoom['child_2_12_with_bed'] + $locTotal ; $fixedMargionAddedInDouble = true; } } } } if($in==1) { if($zeroOutput) { $newRoom['Single']=0; $newRoom['Double']=0; $newRoom['Triple']=0; $newRoom['child_2_12_with_bed']=0; } $newRoomData2[] = $newRoom; $in = 0; } } } } //} } //echo "-------------------------------------------------------------------------------------------------------------------"; //print_r($newRoomData2); return $newRoomData2; } FUNCTION getRatingNum($rating) { if($rating=="5DLX") return 36; elseif($rating=="5") return 35; elseif($rating=="4DLX") return 38; elseif($rating=="4") return 37; elseif($rating=="3DLX") return 40; elseif($rating=="3") return 39; } FUNCTION getMargionFromMargions($Margions,$nDays,$colName,$rating) { $rating = getRatingNum($rating); foreach($Margions as $margionRow) { if($margionRow['id'] == $rating) { return $margionRow[$colName]; } } } FUNCTION getMargionTypeFromMargions($Margions,$nDays,$colName,$rating) { $rating = getRatingNum($rating); foreach($Margions as $margionRow) { if($margionRow['id'] == $rating) { return $margionRow['margin_type']; } } } FUNCTION getUniqueCombination($val,$newRoomData) { $hids = array(); foreach ($newRoomData as $x) { $hids[] = $x[$val]; } $uniqueHids = array_unique($hids); return $uniqueHids; } FUNCTION getHotelRoomData($hotelID,$fromDate,$toDate,$conn) { $sql = "SELECT h.hotel_id, h.hotel_name, h.website, h.hotel_name_ar, h.rating, gm.general_meal_id, gm.meal_name, h.area_name, h.area_name_en, grv.general_room_view_id, grv.room_view_name, grt.general_room_type_id, grt.number_of_people, grt.room_type_name, grt.type, if(hp.spatial_price>0,hp.spatial_price,hp.base_price) + m.additional_price + rv.additional_price as 'Total', if(number_of_people=2,if(hp.spatial_price>0,hp.spatial_price,hp.base_price) /2 + rv.additional_price * 1.5 + m.additional_price * 1.5,0) as 'child_2_12_with_bed', hp.start_date, hp.end_date, 0 as 'Count' FROM Hotels h, Meals m, General_Meals gm, General_Room_Views grv, General_Room_Types grt, Room_Type rt, Room_View rv, Hotel_Prices hp WHERE h.hotel_id = ". $hotelID ." and m.hotel_id_f = ". $hotelID ." and gm.general_meal_id = m.general_meal_id_f and rt.hotel_id_f = ". $hotelID ." and rv.room_type_id_f = rt.room_type_id and grt.general_room_type_id = rt.general_room_type_id_f and grv.general_room_view_id = rv.general_room_view_id_f and hp.room_type_id_f = rt.room_type_id and (hp.end_date >= '" . $fromDate . "' AND " . " hp.start_date <= '". $toDate . "') "; //echo $sql; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } FUNCTION getMargions($conn) { $sql = "SELECT * from setting"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } FUNCTION getUniqueRoomTypes($conn) { $sql = "SELECT DISTINCT type FROM General_Room_Types"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } ?>
Select Place

Select Rating

Select hotel


From Date To Date



Report Template
Hotel Name Rating Meals Location Room View Room Type Double/Triple Single Child 2-12 with Bed