Example #1
0
 public function save_information()
 {
     /* Controleren of alle vereiste velden ingevuld zijn. */
     if (!empty($_POST['firstname']) && !empty($_POST['lastname']) && !empty($_POST['street']) && !empty($_POST['house_nr']) && !empty($_POST['zipcode']) && !empty($_POST['city']) && !empty($_POST['bank_account']) && !empty($_POST['email'])) {
         /* Kijken of minimaal een van de twee telefoonnummers ingevuld is. */
         if (!empty($_POST['phone_home']) || !empty($_POST['phone_mob'])) {
             /* Controleren of het bank rekening nummer een getal is. */
             if (is_numeric($_POST['bank_account'])) {
                 /* Controleren of het huis nummer een getal is. */
                 if (is_numeric($_POST['house_nr'])) {
                     /* Controleren of het e-mailadres klopt. */
                     if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
                         /* Escape de heel $_POST array, en plaats het resultaat terug in $_POST. */
                         $_POST = Database::escape_array($_POST);
                         /* Update de customer information. */
                         $update_ci = Database::query("UPDATE customer_info SET firstname = '" . $_POST['firstname'] . "', inserts = '" . $_POST['inserts'] . "', lastname = '" . $_POST['lastname'] . "', street = '" . $_POST['street'] . "', house_nr = " . $_POST['house_nr'] . ", house_nr_add = '" . $_POST['house_nr_add'] . "', city = '" . $_POST['city'] . "', zipcode = '" . $_POST['zipcode'] . "', phone_home = '" . $_POST['phone_home'] . "', phone_mob = '" . $_POST['phone_mob'] . "', bank_account = " . $_POST['bank_account'] . " WHERE customer_id = " . $_SESSION['login']['id']);
                         if ($update_ci) {
                             /* Update de customer email. */
                             $update_c = Database::query("UPDATE customer SET email = '" . $_POST['email'] . "' WHERE id = " . $_SESSION['login']['id']);
                             if (!$update_c) {
                                 /* Aanpassen van email is mislukt. */
                                 throw new Exception('Er ging wat fout tijdens het opslaan van de wijzigingen.<br />' . Database::error());
                             }
                         } else {
                             /* Customer info aanpassen is mislukt. */
                             throw new Exception('Er ging wat fout tijdens het opslaan van de wijzigingen.<br />' . Database::error());
                         }
                     } else {
                         /* E-mailadres is ongeldig. */
                         throw new Exception('Het ingevulde e-mailadres is ongeldig.');
                     }
                 } else {
                     /* Huisnummer is geen getal. */
                     throw new Exception('Het ingevulde huisnummer is ongeldig.');
                 }
             } else {
                 /* Banknummer is geen getal. */
                 throw new Exception('Het ingevulde rekeningnummer is ongeldig.');
             }
         } else {
             /* Beide telefoonnummers missen. */
             throw new Exception('Minimaal een van de telefoonnummers dient ingevuld te worden.');
         }
     } else {
         /* Niet alle verplichte velden zijn ingevuld. */
         throw new Exception('Niet alle verplichte velden zijn ingevuld.');
     }
 }
 public static function remove_permissions()
 {
     /* Permissie check. */
     if (Permission::has('operator_permission_edit')) {
         /* Kijken of er rechten zijn geselecteerd. */
         if (!empty($_POST['remove_permission'])) {
             /* Escape de array. */
             $array = Database::escape_array($_POST['remove_permission']);
             /* Delete query. */
             $delete = Database::query("DELETE FROM permission WHERE id IN (" . join(',', $array) . ")");
             /* Controleren of query mislukt is. */
             if (!$delete) {
                 /* Foutmelding. */
                 throw new Exception('Er ging wat fout bij het verwijderen van de rechten.<br />' . Database::error());
             }
         } else {
             /* Geen geselecteerde permissies. */
             throw new Exception('Er zijn geen rechten geselecteerd om te verwijderen.');
         }
     } else {
         /* Geen rechten. */
         throw new Exception('U heeft niet de bevoegdheden om rechten aan te mogen passen.');
     }
 }
 public static function delete_list($type)
 {
     /* Permission check. */
     if (Permission::has('operator_queue_edit')) {
         /* Controleren of er een array met items mee gegeven is. */
         if (!empty($_POST['remove_queue']) && is_array($_POST['remove_queue'])) {
             /* Juiste tabel zoeken. */
             if ($type == 'month') {
                 /* Maand tabel pakken. */
                 $table = 'queue_month';
             } else {
                 /* Dag tabel pakken. */
                 $table = 'queue_day';
             }
             /* Escape de array, tegen mysql injecties. */
             $_POST['remove_queue'] = Database::escape_array($_POST['remove_queue']);
             /* Verwijder alle items in de array. */
             $delete = Database::query("DELETE FROM " . $table . " WHERE id IN (" . implode(',', $_POST['remove_queue']) . ")");
             /* Kijken of de query mislukt is. */
             if (!$delete) {
                 /* Foutmelding. */
                 throw new Exception('Er ging wat fout bij het verwijderen van de queue items.<br />' . Database::error());
             }
         } else {
             /* Foutmelding, geen items mee gegeven. */
             throw new Exception('Er zijn geen items mee gegeven om te verwijderen.');
         }
     } else {
         /* Geen rechten. */
         throw new Exception('U heeft geen rechten om de queue aan te passen.');
     }
 }
