`p`.`from_date`) and (`hp`.`start_date` < `p`.`to_date`)), (((`rv`.`additional_price` * 1.5) + if(`hp`.`spatial_price`>0,`hp`.`spatial_price`,`hp`.`base_price`)) * `ph`.`num_of_nights`) ,0) AS `Total`, if(((`hp`.`end_date` > `p`.`from_date`) and (`hp`.`start_date` < `p`.`to_date`) and (`grt`.`general_room_type_id` = 2)), (((`rv`.`additional_price` * 1.5) + (if(`hp`.`spatial_price`>0,`hp`.`spatial_price`,`hp`.`base_price`) / 2)) * `ph`.`num_of_nights`) ,0) AS `child_2_12_with_bed`, if(((`hp`.`end_date` > `p`.`from_date`) and (`hp`.`start_date` < `p`.`to_date`) and (`grt`.`general_room_type_id` = 2)), (((`rv`.`additional_price` * 1.5) + (if(`hp`.`spatial_price`>0,`hp`.`spatial_price`,`hp`.`base_price`) / 3)) * `ph`.`num_of_nights`) ,0) AS `child_6_12_without_bed` , '' AS `child_2_6_without_bed` from ((((((((((`Package_Details_Places` `pp` join `Package_Details_Hotels` `ph`) join `Package_Details_Rooms` `pr`) join `Room_View` `rv`) join `Room_Type` `rt`) join `Hotel_Prices` `hp`) join `General_Room_Types` `grt`) join `General_Room_Views` `grv`) join `Packages` `p`) join `Places` `pl`) join `Hotels` `ho` ) where ( (`ph`.`place_detail_id_f` = `pp`.`place_detail_id`) and (`pr`.`hotel_detail_id_f` = `ph`.`hotel_detail_id`) and (`rv`.`room_view_id` = `pr`.`room_type_view_f`) and (`rt`.`room_type_id` = `rv`.`room_type_id_f`) and (`hp`.`room_type_id_f` = `rt`.`room_type_id`) and (`rv`.`general_room_view_id_f` = `grv`.`general_room_view_id`) and (`rt`.`general_room_type_id_f` = `grt`.`general_room_type_id`) and (`p`.`package_id` = `pp`.`package_id_f`) and (`pp`.`place_id_f` = `pl`.`place_id`) and (`ph`.`hotel_id_f` = `ho`.`hotel_id`) and (`p`.`package_id` = '$pid') and (`hp`.`start_date` < `p`.`to_date`) and (`hp`.`end_date` > `p`.`from_date`) and (`rv`.`report_show` = 1) )"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } FUNCTION getMealData($pid,$conn) { $sql = "select `pp`.`package_id_f` AS `package_id_f`, `pp`.`place_id_f` AS `place_id_f`, `ph`.`hotel_id_f` AS `hotel_id_f`, `gm`.`meal_name` AS `meal_names`, (`ph`.`num_of_nights` * sum(`m`.`additional_price`)) AS `total_meals` from ((((`Package_Details_Places` `pp` join `Package_Details_Hotels` `ph`) join `Package_Details_Meals` `pm`) join `Meals` `m`) join `General_Meals` `gm`) where ((`ph`.`place_detail_id_f` = `pp`.`place_detail_id`) and (`pm`.`hotel_detail_id_f` = `ph`.`hotel_detail_id`) and (`m`.`meal_id` = `pm`.`meal_id_f`) and (`m`.`general_meal_id_f` = `gm`.`general_meal_id`) and (`pp`.`package_id_f` = '$pid') ) group by 1,2,3,4"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } FUNCTION getTicketData($pid,$conn) { $sql = "select `pdt`.`package_id_f` AS `package_id_f`, group_concat(`t`.`ticket_name` separator '-') AS `tickets_name`, sum(`t`.`additional_price`) AS `total_tickets`, sum(`t`.`child_price`) AS `total_tickets_child` from (`Package_Details_Tickets` `pdt` join `Tickets` `t`) where (`t`.`ticket_id` = `pdt`.`ticket_id_f`) and (pdt.package_id_f = '$pid') group by 1"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } FUNCTION getTransportationData($pid,$conn) { $sql_old = "select `pdt`.`package_id_f` AS `package_id_f`, t.place_id_f, group_concat(`t`.`transportation_name` separator '-') AS `transportation_names`, sum(`t`.`additional_price`) AS `total_transportations` from (`Package_Details_Transportation` `pdt` join `Transportations` `t`) where (`t`.`transportation_id` = `pdt`.`transportaion_id_f`) and (pdt.package_id_f = '$pid') group by 1,2"; $sql = "select pdp.place_detail_id , group_concat(t.transportation_name separator '-') AS transportation_names, sum(`t`.`additional_price`) AS `total_transportations` from Package_Details_Transportation pdt, Transportations t, Package_Details_Places pdp where pdp.place_detail_id = pdt.place_detail_id_f and t.transportation_id = pdt.transportaion_id_f and pdp.package_id_f = '$pid' group by 1"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } FUNCTION getTourData($pid,$conn) { $sql_old = "select `pdt`.`place_detail_id_f` AS `place_detail_id_f`, t.place_id_f, group_concat(`t`.`tour_name` separator '-') AS `tour_names`, sum(`t`.`additional_price`) AS `total_tours` from (`Package_Details_Tours` `pdt` join `Tours` `t`) where (`t`.`tour_id` = `pdt`.`tour_id_f`) and (pdt.package_id_f = '$pid') group by 1,2"; $sql = "select pdp.place_detail_id , group_concat(t.tour_name separator '-') AS tour_names, sum(`t`.`additional_price`) AS `total_tours` from Package_Details_Tours pdt, Tours t, Package_Details_Places pdp where pdp.place_detail_id = pdt.place_detail_id_f and t.tour_id = pdt.tour_id_f and pdp.package_id_f = '$pid' group by 1"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } FUNCTION getMargin($pid,$conn) { $sql = " select margin_name,type,starts3,starts3DLX,starts4,starts4DLX,starts5,starts5DLX from Margins,Packages p where margin_id = p.margin_id_f and package_id = '$pid' "; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } FUNCTION getCombinationData($pid,$conn) { $sql = " select hotel_detail_id_f_1,hotel_detail_id_f_2,hotel_detail_id_f_3 from Package_Hotels_Comb where package_id_f ='$pid' "; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } return $rows; } FUNCTION isZeroPackage($pid,$conn) { $sql = " select `package_type`,`generation_count` from Packages where package_id ='$pid' "; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } if($rows[0]['package_type'] == 'Zero' || $rows[0]['package_type'] == 'Umra' ) { if($rows[0]['generation_count'] > 0) { return 1; } } return 0; } FUNCTION calc_price($pid,$conn,$debug) { if(isZeroPackage($pid,$conn)) { return 0; } $rooms = (getRoomData($pid,$conn)); $meals = (getMealData($pid,$conn)); $tickets = (getTicketData($pid,$conn)); $trans = (getTransportationData($pid,$conn)); $tours = (getTourData($pid,$conn)); $margins = getMargin($pid,$conn); $combs = getCombinationData($pid,$conn); if($debug) { echo "Rooms"; printTable($rooms); echo "
"; echo "meals"; printTable($meals); echo "
"; echo "tickets"; printTable($tickets); echo "
"; echo "trans"; printTable($trans); echo "
"; echo "tours"; printTable($tours); echo "
"; echo "margins"; printTable($margins); } $newRooms = array(); if(aLength($rooms)==0 or aLength($meals)==0) echo "error no rooms or no meals"; foreach($rooms as $room ) { foreach($meals as $meal ) { if($meal['hotel_id_f'] != $room['hotel_id']) continue; $newRoom = $room; $newRoom['meal_names'] = $meal['meal_names']; if($newRoom['number_of_people'] == "1") { $newRoom['Total'] = $newRoom['Total'] + $meal['total_meals'] * 2; $newRoom['child_2_12_with_bed'] = 0; $newRoom['child_6_12_without_bed'] = 0; $newRoom['child_2_6_without_bed'] = 0; } elseif($newRoom['number_of_people'] == "2") { $newRoom['Total'] = $newRoom['Total'] + $meal['total_meals']; $newRoom['child_2_12_with_bed'] = $newRoom['Total']/2 + $meal['total_meals']; $newRoom['child_6_12_without_bed'] = $newRoom['Total']/3 + $meal['total_meals']; $newRoom['child_2_6_without_bed'] = 0; } else //shouldnt get here { $newRoom['Total'] = $newRoom['Total'] + $meal['total_meals']; $newRoom['child_2_12_with_bed'] = $newRoom['Total'] + $meal['total_meals']; $newRoom['child_6_12_without_bed'] = $newRoom['Total'] + $meal['total_meals']; $newRoom['child_2_6_without_bed'] = $newRoom['Total'] + $meal['total_meals']; } //print_r($newRoom); echo "
"; if (aLength($tours)>0) { foreach($tours as $tour) { if($tour['place_detail_id'] != $room['place_detail_id']) continue; if($newRoom['Total'] == 0) continue; $newRoom['tour_names'] = $tour['tour_names']; $newRoom['Total'] = $newRoom['Total'] + $tour['total_tours']; if($newRoom['number_of_people'] == "2") { $newRoom['child_2_12_with_bed'] = $newRoom['child_2_12_with_bed'] + $tour['total_tours']; $newRoom['child_6_12_without_bed'] = $newRoom['child_6_12_without_bed'] + $tour['total_tours']; $newRoom['child_2_6_without_bed'] = $newRoom['child_2_6_without_bed']; } } }else { $newRoom['tour_names'] = 'NA'; } if (aLength($trans)>0) { foreach($trans as $tran) { if($tran['place_detail_id'] != $room['place_detail_id']) continue; if($newRoom['Total'] == 0) continue; $newRoom['transportation_names'] = $tran['transportation_names']; $newRoom['Total'] = $newRoom['Total'] + $tran['total_transportations']; if($newRoom['number_of_people'] == "2") { $newRoom['child_2_12_with_bed'] = $newRoom['child_2_12_with_bed'] + $tran['total_transportations']; $newRoom['child_6_12_without_bed'] = $newRoom['child_6_12_without_bed'] + $tran['total_transportations']; $newRoom['child_2_6_without_bed'] = $newRoom['child_2_6_without_bed']; } } }else { $newRoom['transportation_names'] = 'NA'; } $newRoom['start_date'] = MAX($newRoom['from_date'],$newRoom['start_date']); $newRoom['end_date'] = MIN($newRoom['to_date'],$newRoom['end_date']); $newRooms[] = $newRoom; } } if($debug) { echo "New Rooms"; printTable($newRooms); } //Combination Section\ $sep = " - "; $newRoomsC = array(); if (aLength($combs)>0) { echo " "; $newRooms2 = $newRooms; $newRooms3 = $newRooms; $x = 0; $y = 0; foreach($combs as $comb) { foreach($newRooms as $newRoom1) { $x++; $y = 0; foreach($newRooms2 as $newRoom2) { $y++; echo "Try Combine " . $comb['hotel_detail_id_f_1'] . " and " . $comb['hotel_detail_id_f_2']; echo "Rooms are " . $newRoom1['hotel_detail_id'] . " and " . $newRoom2['hotel_detail_id']; if($comb['hotel_detail_id_f_1'] == $newRoom1['hotel_detail_id'] && $comb['hotel_detail_id_f_2'] == $newRoom2['hotel_detail_id']) { if($newRoom1['number_of_people'] == $newRoom2['number_of_people']) { if(($newRoom1['end_date'] < $newRoom2['start_date']) || ($newRoom2['end_date'] < $newRoom1['start_date'])) { echo "Room" . $newRoom1['hotel_name'] . "-" . $newRoom1['room_type_name'] . " Could not be combined with " . $newRoom2['hotel_name'] . "-" . $newRoom2['room_type_name']; Continue; } $newRoomC = $newRoom1; $newRoomC['place_name'] = $newRoom1['place_name'] . $sep . $newRoom2['place_name']; $newRoomC['hotel_name'] = $newRoom1['hotel_name'] . $sep . $newRoom2['hotel_name']; $newRoomC['hotel_name_ar'] = $newRoom1['hotel_name_ar'] . $sep . $newRoom2['hotel_name_ar']; $newRoomC['area_name'] = $newRoom1['area_name'] . $sep . $newRoom2['area_name']; $newRoomC['area_name_en'] = $newRoom1['area_name_en'] . $sep . $newRoom2['area_name_en']; $newRoomC['ar_name'] = $newRoom1['ar_name'] . $sep . $newRoom2['ar_name']; $newRoomC['rating'] = $newRoom1['rating'] . $sep . $newRoom2['rating']; $newRoomC['ratingValue'] = MAX($newRoom1['rating'], $newRoom2['rating']); $newRoomC['website'] = $newRoom1['website'] . $sep . $newRoom2['website']; //if($newRoom1['room_type_name'] != $newRoom2['room_type_name']) //{ $newRoomC['room_type_name'] = $newRoom1['room_type_name'] . $sep . $newRoom2['room_type_name']; //} $newRoomC['room_view_name'] = $newRoom1['room_view_name'] . $sep . $newRoom2['room_view_name']; $newRoomC['start_date'] = MAX($newRoom1['start_date'], $newRoom2['start_date']); $newRoomC['end_date'] = MIN($newRoom1['end_date'], $newRoom2['end_date']); $newRoomC['meal_names'] = $newRoom1['meal_names'] . $sep . $newRoom2['meal_names']; $newRoomC['tour_names'] = $newRoom1['tour_names'] . $sep . $newRoom2['tour_names']; $newRoomC['transportation_names']= $newRoom1['transportation_names'] . $sep . $newRoom2['transportation_names']; $newRoomC['Total'] = $newRoom1['Total'] + $newRoom2['Total']; $newRoomC['child_2_12_with_bed'] = $newRoom1['child_2_12_with_bed'] + $newRoom2['child_2_12_with_bed']; $newRoomC['child_6_12_without_bed']=$newRoom1['child_6_12_without_bed'] + $newRoom2['child_6_12_without_bed']; $newRoomC['child_2_6_without_bed'] =$newRoom1['child_2_6_without_bed'] + $newRoom2['child_2_6_without_bed']; if($comb['hotel_detail_id_f_3'] > 0) { foreach($newRooms3 as $newRoom3) { if($comb['hotel_detail_id_f_3'] == $newRoom3['hotel_detail_id'] && $comb['hotel_detail_id_f_2'] == $newRoom2['hotel_detail_id']) { if($newRoomC['number_of_people'] == $newRoom3['number_of_people']) { $newRoomC3 = $newRoomC; $newRoomC3['place_name'] = $newRoomC['place_name'] . $sep . $newRoom3['place_name']; $newRoomC3['hotel_name'] = $newRoomC['hotel_name'] . $sep . $newRoom3['hotel_name']; $newRoomC3['hotel_name_ar'] = $newRoomC['hotel_name_ar'] . $sep . $newRoom3['hotel_name_ar']; $newRoomC3['area_name'] = $newRoomC['area_name'] . $sep . $newRoom3['area_name']; $newRoomC3['area_name_en'] = $newRoomC['area_name_en'] . $sep . $newRoom3['area_name_en']; $newRoomC3['ar_name'] = $newRoomC['ar_name'] . $sep . $newRoom3['ar_name']; $newRoomC3['rating'] = $newRoomC['rating'] . $sep . $newRoom3['rating']; $newRoomC3['ratingValue'] = MAX($newRoomC['rating'], $newRoom3['rating']); $newRoomC3['website'] = $newRoomC['website'] . $sep . $newRoom3['website']; //if($newRoomC3['room_type_name'] != $newRoomC['room_type_name']) //{ $newRoomC3['room_type_name'] = $newRoomC['room_type_name'] . $sep . $newRoom3['room_type_name']; //} $newRoomC3['room_view_name'] = $newRoomC['room_view_name'] . $sep . $newRoom3['room_view_name']; $newRoomC3['start_date'] = MAX($newRoomC['start_date'], $newRoom3['start_date']); $newRoomC3['end_date'] = MIN($newRoomC['end_date'], $newRoom3['end_date']); $newRoomC3['meal_names'] = $newRoomC['meal_names'] . $sep . $newRoom3['meal_names']; $newRoomC3['tour_names'] = $newRoomC['tour_names'] . $sep . $newRoom3['tour_names']; $newRoomC3['transportation_names']= $newRoomC['transportation_names'] . $sep . $newRoom3['transportation_names']; $newRoomC3['Total'] = $newRoomC['Total'] + $newRoom3['Total']; $newRoomC3['child_2_12_with_bed'] = $newRoomC['child_2_12_with_bed'] + $newRoom3['child_2_12_with_bed']; $newRoomC3['child_6_12_without_bed']=$newRoomC['child_6_12_without_bed'] + $newRoom3['child_6_12_without_bed']; $newRoomC3['child_2_6_without_bed'] =$newRoomC['child_2_6_without_bed'] + $newRoom3['child_2_6_without_bed']; $newRoomsC[] = $newRoomC3; $found = 1; } } } } if($found != 1) { $newRoomsC[] = $newRoomC; } echo " Succes"; } else { echo "Failed1"; } }else { echo "Failed2"; } //echo "EEE:" .$y . "EEE"; } } } echo "
"; //echo "x:" .$x; //echo "y:" .$y; //adding the old rows which are not used in combination to new Rooms Combined if(0) // no need - there are only combined packages or regular ones { foreach($newRooms as $newRoom) { $c = 0; foreach($combs as $comb) { if($comb['hotel_detail_id_f_3'] > 0) { if($comb['hotel_detail_id_f_1'] != $newRoom['hotel_detail_id'] && $comb['hotel_detail_id_f_2'] != $newRoom['hotel_detail_id'] && $comb['hotel_detail_id_f_3'] != $newRoom['hotel_detail_id']) { $c = $c + 1; } } else { if($comb['hotel_detail_id_f_1'] != $newRoom['hotel_detail_id'] && $comb['hotel_detail_id_f_2'] != $newRoom['hotel_detail_id']) { $c = $c + 1; } } } if($c==aLength($combs)) { $newRoomsC[] = $newRoom; } } } $newRooms = $newRoomsC; } //End Combination Section //adding tickets and margion $newRoomsC = array(); foreach($newRooms as $newRoom) { if (aLength($tickets)>0) { if($newRoom['Total'] == 0) continue; $newRoom['tickets_name'] = $tickets[0]['tickets_name']; $newRoom['Total'] = $newRoom['Total'] + $tickets[0]['total_tickets']; if($newRoom['number_of_people'] == "2") { $newRoom['child_2_12_with_bed'] = $newRoom['child_2_12_with_bed'] + $tickets[0]['total_tickets_child']; $newRoom['child_6_12_without_bed'] = $newRoom['child_6_12_without_bed'] + $tickets[0]['total_tickets_child']; $newRoom['child_2_6_without_bed'] = $newRoom['child_2_6_without_bed'] + $tickets[0]['total_tickets_child']; } }else { $newRoom['tickets_name'] = 'NA'; } //Margions if (aLength($margins)>0)// && $room['package_type'] == 'Normal') { if($newRoom['ratingValue'] == "5") { $value = $margins[0]['starts5']; } elseif ($newRoom['ratingValue'] == "5DLX") { $value = $margins[0]['starts5DLX']; } elseif ($newRoom['ratingValue'] == "4") { $value = $margins[0]['starts4']; } elseif ($newRoom['ratingValue'] == "4DLX") { $value = $margins[0]['starts4DLX']; } elseif ($newRoom['ratingValue'] == "3") { $value = $margins[0]['starts3']; } elseif ($newRoom['ratingValue'] == "3DLX") { $value = $margins[0]['starts3DLX']; } if($margins[0]['type'] == 'FIXED') { if($newRoom['Total'] == 0) { } else { if($newRoom['number_of_people'] == "1") { $newRoom['Total'] = $newRoom['Total'] + $value * 2; } if($newRoom['number_of_people'] == "2") { $newRoom['Total'] = $newRoom['Total'] + $value; $newRoom['child_2_12_with_bed'] = $newRoom['child_2_12_with_bed'] + $value/2 ; $newRoom['child_6_12_without_bed'] = $newRoom['child_6_12_without_bed'] + $value/2; $newRoom['child_2_6_without_bed'] = $newRoom['child_2_6_without_bed'] + $value/2; } } } else { if($newRoom['Total'] == 0) { } else { $newRoom['Total'] = $newRoom['Total'] + $newRoom['Total'] * $value/100; if($newRoom['number_of_people'] == "2") { $newRoom['child_2_12_with_bed'] = $newRoom['child_2_12_with_bed'] + $newRoom['child_2_12_with_bed'] * $value/100; $newRoom['child_6_12_without_bed'] = $newRoom['child_6_12_without_bed'] + $newRoom['child_6_12_without_bed'] * $value/100; $newRoom['child_2_6_without_bed'] = $newRoom['child_2_6_without_bed'] + $newRoom['child_2_6_without_bed'] * $value/100 ; } } } } if($room['package_type'] == 'Zero' || $room['package_type'] == 'Umra' )//no need for prices { $newRoom['Total'] = 0; $newRoom['child_2_12_with_bed'] =0; $newRoom['child_6_12_without_bed'] = 0; $newRoom['child_2_6_without_bed'] =0; }elseif($room['package_type'] == 'Normal') { $newRoom['Total'] = round($newRoom['Total']/5) * 5; $newRoom['child_2_12_with_bed'] = round($newRoom['child_2_12_with_bed']/5) * 5; $newRoom['child_6_12_without_bed'] = round($newRoom['child_6_12_without_bed']/5) * 5; $newRoom['child_2_6_without_bed'] = round($newRoom['child_2_6_without_bed']/5) * 5; } $newRoomsC[] = $newRoom; } $newRooms = $newRoomsC; if(!mysql_query("DELETE FROM Package_Prices WHERE package_id='$pid'",$conn)) { return 0; //echo "DELETE FROM WHERE package_id='$pid'"; //echo "Delete Failed"; }; foreach($newRooms AS $room) { $execlude = array(); $execlude[] = "hotel_id"; $execlude[] = "place_id"; $execlude[] = "hotel_detail_id"; $execlude[] = "package_type"; $execlude[] = "place_detail_id"; $execlude[] = "ratingValue"; $res = mysql_insert_array("Package_Prices", $room, $execlude,$conn,$pid,$debug); if($debug) { print_r($res); } } if(!mysql_query("UPDATE `Packages` SET `last_generate`=NOW() where package_id ='$pid'",$conn)) { //return 0; //echo "DELETE FROM WHERE package_id='$pid'"; //echo "Delete Failed"; }; if(!mysql_query("UPDATE `Packages` SET `generation_count` = `generation_count` + 1 WHERE package_id ='$pid'",$conn)) { //return 0; //echo "DELETE FROM WHERE package_id='$pid'"; //echo "Delete Failed"; }; return 1; } FUNCTION printTable($table) { foreach ($table as $rows => $row) { echo ""; foreach ($row as $col => $cell) { echo ""; } echo "
" . $cell . "
"; } } FUNCTION aLength($var) { $counter = 0; foreach($var AS $value) { $counter++; } return $counter; } function mysql_insert_array($table, $data, $exclude = array(),$conn,$pid,$debug) { $fields = $values = array(); if( !is_array($exclude) ) $exclude = array($exclude); foreach( array_keys($data) as $key ) { if( !in_array($key, $exclude) ) { if(is_int($key)) continue; $fields[] = "`$key`"; $values[] = "'" . mysql_real_escape_string($data[$key]) . "'"; } } $fields = implode(",", $fields); $values = implode(",", $values); if($debug) { print_r($fields); print_r($values); } if( mysql_query("INSERT INTO `$table` ($fields) VALUES ($values)" ,$conn)) { return array( "mysql_error" => false, "mysql_insert_id" => mysql_insert_id(), "mysql_affected_rows" => mysql_affected_rows(), "mysql_info" => mysql_info() ); } else { return array( "mysql_error" => mysql_error() ); } } FUNCTION calc_all_packages($conn) { $sql = "select package_id from Packages WHERE `active` = 1 and to_date >= NOW()"; $result = mysql_query($sql,$conn); $rows = array(); echo "Calc All Packages Started"; while(($row = mysql_fetch_array($result))) { echo $row['package_id']; calc_price($row['package_id'],$conn,1); $rows[] = $row; } echo "Calc All Packages Done"; return $rows; } FUNCTION delete_all_packages($conn) { $sql = "select package_id from Packages"; $result = mysql_query($sql,$conn); $rows = array(); echo "Calc All Packages Started"; while(($row = mysql_fetch_array($result))) { echo $row['package_id']; delete_package($conn,$row['package_id']); } echo "Delete All Packages Done"; return $rows; } function delete_package($conn,$pid) { $sql = "select place_detail_id from Package_Details_Places where package_id_f = '$pid'"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } $places = $rows; foreach($places as $place) { $sql = "select hotel_detail_id from Package_Details_Hotels where place_detail_id_f = " . $place['place_detail_id']; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } $hotels = $rows; foreach($hotels as $hotel) { $sql = "delete from Package_Details_Meals where hotel_detail_id_f = " . $hotel['hotel_detail_id'] ; if(!mysql_query($sql,$conn)) echo "Failed to delete from meals where hotel_detail_id " . $hotel['hotel_detail_id']; $sql = "delete from Package_Details_Rooms where hotel_detail_id_f = " . $hotel['hotel_detail_id'] ; if(!mysql_query($sql,$conn)) echo "Failed to delete from rooms where hotel_detail_id " . $hotel['hotel_detail_id']; } $sql = "delete from Package_Details_Hotels where place_detail_id_f = " . $place['place_detail_id'] ; if(!mysql_query($sql,$conn)) echo "Failed to delete from hotels where place_detail_id " . $hotel['place_detail_id']; $sql = "delete from Package_Details_Transportation where place_detail_id_f = " . $place['place_detail_id'] ; if(!mysql_query($sql,$conn)) echo "Failed to delete from Trans where place_detail_id " . $hotel['place_detail_id']; $sql = "delete from Package_Details_Tours where place_detail_id_f = " . $place['place_detail_id'] ; if(!mysql_query($sql,$conn)) echo "Failed to delete from Tours where place_detail_id " . $hotel['place_detail_id']; } $sql = "delete from Packages where package_id =" . $pid; if(!mysql_query($sql,$conn)) echo "Failed to delete from Packages where package_id " .$pid; $sql = "delete from Package_Details_Tickets where package_id_f =" . $pid; if(!mysql_query($sql,$conn)) echo "Failed to delete from Tickets where package_id " .$pid; $sql = "delete from Package_Hotels_Comb where package_id_f =" . $pid; if(!mysql_query($sql,$conn)) echo "Failed to delete from Comb where package_id " .$pid; $sql = "delete from Package_Prices where package_id =" . $pid; if(!mysql_query($sql,$conn)) echo "Failed to delete from Prices where package_id " .$pid; $sql = "delete from Package_Details_Places where package_id_f =" . $pid; if(!mysql_query($sql,$conn)) echo "Failed to delete from Places where package_id " .$pid; echo "Delete Package Done"; return $rows; } function searchArray($array, $index, $search){ $returnArray = array(); foreach($array as $k=>$v){ if($v[$index] == $search){ true; } } return false; } FUNCTION archive_packages($conn) { $sql = "select package_id from Packages WHERE `active` != 1 OR to_date < NOW()"; $result = mysql_query($sql,$conn); $rows = array(); echo "Archive Packages Started"; while(($row = mysql_fetch_array($result))) { echo $row['package_id']; archive_one_package($row['package_id'],$conn,1); $rows[] = $row; } echo "Archive Packages Done"; return $rows; } FUNCTION archive_one_package($pid,$conn,$debug) { if($debug) { echo "Package ID = " . $pid; } mysql_query("DELETE FROM Package_Prices_Archive WHERE package_id='$pid'",$conn); $sql = "select * from Package_Prices WHERE package_id =" . $pid; $result = mysql_query($sql,$conn); $rows = array(); echo "Archive Packages Started"; while(($row = mysql_fetch_array($result))) { $rows[] = $row; } foreach($rows AS $row) { $execlude = array(); $execlude[] = "hotel_id"; $execlude[] = "place_id"; $execlude[] = "hotel_detail_id"; $execlude[] = "package_type"; $execlude[] = "place_detail_id"; $execlude[] = "ratingValue"; $res = mysql_insert_array("Package_Prices_Archive", $row, $execlude,$conn,$pid,0); } if(checkCountOfPackage($pid,$conn,$debug)) { delete_package($conn,$pid); } echo "Archive Package" . $pid. " Done"; return $rows; } FUNCTION checkCountOfPackage($pid,$conn,$debug) { $sql = "SELECT COUNT(*) AS `count` FROM `Package_Prices_Archive` WHERE package_id = " . $pid; $result = mysql_query($sql,$conn); while(($row = mysql_fetch_array($result))) { $countArchive = $row['count']; } $sql = "SELECT COUNT(*) AS `count` FROM `Package_Prices` WHERE package_id = " . $pid; $result = mysql_query($sql,$conn); while(($row = mysql_fetch_array($result))) { $count = $row['count']; } if($debug) { echo "Arrchive Count:" . $countArchive; echo "Count:" . $count; } if($countArchive > 0 && $countArchive==$count) { if($debug) { "Arrchive Success"; } return true; } return false; } function delete_hotel($conn,$hid) { //----------------------------------------------------------------------------------------------------------------- $sql = "SELECT `place_detail_id_f` FROM `Package_Details_Hotels` WHERE `hotel_id_f`= '$hid'"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row['place_detail_id_f']; } $places = $rows; $pidList = getPackageIDsFromPlaceIDs($conn,$places); if(count($hotels)>0) { return "Could not delete hotel - used in packages " . getPackageNamesString($conn,$pidList); } //----------------------------------------------------------------------------------------------------------------- $sql = "SELECT DISTINCT `room_type_id` FROM `Room_Type` WHERE `hotel_id_f`='$hid'" ; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } $roomTypes = $rows; foreach($roomTypes as $roomType) { $sql = "delete from `Room_View` where `room_type_id_f` = '$roomType'" ; if(!mysql_query($sql,$conn)) return "Failed to delete from Room_View"; } //----------------------------------------------------------------------------------------------------------------- $sql = "delete from Hotels where hotel_id = '$hid'" ; if(!mysql_query($sql,$conn)) return "Failed to delete from Hotels"; //----------------------------------------------------------------------------------------------------------------- $sql = "delete from `Hotel_Prices` where `hotel_id_f` = '$hid'" ; if(!mysql_query($sql,$conn)) return "Failed to delete from Hotels_Prices"; //----------------------------------------------------------------------------------------------------------------- $sql = "delete from `Meals` where `hotel_id_f` = '$hid'" ; if(!mysql_query($sql,$conn)) return "Failed to delete from Meals"; //----------------------------------------------------------------------------------------------------------------- $sql = "delete from `Room_Type` where `hotel_id_f` = '$hid'" ; if(!mysql_query($sql,$conn)) return "Failed to delete from Room_Type"; //----------------------------------------------------------------------------------------------------------------- return "Delete Hotel Done"; } function delete_general_room_view($conn,$grvid) { //----------------------------------------------------------------------------------------------------------------- $sql = "SELECT `room_view_id` FROM `Room_View` WHERE `general_room_view_id_f`= '$grvid'"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; } $roomViews = $rows; if(count($roomViews)>0) { return "Could not delete Room View - used in hotels " ; } //----------------------------------------------------------------------------------------------------------------- $sql = "delete from General_Room_Views where general_room_view_id = '$grvid'" ; if(!mysql_query($sql,$conn)) return "Failed to delete from General_Room_Views"; //----------------------------------------------------------------------------------------------------------------- return "Delete General_Room_Views Done"; } function delete_general_room_type($conn,$grtid) { //----------------------------------------------------------------------------------------------------------------- $sql = "SELECT `hotel_id_f` FROM `Room_Type` WHERE `general_room_type_id_f`= '$grtid'"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row['hotel_id_f']; } $hidList = $rows; if(count($hidList)>0) { return "Could not delete Room View - used in hotels " . getHotelNamesString($conn,$hidList); } //----------------------------------------------------------------------------------------------------------------- $sql = "delete from General_Room_Types where general_room_type_id = '$grtid'" ; if(!mysql_query($sql,$conn)) return "Failed to delete from General_Room_Types"; //----------------------------------------------------------------------------------------------------------------- return "Delete General_Room_Types Done"; } function delete_general_meals($conn,$gmid) { //----------------------------------------------------------------------------------------------------------------- $sql = "SELECT `hotel_id_f` FROM `Meals` WHERE `general_meal_id_f`= '$gmid'"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row['hotel_id_f']; } $hidList = $rows; if(count($hidList)>0) { return "Could not delete Meals - used " . getHotelNamesString($conn,$hidList); } //----------------------------------------------------------------------------------------------------------------- $sql = "delete from General_Meals where general_meal_id = '$gmid'" ; if(!mysql_query($sql,$conn)) return "Failed to delete from General_Meals"; //----------------------------------------------------------------------------------------------------------------- return "Delete General_Meals Done"; } function delete_tickets($conn,$tid) { //----------------------------------------------------------------------------------------------------------------- $sql = "SELECT `package_id_f` FROM `Package_Details_Tickets` WHERE `ticket_id_f`= '$tid'"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row['package_id_f']; } $pidList = $rows; if(count($tickets)>0) { return "Could not delete tickets - used in packages " . getPackageNamesString($conn,$pidList); } //----------------------------------------------------------------------------------------------------------------- $sql = "delete from Tickets where ticket_id = '$tid'" ; if(!mysql_query($sql,$conn)) return "Failed to delete from Tickets"; //----------------------------------------------------------------------------------------------------------------- return "Delete Tickets Done"; } function getHotelNamesString($conn,$hidList) { $outPut = ""; foreach($hidList as $hid) { $sql = "SELECT `hotel_name` FROM `Hotels` WHERE `hotel_id`= '$hid'"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row['hotel_name']; } $outPut = $outPut . $rows[0] . "," ; } return $outPut; } function getPackageNamesString($conn,$pidList) { $outPut = ""; foreach($pidList as $pid) { $sql = "SELECT `package_name` FROM `Packages` WHERE `package_id`= '$pid'"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row['package_name']; } $outPut = $outPut . $rows[0] . "," ; } return $outPut; } function getPackageIDsFromPlaceIDs($conn,$placesList) { foreach($placesList as $placeid) { $sql = "SELECT `package_id_f` FROM `Package_Details_Places` WHERE `place_detail_id`= '$placeid'"; $result = mysql_query($sql,$conn); $rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row['package_id_f']; } } return $rows; } ?>