예제 #1
0
 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();
 }
예제 #2
0
 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.');
     }
 }