Exemplo n.º 1
0
 public function getUserMIs()
 {
     if (empty($this->focusSubscription->id)) {
         return array();
     }
     $focus = $this->focusSubscription->id;
     $return = array();
     if (!empty($this->objSubscription->plan)) {
         $selected_plan = new SubscriptionPlan();
         $selected_plan->load($this->objSubscription->plan);
         $mis = $selected_plan->getMicroIntegrations();
         if (empty($mis)) {
             $mis = array();
         }
         $sec = $this->getSecondarySubscriptions(true);
         if (!empty($sec)) {
             foreach ($sec as $pid) {
                 if ($this->moveFocus($pid)) {
                     $selected_plan = new SubscriptionPlan();
                     $selected_plan->load($this->focusSubscription->plan);
                     $miis = $selected_plan->getMicroIntegrations();
                     if (!empty($miis)) {
                         $mis = array_merge($mis, $miis);
                     }
                 }
             }
         }
         if (count($mis)) {
             $mis = array_unique($mis);
             foreach ($mis as $mi_id) {
                 if ($mi_id) {
                     $mi = new MicroIntegration();
                     $mi->load($mi_id);
                     if (!$mi->callIntegration()) {
                         continue;
                     }
                     $return[] = $mi;
                 }
             }
         }
     }
     // Go back to initial focus, if it has been changed
     if ($this->focusSubscription->id != $focus) {
         $this->moveFocus($focus);
     }
     return $return;
 }
 /**
  * @param metaUser $metaUser
  * @param SubscriptionPlan $subscription_plan
  */
 public function userPlanExpireActions($metaUser, $subscription_plan, $special = null)
 {
     $mi_autointegrations = $this->getAutoIntegrations();
     if (empty($mi_autointegrations) && empty($subscription_plan)) {
         return null;
     }
     $mis = $subscription_plan->getMicroIntegrations();
     if (is_array($mis)) {
         $user_auto_integrations = array_intersect($mis, $mi_autointegrations);
     }
     if (empty($user_auto_integrations)) {
         return null;
     }
     foreach ($user_auto_integrations as $mi_id) {
         $mi = new microIntegration();
         $mi->load($mi_id);
         if ($mi->callIntegration()) {
             $invoice = null;
             if (!empty($metaUser->focusSubscription->id)) {
                 $invoice = new Invoice();
                 $invoice->loadbySubscriptionId($metaUser->focusSubscription->id);
                 if (empty($invoice->id)) {
                     $invoice = null;
                 }
             }
             $mi->expiration_action($metaUser, $subscription_plan, $invoice);
             if (!empty($special)) {
                 $mi->relayAction($metaUser, null, $invoice, $subscription_plan, $special);
             }
         }
     }
 }