%PDF- %PDF-
Direktori : /var/www/html/buggydubrovnik.com/bookingv2/ |
Current File : //var/www/html/buggydubrovnik.com/bookingv2/functions.php |
<?php const BUGGIES=4; const PEOPLE_PER_BUGGY=3; ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); function getDB(){ $servername = "localhost"; $username="buggydubrovnik_app_production"; $password="appr-17"; $db="buggydubrovnik_app_production"; $conn = mysqli_connect($servername, $username, $password, $db); mysqli_query($conn,"set names 'utf8'"); return $conn; } function formatMoney($number, $cents = 1) { // cents: 0=never, 1=if needed, 2=always if (is_numeric($number)) { // a number if (!$number) { // zero $money = ($cents == 2 ? '0.00' : '0'); // output zero } else { // value if (floor($number) == $number) { // whole number $money = number_format($number, ($cents == 2 ? 2 : 0)); // format } else { // cents $money = number_format(round($number, 2), ($cents == 0 ? 0 : 2)); // format } // integer or decimal } // value $money = str_replace(",","[]", $money); $money = str_replace(".",",", $money); $money = str_replace("[]",".", $money); return $money; } // numeric } function getTour($id){ $db=getDB(); $result=$db->query("SELECT * FROM izlet_tip WHERE aktivan=1 AND id_izlet_tip=$id AND online=1"); return $result->num_rows?$result->fetch_assoc():false; } function addTime($time1, $time2) { $times = array($time1, $time2); $seconds = 0; // loop through each time and convert it to seconds foreach ($times as $time) { list($hour, $minute) = explode(':', $time); $seconds += $hour * 3600; $seconds += $minute * 60; } // convert seconds back into a time format $hour = floor($seconds / 3600); $minute = floor($seconds % 3600 / 60); // add leading zeros if needed $hour = str_pad($hour, 2, '0', STR_PAD_LEFT); $minute = str_pad($minute, 2, '0', STR_PAD_LEFT); return "$hour:$minute"; } function getCountries(){ $db=getDB(); return $db->query("SELECT * FROM drzava WHERE aktivan=1 ORDER BY naziv ASC"); } function getTimes($id, $date){ $con=getDB(); $timestamp = strtotime($date); $date = date("Y-m-d", $timestamp); $m = date("n", $timestamp); $tour=getTour($id); $times = [ //premium "1" => [ "3" => ['10:00', '16:00'], "4" => ['10:00', '14:00', '17:00'], "5" => ['10:00', '15:00', '18:00'], "6" => ['10:00', '15:00', '18:00'], "7" => ['10:00', '15:00', '18:00'], "8" => ['10:00', '15:00', '18:00'], "9" => ['10:00', '14:00', '17:00'], "10" => ['10:00', '16:00'], "11" => ['10:00', '14:00'], ], //group "2" => [ "3" => ['10:00'], "4" => ['10:00'], "5" => ['10:00'], "6" => ['10:00'], "7" => ['10:00'], "8" => ['10:00'], "9" => ['10:00'], "10" => ['10:00'], "11" => ['10:00'], ], //premium plus "3" => [ "3" => ['10:00', '16:00'], "4" => ['10:00', '16:00'], "5" => ['10:00', '16:00'], "6" => ['10:00', '16:00'], "7" => ['10:00', '16:00'], "8" => ['10:00', '16:00'], "9" => ['10:00', '16:00'], "10" => ['10:00', '14:00'], "11" => ['10:00', '14:00'] ], //sunset group "4" => [ "3" => ['16:00'], "4" => ['17:00'], "5" => ['18:00'], "6" => ['18:00'], "7" => ['18:00'], "8" => ['18:00'], "9" => ['17:00'], "10" => ['16:00'], "11" => ['14:00'] ], ]; $min = 10; if ($timestamp == strtotime("today")) { $min = intval(date("H", strtotime("now"))) + 6; if ($min < 10) $min = 10; } $termini=$times[$tour["id_izlet_tip"]][$m]; $result=[]; foreach ($termini as $startTime) { if ($startTime < $min) continue; $start = $date . " " . $startTime . ":00"; $end = $date . " " . (addTime($startTime, $tour["trajanje"])) . ":00"; //(StartA <= EndB) and (EndA >= StartB) $sql = "SELECT COALESCE(SUM(r.resurs),0) FROM rezervacija r JOIN izlet_termin t ON t.id_izlet_termin=r.id_izlet_termin JOIN izlet_tip it ON it.id_izlet_tip=t.id_izlet_tip WHERE r.aktivan=1 AND t.aktivan=1 AND it.privatni=1 AND t.termin < STR_TO_DATE('$end', '%Y-%m-%d %H:%i:%s') AND r.datum_kupnja > STR_TO_DATE('$start', '%Y-%m-%d %H:%i:%s')"; // echo $sql; $res = $con->query($sql); $row = $res->fetch_row(); $sql2 = "SELECT COALESCE(SUM(r.odrasli)+SUM(r.djeca), 0) FROM rezervacija r JOIN izlet_termin t ON t.id_izlet_termin=r.id_izlet_termin JOIN izlet_tip it ON it.id_izlet_tip=t.id_izlet_tip WHERE r.aktivan=1 AND t.aktivan=1 AND it.privatni=0 AND t.termin < STR_TO_DATE('$end', '%Y-%m-%d %H:%i:%s') AND r.datum_kupnja > STR_TO_DATE('$start', '%Y-%m-%d %H:%i:%s')"; // echo $sql2; $res2 = $con->query($sql2); $row2 = $res2->fetch_row(); // echo($row2[0]); $privateTourBuggies=$row[0]; $groupTourPeople=$row2[0]; $groupTourBuggies=ceil($groupTourPeople/3); //ako je više od cijelog broja, onda je taj gornji. if($tour["privatni"]){ //gledam broj buggya. $remaining=BUGGIES-$privateTourBuggies-$groupTourBuggies; } else { //gledam broj ljudi. $remaining=((BUGGIES-$privateTourBuggies)*PEOPLE_PER_BUGGY)-$groupTourPeople; } if($remaining<0) $remaining=0; $result[$startTime]=$remaining; } return $result; } function insertRow($conn, $table, $data) { // Build the list of column names and values $columns = ""; $values = ""; foreach ($data as $column => $value) { $escapedValue=$conn->real_escape_string($value); $columns .= "`$column`, "; $values .= "'$escapedValue', "; } // Trim the trailing comma and space from the column names and values lists $columns = rtrim($columns, ", "); $values = rtrim($values, ", "); // Build and execute the query $query = "INSERT INTO `$table` ($columns) VALUES ($values)"; $result = $conn->query($query); if (!$result) { // Query failed, return false echo $conn->error; return false; } // Query was successful, return the ID of the inserted row return $conn->insert_id; }