Example #4
0
 public static function add_category()
 {
     /* Permission check. */
     if (Permission::has('operator_price_category')) {
         /* Kijken of alle verplichte velden ingevuld zijn. */
         if (!empty($_POST['category_number']) && !empty($_POST['price_30min']) && isset($_POST['edit'])) {
             /* Escape de array, tegen mysql injections. */
             $_POST = Database::escape_array($_POST);
             /* Kijken of alle gegevens wel getallen zijn. */
             if (is_numeric($_POST['category_number']) && is_numeric($_POST['price_30min'])) {
                 /* Kijken of er een maximum bedrag mee gegeven is .*/
                 if (!empty($_POST['price_max'])) {
                     /* Controleren of het een getal is. */
                     if (!is_numeric($_POST['price_max'])) {
                         /* Foutmelding gooien. */
                         throw new Exception('De maximum prijs waarde is een ongeldig getal.');
                     }
                 }
                 /* Kijken of we wat moeten aanpassen of niet. */
                 if (!empty($_POST['edit'])) {
                     /* Kijken of er al een category met het opgegeven nummer bestaat. */
                     if (Self::get_category($_POST['category_number']) != null) {
                         /* Insert query maken. */
                         $insert = Database::query("UPDATE rate_category SET category = " . $_POST['category_number'] . ", price = " . $_POST['category_number'] . ", max_price = " . (!empty($_POST['price_max']) ? "'" . $_POST['price_max'] . "'" : "null") . " WHERE id = " . Database::escape($_POST['edit']));
                         /* Kijken of de query mislukt is. */
                         if (!$insert) {
                             /* Foutmelding. */
                             throw new Exception('Er ging wat fout bij het aanmaken van de nieuwe categorie.<br />' . Database::error());
                         }
                     } else {
                         /* Er bestaat al een category met dit nummer. */
                         throw new Exception('Het opgegeven categorie id bestaat niet.');
                     }
                 } else {
                     /* Kijken of er al een category met het opgegeven nummer bestaat. */
                     if (Self::get_category($_POST['category_number']) == null) {
                         /* Insert query maken. */
                         $insert = Database::query("INSERT INTO rate_category (category, price, max_price) VALUES (" . $_POST['category_number'] . ", '" . $_POST['price_30min'] . "', " . (!empty($_POST['price_max']) ? "'" . $_POST['price_max'] . "'" : "null") . ")");
                         /* Kijken of de query mislukt is. */
                         if (!$insert) {
                             /* Foutmelding. */
                             throw new Exception('Er ging wat fout bij het aanmaken van de nieuwe categorie.<br />' . Database::error());
                         }
                     } else {
                         /* Er bestaat al een category met dit nummer. */
                         throw new Exception('Er bestaat al een categorie met het opgegeven categorie nummer.');
                     }
                 }
             } else {
                 /* Geen nummers. */
                 throw new Exception('Een of meerdere van de ingevulde gegevens bleek geen getal te zijn.');
             }
         } else {
             /* Foutmelding geven, niet alle velden zijn ingevuld. */
             throw new Exception('Niet alle verplichte velden zijn ingevuld.');
         }
     } else {
         /* Geen rechten. */
         throw new Exception('U heeft geen rechten om de prijs categorieen te mogen bekijken.');
     }
 }
