Example #1
0
    if (isset($_POST['start_time_hrs']) && isset($_POST['start_time_mins'])) {
        $start_time = $_POST['start_time_hrs'] . ":" . $_POST['start_time_mins'];
    } else {
        $start_time = $_GET['time_to_show'];
    }
    if (isset($_POST['end_time_hrs']) && isset($_POST['end_time_mins'])) {
        $end_time = $_POST['end_time_hrs'] . ":" . $_POST['end_time_mins'];
    }
}
// sanity check op boot
if (!is_numeric($boat_id) || $boat_id < 0) {
    echo "<p>Deze boot bestaat niet.</p>";
    exit;
}
// sanity check op datum
if (!CheckTheDate($date)) {
    echo "<p>Datum (" . $date . ") klopt niet.</p>";
    exit;
} else {
    $date_db = DateToDBdate($date);
}
// indien niet aanwezig, tijden alvast invullen met defaults:
if (!$start_time) {
    if ($date == $today) {
        if ($thehour_q < 6) {
            $start_time_hrs = 6;
            $start_time_mins = 0;
        } else {
            $start_time_hrs = $thehour_q;
            $start_time_mins = $theminute_quarts;
        }
Example #2
0
function makeReservation($id, $boat_id, $name, $team_name, $email, $mpb, $date, $start_time_hrs, $start_time_mins, $end_time_hrs, $end_time_mins, $ergo_lo = 0, $ergo_hi = 0)
{
    global $database_host;
    global $database_user;
    global $database_pass;
    global $database;
    global $opzoektabel;
    global $koudwaterprotocol;
    global $today_db;
    global $thehour;
    global $theminute;
    global $themonth;
    $NR_OF_CONCEPTS = 8;
    // LET OP: aanpassen als het aantal Concept-ergo's verandert! (ivm blokinschrijving)
    $bisdblink = mysql_connect($database_host, $database_user, $database_pass);
    if (!mysql_select_db($database, $bisdblink)) {
        $messages[] = "Fout: database niet gevonden.";
        $returnArray = array("success" => false, "messages" => $messages);
        return $returnArray;
    }
    $messages = array();
    // check persoonsnaam
    if (!CheckName($name)) {
        $messages[] = "&bull; U dient een geldige voor- en achternaam op te geven. Let op: de apostrof (') wordt niet geaccepteerd.";
    }
    // email is niet verplicht, maar moet wel correct zijn
    if ($email && !CheckEmail($email)) {
        $messages[] = "&bull; U dient een geldig e-mailadres op te geven.";
    }
    // check date
    $date_db = 0;
    if (!$date || !CheckTheDate($date) || $mpb != "Societeit" && !InRange($date, 10)) {
        $messages[] = "&bull; U dient een (geldige) inschrijfdatum op te geven, van vandaag tot over maximaal 10 dagen.";
    } else {
        $date_db = DateToDBdate($date);
        if (strtotime($date_db) < strtotime($today_db)) {
            $messages[] = "Een inschrijving kan niet in het verleden plaatsvinden.";
        }
    }
    // check time
    if (!is_numeric($start_time_hrs) || $start_time_hrs < 6 || $start_time_hrs > 23) {
        $messages[] = "Ongeldig start-uur.";
    }
    if (!is_numeric($end_time_hrs) || $end_time_hrs < 6 || $end_time_hrs > 23) {
        $messages[] = "Ongeldig eind-uur.";
    }
    if ($start_time_mins != "00" && $start_time_mins != "0" && $start_time_mins != "15" && $start_time_mins != "30" && $start_time_mins != "45") {
        $messages[] = "Ongeldige start-minuten.";
    }
    if ($end_time_mins != "00" && $end_time_mins != "0" && $end_time_mins != "15" && $end_time_mins != "30" && $end_time_mins != "45") {
        $messages[] = "Ongeldige eind-minuten.";
    }
    $start_time = $start_time_hrs . ":" . $start_time_mins;
    $end_time = $end_time_hrs . ":" . $end_time_mins;
    $duration = ($end_time_hrs - $start_time_hrs) * 60 + ($end_time_mins - $start_time_mins);
    if ($duration <= 0) {
        $messages[] = "De eindtijd van een inschrijving dient later dan de begintijd te zijn.";
    }
    if ($date_db == $today_db && ($start_time_hrs < $thehour || $start_time_hrs == $thehour && $start_time_mins < $theminute)) {
        $messages[] = "Een inschrijving kan niet in het verleden beginnen.";
    }
    // check ergo-blok
    if (!is_numeric($ergo_lo) || !is_numeric($ergo_hi) || $ergo_lo < 0 || $ergo_lo > $NR_OF_CONCEPTS || $ergo_hi < 0 || $ergo_hi > $NR_OF_CONCEPTS) {
        $messages[] = "Nummering van de Concept-ergometers klopt niet.";
    }
    $ergo_range = $ergo_hi - $ergo_lo;
    if ($ergo_range < 0) {
        $messages[] = "Het blok moet lopen van de laagst- t/m de hoogst-genummerde Concept-ergometer.";
        $ergo_lo = 0;
        $ergo_hi = 0;
    }
    // check boat
    if (!is_numeric($boat_id) || $boat_id == 0) {
        $boat = "";
        $messages[] = "U heeft geen boot geselecteerd.";
    } else {
        $query_bootnaam = "SELECT Naam FROM boten WHERE ID={$boat_id};";
        $result_bootnaam = mysql_query($query_bootnaam);
        $row_bootnaam = mysql_fetch_assoc($result_bootnaam);
        $boat = $row_bootnaam['Naam'];
    }
    // cat. & grade bepalen n.a.v. boot die wordt ingeschreven
    $query = "SELECT Roeigraad, `Type` FROM boten WHERE ID='" . $boat_id . "';";
    $result = mysql_query($query);
    if ($result) {
        $row = mysql_fetch_assoc($result);
        $grade = $row['Roeigraad'];
        $type = $row['Type'];
        $query2 = "SELECT Categorie FROM types WHERE `Type`='" . $type . "';";
        $result2 = mysql_query($query2);
        if ($result2) {
            $row2 = mysql_fetch_assoc($result2);
            $cat = $row2['Categorie'];
        }
    }
    // check op uit de vaart
    $query = "SELECT * \r\t\tFROM uitdevaart \r\t\tWHERE Verwijderd=0 \r\t\tAND Boot_ID='{$boat_id}' \r\t\tAND Startdatum<='{$date_db}' \r\t\tAND (Einddatum='0' OR Einddatum='0000-00-00' OR Einddatum IS NULL OR Einddatum>='{$date_db}');";
    $result = mysql_query($query);
    if (!$result) {
        $messages[] = "Ophalen van uit de vaart-informatie mislukt.";
    } else {
        $rows_aff = mysql_affected_rows($bisdblink);
        if ($rows_aff > 0) {
            $messages[] = "Deze boot is op deze dag uit de vaart.";
        }
    }
    // check MPB
    // stop eerst alle MPB-gevende bestuursleden in een array
    $mpb_array = array();
    $query = "SELECT Functie FROM bestuursleden WHERE MPB=1;";
    $result = mysql_query($query);
    if (!$result) {
        $messages[] = "Ophalen van bestuursleden mislukt.";
    }
    while ($row = mysql_fetch_assoc($result)) {
        array_push($mpb_array, $row['Functie']);
    }
    if ($mpb != "" && !in_array($mpb, $mpb_array)) {
        $messages[] = "Onjuiste MPB-gever opgegeven.";
    }
    $controle = 0;
    if ($duration > 120) {
        if ($mpb == "") {
            $messages[] = "&bull; U schrijft voor langer dan 2 uur in. Hiervoor is MPB benodigd.";
        }
        $controle = 1;
    }
    if (!InRange($date, 3)) {
        if ($mpb == "") {
            $messages[] = "&bull; U schrijft meer dan 3 dagen vantevoren in. Hiervoor is MPB benodigd.";
        }
        $controle = 2;
    }
    if ($grade == "MPB") {
        if ($mpb == "") {
            $messages[] = "&bull; U schrijft een MPB-boot in. Hiervoor is MPB benodigd.";
        }
        $controle = 3;
    }
    $action = "make";
    if ($id > 0) {
        $action = "alter";
    }
    // If one or more errors were made, return already
    if (sizeof($messages) > 0) {
        // $messages[] = "<strong>Uw inschrijving is mislukt vanwege de genoemde fouten</strong>";
        $returnArray = array("success" => false, "messages" => $messages, "category" => $cat, "grade" => $grade, "action" => $action);
        return $returnArray;
    }
    $success = false;
    $fail_cnt = 0;
    for ($e = $ergo_lo; $e <= $ergo_hi; $e++) {
        // T.b.v. blokinschrijving ergometers (with normal reservation, ergo_lo = ergo_hi = e = 0)
        $fail = false;
        if ($e > 0) {
            $boat = "Concept " . $e;
            $query_ergonaam = "SELECT ID FROM boten WHERE Naam='" . $boat . "';";
            $result_ergonaam = mysql_query($query_ergonaam);
            $row_ergonaam = mysql_fetch_assoc($result_ergonaam);
            $boat_id = $row_ergonaam['ID'];
        }
        // Check inschrijving tegen de database
        $query = "SELECT * FROM " . $opzoektabel . " WHERE Verwijderd=0 AND Volgnummer <> '{$id}' AND ((Begintijd >= '{$start_time}' AND Begintijd < '{$end_time}') OR (Eindtijd > '{$start_time}' AND Eindtijd <= '{$end_time}') OR (Begintijd <= '{$start_time}' AND Eindtijd >= '{$end_time}')) AND Datum = '{$date_db}' AND Boot_ID = '{$boat_id}';";
        $result = mysql_query($query);
        if (!$result) {
            $messages[] = "Het controleren van uw inschrijving is mislukt.";
            $fail = true;
        } else {
            $rows_aff = mysql_affected_rows($bisdblink);
            if ($rows_aff > 0) {
                $messages[] = "Uw inschrijving van " . $boat . " is mislukt omdat deze conflicteert met een al bestaande inschrijving.";
                $fail = true;
            }
        }
        // Ingeval van het bewerken van een bestaande inschrijving, eerst oude uit DB verwijderen
        $mail_gestuurd = false;
        if ($id > 0 && $fail == false) {
            $email_to = "";
            // haal gegevens niet uit form maar uit DB, om fraude te voorkomen
            $query2 = "SELECT Email, Boot_ID, Datum, Begintijd, Spits FROM " . $opzoektabel . " WHERE Volgnummer = " . $id . ";";
            $result2 = mysql_query($query2);
            if ($result2) {
                $row = mysql_fetch_assoc($result2);
                $email_to = $row['Email'];
                $boot_id = $row['Boot_ID'];
                // retrieve boat name
                $query_bootnaam = "SELECT Naam FROM boten WHERE ID=" . $boot_id . ";";
                $result_bootnaam = mysql_query($query_bootnaam);
                $row_bootnaam = mysql_fetch_assoc($result_bootnaam);
                $boot = $row_bootnaam['Naam'];
                //
                $db_datum = $row['Datum'];
                $date_tmp = strtotime($db_datum);
                $date_sh = strftime('%A %d-%m-%Y', $date_tmp);
                $starttijd = $row['Begintijd'];
                $spitsnr = $row['Spits'];
                if ($spitsnr > 0) {
                    $mail_message = "Uw spitsblok van '{$boot}' op {$date_sh} vanaf " . substr($starttijd, 0, 5) . " is zojuist bevestigd.";
                } else {
                    $mail_message = "Uw inschrijving van '{$boot}' op {$date_sh} vanaf " . substr($starttijd, 0, 5) . " is zojuist gewijzigd.";
                }
            }
            $query = "UPDATE " . $opzoektabel . " SET Verwijderd = 1 WHERE Volgnummer = " . $id . ";";
            $result = mysql_query($query);
            if (!$result) {
                $messages[] = "Het verwijderen van de oude inschrijving is mislukt.";
                $fail = true;
            } else {
                if (SendEmail($email_to, "Wijziging of bevestiging inschrijving", $mail_message)) {
                    $mail_gestuurd = true;
                }
            }
        }
        // Het inserten
        if ($fail == false) {
            // current (ergo) reservation is OK
            // inschrijving wordt ingevoerd of gewijzigd
            $today_db = date('Y-m-d');
            $team_name = addslashes($team_name);
            // speciale tekens in ploegnaam "redden"
            $team_name = preg_replace("/\"/", "'", $team_name);
            // dubbele quotes omzetten naar enkele, omdat anders het tooltip-scriptje gek wordt
            $query = "INSERT INTO " . $opzoektabel . " (Datum, Inschrijfdatum, Begintijd, Eindtijd, Boot_ID, Pnaam, Ploegnaam, Email, MPB, Spits, Controle) VALUES ('{$date_db}', '{$today_db}', '{$start_time}', '{$end_time}', '{$boat_id}', '{$name}', \"{$team_name}\", '{$email}', '{$mpb}', '0', '{$controle}');";
            $result = mysql_query($query);
            if (!$result) {
                $messages[] = "Uw inschrijving is mislukt.";
            } else {
                $success = true;
                $date_tmp = strtotime($date_db);
                $date_sh = strftime('%A %d-%m-%Y', $date_tmp);
                $messages[] = "Uw inschrijving van '" . $boat . "' op " . $date_sh . " van " . substr($start_time, 0, 5) . " tot " . substr($end_time, 0, 5) . " is gelukt.";
                if ($controle) {
                    $messages[] = "NB: uw inschrijving is vanwege MPB gelogd en zal door het opgegeven bestuurslid worden gecontroleerd.";
                }
                if ($mail_gestuurd) {
                    $messages[] = "NB: er is ter controle een e-mail gestuurd aan de oorspronkelijke inschrijver.";
                }
                if ($koudwaterprotocol && ($themonth < 4 || $themonth > 9) && $cat != "Ergometers en bak") {
                    // Mind: this is the only message that contains HTML formatting
                    $messages[] = "<strong>LET OP! Wees in de winter voorzichtig i.v.m. het koude water. Het <a href='https://www.hunze.nl/wp-content/uploads/2015/08/Koudwaterprotocol.pdf' target='_blank'>koudwater-protocol</a> geldt van 15 november - 1 mei.";
                }
            }
        } else {
            if ($e == 0) {
                $messages[] = "<strong>Uw inschrijving is mislukt vanwege de genoemde fouten</strong>";
            } else {
                $fail_cnt++;
            }
        }
    }
    // end for-loop ergo_lo - ergo_hi
    if ($fail_cnt > 0) {
        $messages[] = "Let op: &eacute;&eacute;n of meer van de inschrijvingen in uw blok zijn mislukt.";
    }
    mysql_close($bisdblink);
    $returnArray = array("success" => $success, "messages" => $messages, "category" => $cat, "grade" => $grade, "action" => $action);
    return $returnArray;
}
Example #3
0
 if (!$mpb) {
     $fail_msg_mpb = "U dient uw functie te selecteren.";
 }
 // startdatum
 $startdate = $_POST['startdate'];
 if (CheckTheDate($startdate)) {
     $startdate_db = DateToDBdate($startdate);
     if (strtotime($startdate_db) - strtotime($today_db) < 0) {
         $fail_msg_startdate = "De startdatum moet op of na vandaag liggen.";
     }
 } else {
     $fail_msg_startdate = "U dient een geldige startdatum op te geven.";
 }
 // einddatum
 $enddate = $_POST['enddate'];
 if (CheckTheDate($enddate)) {
     $enddate_db = DateToDBdate($enddate);
 } else {
     $fail_msg_enddate = "U dient een geldige einddatum op te geven.";
 }
 // tijden
 $start_time_hrs = $_POST['start_time_hrs'];
 $start_time_mins = $_POST['start_time_mins'];
 $start_time = $start_time_hrs . ":" . $start_time_mins;
 $end_time_hrs = $_POST['end_time_hrs'];
 $end_time_mins = $_POST['end_time_mins'];
 $end_time = $end_time_hrs . ":" . $end_time_mins;
 // datum-/tijdvolgorde
 if (strtotime($enddate_db . ' ' . $end_time) <= strtotime($startdate_db . ' ' . $start_time)) {
     $fail_msg_date = "Het einde van het blok dient na het begin te liggen.";
 }
Example #4
0
File: index.php Project: Eworm/BIS
}
// stop alle roeigraden in een array
$query = "SELECT Roeigraad FROM roeigraden WHERE ToonInBIS=1 ORDER BY ID;";
$result = mysql_query($query);
if (!$result) {
    die("Ophalen van roeigraden mislukt." . mysql_error());
}
$grade_array = array();
while ($row = mysql_fetch_assoc($result)) {
    array_push($grade_array, $row['Roeigraad']);
}
$date_to_show = 0;
if (isset($_GET['date_to_show'])) {
    $date_to_show = $_GET['date_to_show'];
}
if ($date_to_show == 0 || !CheckTheDate($date_to_show)) {
    // altijd sanity check
    $date_to_show = $today;
}
$date_to_show_db = DateToDBdate($date_to_show);
$start_hrs_to_show = -1;
$start_mins_to_show = -1;
if (isset($_GET['start_time_to_show'])) {
    $start_time_to_show = $_GET['start_time_to_show'];
    $start_time_fields = explode(":", $start_time_to_show);
    $start_hrs_to_show = $start_time_fields[0];
    $start_mins_to_show = $start_time_fields[1];
}
if ($start_hrs_to_show == -1 || $start_mins_to_show == -1 || !($start_hrs_to_show >= 6 && $start_hrs_to_show <= 23) || !($start_mins_to_show == 0 || $start_mins_to_show == 15 || $start_mins_to_show == 30 || $start_mins_to_show == 45)) {
    // sanity check
    if ($date_to_show == $today) {