public function __construct() { /* Laad eerst de volledige queue in. */ $this->load_queue(); /* Kijken of het nodig is om de onderstaande functie uit te voeren. */ if ($this->queue_count != 0) { /* Doorloop de queue loop. */ for ($i = 0; $i < $this->queue_count; $i++) { /* Maak item var. */ $item = $this->queue[$i]; /* Kijken of de dataveld leeg is. */ if (!empty($item->data)) { /* Parse de json data naar object. */ $json = json_decode($item->data); } else { /* Geen json data, maak leeg Object aan om foutmeldingen te voorkomen. */ $json = (object) array(); } /* Kijken of de actie veld gevuld is. */ if (!empty($item->action)) { /* Kijken of de actie 'subscription_cancel' is en het dataveld een sub_number bevat. */ if ($item->action == 'subscription_cancel' && !empty($json->sub_number)) { /* Roep verwijder functie aan. */ $this->remove_subscription($json->sub_number); /* Verwijder het item uit de queue. */ Queue_manager::delete($item->id, 'month'); } /* Kijken of de actie 'change_subscription_price' is, en er een prijs is geset (kan 0 zijn, maar !empty geeft false terug bij het getal 0). */ if ($item->action == 'change_subscription_price' && isset($json->price)) { /* Roep update functie aan. */ $this->price_subscription($json->price); /* Verwijder item uit de queue. */ Queue_manager::delete($item->id, 'month'); } /* Kijken of de actie 'insert_rate_time' is, en of days, time_from, time_till en het category ID ingevuld zijn. */ if ($item->action == 'insert_rate_time' && isset($json->days) && isset($json->time_from) && isset($json->time_till) && isset($json->category)) { /* Roep de insert functie aan. */ if ($this->rate_time_insert($item, $json)) { /* Alleen wanneer een true terug komt, verwijder item uit de queue. */ Queue_manager::delete($item->id, 'month'); } } /* Kijken of de actie 'delete_rate_time' is, en of 'id' niet leeg is. */ if ($item->action == 'delete_rate_time' && !empty($json->id)) { /* Roep de delete functie aan. */ if ($this->rate_time_delete($item, $json->id)) { /* Alleen wanneer een true terug komt, verwijder item uit de queue. */ Queue_manager::delete($item->id, 'month'); } } } } } /* Maak facturen aan voor alle abonnees, en bereken gasten passen tijden. */ $this->invoice_subscription(); }
public function cancel_cancel() { /* Controleren of de benoodigde sessie is gezet. */ if (!empty($_SESSION['login']['opzeg_queue_id'])) { /* Probeer onderstaande */ try { /* Maak een task aan in de maand queue. */ Queue_manager::delete($_SESSION['login']['opzeg_queue_id'], 'month'); } catch (Exception $e) { /* Foutmelding gevangen, deze doorgooien. */ throw new Exception($e->getMessage()); } } else { /* Foutmelding, sessie bestaat niet. */ throw new Exception('Er ging wat fout tijdens het controleren van uw abonnement status.'); } }