Example #5
0
 public static function register_subscription()
 {
     /* Controleren of alle vereiste velden ingevuld zijn. */
     if (!empty($_POST['firstname']) && !empty($_POST['lastname']) && !empty($_POST['street']) && !empty($_POST['house_nr']) && !empty($_POST['zipcode']) && !empty($_POST['city']) && !empty($_POST['bank_account']) && !empty($_POST['email']) && !empty($_POST['passwd_sha512']) && !empty($_POST['passwd_conf_sha512'])) {
         /* Kijken of minimaal een van de twee telefoonnummers ingevuld is. */
         if (!empty($_POST['phone_home']) || !empty($_POST['phone_mob'])) {
             /* Controleren of het bank rekening nummer een getal is. */
             if (is_numeric($_POST['bank_account']) && strlen($_POST['bank_account']) == 6) {
                 /* Controleren of het huis nummer een getal is. */
                 if (is_numeric($_POST['house_nr'])) {
                     /* Controleren of het e-mailadres klopt. */
                     if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
                         /* Kijken of beide ingevulde wachtwoorden overeen komen. */
                         if ($_POST['passwd_sha512'] == $_POST['passwd_conf_sha512']) {
                             /* Escape de heel $_POST array, en plaats het resultaat terug in $_POST. */
                             $_POST = Database::escape_array($_POST);
                             /* Select query uitvoeren op het ingevulde email. */
                             $check_mail = Database::query("SELECT id FROM customer WHERE email = '" . $_POST['email'] . "' LIMIT 1");
                             /* Kijken of de query is gelukt. */
                             if ($check_mail) {
                                 /* Kijken of het email niet al bestaat. */
                                 if ($check_mail->num_rows == 0) {
                                     /* Haal minimaal bedrag op wat de klant moet kunnen betalen. */
                                     $min_balance = Settings::get('citypark_subscription_month_cost') * Settings::get('citypark_register_min_balance');
                                     /* Voor de zekerheid komma's vervangen met punten. */
                                     $min_balance = str_replace(',', '.', $min_balance);
                                     /* Bij de bank controlleren of de gebruiker het minimum bedrag kan betalen. */
                                     if (Bank_api::check($_POST['bank_account'], $min_balance)) {
                                         /* Het nieuwe wachtwoord aanmaken. */
                                         $passwd = password_hash($_POST['passwd_sha512'], PASSWORD_DEFAULT, ['cost' => Settings::get('login_passwd_cost')]);
                                         /* Het nieuwe wachtwoord base64 encoderen. */
                                         $passwd = base64_encode($passwd);
                                         /* Insert query voor een customer. */
                                         $insert_customer = Database::query("INSERT INTO customer (username, password, email, active, register_date) VALUES ('', '" . $passwd . "', '" . $_POST['email'] . "', 0, NOW())");
                                         /* Controleren of de query is gelukt. */
                                         if ($insert_customer) {
                                             /* Haal het customer ID op. */
                                             $customer_id = Database::insert_id();
                                             /* Insert query voor customer info. */
                                             $insert_customer_info = Database::query("INSERT INTO customer_info (customer_id, firstname, inserts, lastname, street, house_nr, house_nr_add, city, zipcode, phone_home, phone_mob, bank_account) VALUES (" . $customer_id . ", '" . $_POST['firstname'] . "', " . (!empty($_POST['inserts']) ? '\'' . $_POST['inserts'] . '\'' : 'NULL') . ", '" . $_POST['lastname'] . "', '" . $_POST['street'] . "', " . $_POST['house_nr'] . ", " . (!empty($_POST['house_nr_add']) ? '\'' . $_POST['house_nr_add'] . '\'' : 'NULL') . ", '" . $_POST['city'] . "', '" . $_POST['zipcode'] . "', '" . $_POST['phone_home'] . "', '" . $_POST['phone_mob'] . "', " . $_POST['bank_account'] . ")");
                                             /* Controleren of de insert query is gelukt. */
                                             if ($insert_customer_info) {
                                                 /* Proberen twee passen op te halen. */
                                                 try {
                                                     /* Haal de passen op. */
                                                     $pass_array = Self::get_free_pass();
                                                 } catch (Exception $e) {
                                                     /* Foutmelding gevangen, verwijder de customer uit de database. */
                                                     Database::query("DELETE FROM customer WHERE id = " . $customer_id);
                                                     Database::query("DELETE FROM customer_info WHERE customer_id = " . $customer_id);
                                                     /* Gooi foutmelding door. */
                                                     throw new Exception($e->getMessage());
                                                 }
                                                 /* Maak een nieuw abonneenummer. */
                                                 $abonneenummer = Self::new_sub_number();
                                                 /* Insert query voor abonnee. */
                                                 $insert_subscription = Database::query("INSERT INTO subscription (customer_id, sub_number, start_date) VALUES (" . $customer_id . ", " . $abonneenummer . ", NOW())");
                                                 /* Kijken of de insert gelukt is. */
                                                 if ($insert_subscription) {
                                                     /* Haal het abonnee ID op. */
                                                     $abonnee_id = Database::insert_id();
                                                     /* Maak een random string aan met 96 karakters. */
                                                     $activate_key_db = Functions::random_string(96);
                                                     /* Zet hier het account id voor. */
                                                     $activate_key = $customer_id . '-' . $activate_key_db;
                                                     /* Base64 encode de activate keys. */
                                                     $activate_key = base64_encode($activate_key);
                                                     $activate_key_db = base64_encode($activate_key_db);
                                                     /* Update de customer, en geef de gebruikersnaam het zelfde als het abonneenummer en sla de activate key op. */
                                                     $update_username = Database::query("UPDATE customer SET username = '******', activate_key = '" . Database::escape($activate_key_db) . "' WHERE id = " . $customer_id);
                                                     /* Kijken of de update query gelukt is. */
                                                     if ($update_username) {
                                                         /* Update de twee RFID kaarten en koppel ze aan het abonnement. */
                                                         $update_card_one = Database::query("UPDATE rfid_card SET subscription_id = " . $abonnee_id . ", type_card = 'subscription', in_use = 1, blocked = 0, blocked_reason = NULL, blocked_date = NULL WHERE id = " . Database::escape($pass_array[0]));
                                                         /* Kijken of de update query is gelukt. */
                                                         if ($update_card_one) {
                                                             /* Update de tweede kaart. */
                                                             $update_card_two = Database::query("UPDATE rfid_card SET subscription_id = " . $abonnee_id . ", type_card = 'guest', in_use = 1, blocked = 0, blocked_reason = NULL, blocked_date = NULL WHERE id = " . Database::escape($pass_array[1]));
                                                             /* Kijken tweede update query is gelukt. */
                                                             if ($update_card_two) {
                                                                 /* Betaling maken, en kijken of deze is gelukt. */
                                                                 if (Payment::pay_subscription($abonneenummer, 1, $_POST['bank_account'], true)) {
                                                                     /* Query om permissies aan account toe te voegen. */
                                                                     $insert_permission = Database::query("INSERT INTO permission_customer_in_group (customer_id, group_id) VALUES (" . $customer_id . ", " . (int) Database::escape(Settings::get('citypark_standard_group')) . ")");
                                                                     if ($insert_permission) {
                                                                         /* Probeer het onderstaande. */
                                                                         try {
                                                                             /* Probeer een mail te sturen. */
                                                                             Email::send_mail($_POST['email'], 'CityPark - Abonnoment aanvraag', 'Beste ' . $_POST['firstname'] . ' ' . $_POST['lastname'] . ',<br /><br />Op ' . Date('d-m-Y \\o\\m H:i:s') . ' heeft u succesvol een abonnement aangevraagd bij CityPark.<br /><br />Er zijn twee parkeerpassen aan uw abonnement gekoppeld en worden zo snel mogelijk naar uw adres gestuurt. De parkeerpassen die aan uw abonnement zijn gekoppeld hebben de nummers:<br /><i>Abonneepas #' . $pass_array[0] . '</i><br /><i>Gastenpas #' . $pass_array[1] . '</i><br /><br />Om toegang te krijgen tot het klantenpaneel, dient u het account, die aangemaakt is tijdens het aanvragen van het abonnement, te activeren. U kunt uw account activeren door op de onderstaande link te klikken.<br /><a href="' . Config::$base_href . '?activate=' . $activate_key . '">Klik hier om uw account te activeren</a><br /><br />Het gebruikersnaam van uw account is <strong>' . $abonneenummer . '</strong>, en het wachtwoord heeft u zelf ingevuld.<br /><br />Het factuur van uw eerste maandafschiften is te vinden op het klantenpaneel.<br /><br />Uw abonnement is per direct in gegaan, en u kunt de parkeerpassen direct gebruiken wanneer u deze ontvangen heeft. Indien de parkeerpassen verloren raken of gestolen zijn, kunt u deze blokkeren in het klantenpaneel.');
                                                                             /* Registratie gelukt, return een true. */
                                                                             return true;
                                                                         } catch (Exception $e) {
                                                                             /* Foutmelding gevangen, gooi deze door. */
                                                                             throw new Exception($e->getMessage());
                                                                         }
                                                                     } else {
                                                                         /* Query mislukt, maar omdat de betaling wel gelukt is, laten we het abonnement in de database staan. */
                                                                         /* Gooi foutmelding. */
                                                                         throw new Exception('Er is wat fout gegaan bij het toevoegen van de rechten op uw account. Neem a.u.b. contact op.<br />' . Database::error());
                                                                     }
                                                                 } else {
                                                                     /* Query mislukt, verwijder de customer uit de database. */
                                                                     Database::query("DELETE FROM customer WHERE id = " . $customer_id);
                                                                     Database::query("UPDATE rfid_card SET type_card = NULL, in_use = 0 WHERE id = " . Database::escape($pass_array[0]));
                                                                     Database::query("UPDATE rfid_card SET type_card = NULL, in_use = 0 WHERE id = " . Database::escape($pass_array[1]));
                                                                     /* Gooi foutmelding door. */
                                                                     throw new Exception('Er kon geen betaling worden gedaan.');
                                                                 }
                                                             } else {
                                                                 /* Query mislukt, verwijder de customer uit de database. */
                                                                 Database::query("DELETE FROM customer WHERE id = " . $customer_id);
                                                                 Database::query("UPDATE rfid_card SET type_card = NULL, in_use = 0 WHERE id = " . Database::escape($pass_array[0]));
                                                                 /* Gooi foutmelding. */
                                                                 throw new Exception('[1] Er ging wat fout bij het koppelen van de parkeer passen.<br />' . Database::error());
                                                             }
                                                         } else {
                                                             /* Query mislukt, verwijder de customer uit de database. */
                                                             Database::query("DELETE FROM customer WHERE id = " . $customer_id);
                                                             /* Gooi foutmelding. */
                                                             throw new Exception('[0] Er ging wat fout bij het koppelen van de parkeer passen.<br />' . Database::error());
                                                         }
                                                     } else {
                                                         /* Query mislukt, verwijder de customer uit de database. */
                                                         Database::query("DELETE FROM customer WHERE id = " . $customer_id);
                                                         /* Gooi foutmelding door. */
                                                         throw new Exception('Er ging wat fout tijdens het genereren van uw gebruikersnaam.<br />' . Database::error());
                                                     }
                                                 } else {
                                                     /* Query mislukt, verwijder de customer uit de database. */
                                                     Database::query("DELETE FROM customer WHERE id = " . $customer_id);
                                                     /* Gooi foutmelding door. */
                                                     throw new Exception('Er ging wat fout bij het aanmaken van uw abonnement.<br />' . Database::error());
                                                 }
                                             } else {
                                                 /* Om de database schoon te houden, verwijderen we de customer zelf. */
                                                 Database::query("DELETE FROM customer WHERE id = " . $customer_id);
                                                 /* MySQL Foutmelding. */
                                                 throw new Exception('Er ging wat fout tijdens het aanmaken van uw account gegevens.<br />' . Database::error());
                                             }
                                         } else {
                                             /* MySQL Foutmelding. */
                                             throw new Exception('Er ging wat fout tijdens het aanmaken van uw account.<br />' . Database::error());
                                         }
                                     } else {
                                         /* De klant heeft niet genoeg saldo om te mogen registreren. */
                                         throw new Exception('Het saldo op rekeningnummer \'' . $_POST['bank_account'] . '\' is te laag om de registratie te voltooien.');
                                     }
                                 } else {
                                     /* Er bestaat al een klant met dit email. */
                                     throw new Exception('Er is al reeds een klant geregistreerd met het ingevulde e-mailadres.');
                                 }
                             } else {
                                 /* MySQL Foutmelding. */
                                 throw new Exception('Er ging wat fout tijdens het controleren van uw e-mailadres.<br />' . Database::error());
                             }
                         } else {
                             /* Wachtwoorden komen niet overeen. */
                             throw new Exception('De twee ingevulde wachtwoorden komen niet overeen.');
                         }
                     } else {
                         /* E-mailadres is ongeldig. */
                         throw new Exception('Het ingevulde e-mailadres is ongeldig.');
                     }
                 } else {
                     /* Huisnummer is geen getal. */
                     throw new Exception('Het ingevulde huisnummer is ongeldig.');
                 }
             } else {
                 /* Banknummer is geen getal. */
                 throw new Exception('Het ingevulde rekeningnummer is ongeldig.');
             }
         } else {
             /* Beide telefoonnummers missen. */
             throw new Exception('Minimaal een van de telefoonnummers dient ingevuld te worden.');
         }
     } else {
         /* Niet alle verplichte velden zijn ingevuld. */
         throw new Exception('Niet alle verplichte velden zijn ingevuld.');
     }
 }