Пример #1
0
 public function action($request)
 {
     $location = $this->getLocation($request);
     if (empty($location['mi'])) {
         return true;
     }
     $db = JFactory::getDBO();
     $mi = new microIntegration();
     if (!$mi->mi_exists($location['mi'])) {
         return true;
     }
     $mi->load($location['mi']);
     if (!$mi->callIntegration()) {
         return null;
     }
     global $aecConfig;
     $action = 'action';
     $exchange = null;
     if ($mi->relayAction($request->metaUser, $exchange, $request->invoice, null, $action, $request->add) === false) {
         if ($aecConfig->cfg['breakon_mi_error']) {
             return false;
         }
     }
     return true;
 }
 /**
  * @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);
             }
         }
     }
 }
 /**
  * @param string $action
  */
 public function triggerMIs($action, &$metaUser, &$exchange, &$invoice, &$add, &$silent)
 {
     global $aecConfig;
     $micro_integrations = $this->getMicroIntegrations();
     if (!is_array($micro_integrations)) {
         return null;
     }
     foreach ($micro_integrations as $mi_id) {
         $mi = new microIntegration();
         if (!$mi->mi_exists($mi_id)) {
             continue;
         }
         $mi->load($mi_id);
         if (!$mi->callIntegration()) {
             continue;
         }
         // TODO: Only trigger if this is not email or made not silent
         if (method_exists($metaUser, $action)) {
             if ($mi->{$action}($metaUser, $exchange, $invoice, $this) === false) {
                 if ($aecConfig->cfg['breakon_mi_error']) {
                     return false;
                 }
             }
         } else {
             $params = array();
             if (isset($invoice->params['userMIParams'])) {
                 if (is_array($invoice->params['userMIParams'])) {
                     if (isset($invoice->params['userMIParams'][$this->id][$mi->id])) {
                         $params = $invoice->params['userMIParams'][$this->id][$mi->id];
                     }
                 }
             }
             if ($mi->relayAction($metaUser, $exchange, $invoice, $this, $action, $add, $params) === false) {
                 if ($aecConfig->cfg['breakon_mi_error']) {
                     return false;
                 }
             }
         }
     }
     return true;
 }
Пример #4
0
 public function cmdApply($metaUser, $params)
 {
     global $aecConfig;
     $db = JFactory::getDBO();
     switch (strtolower($params[0])) {
         case 'plan':
             $plans = explode(',', $params[1]);
             foreach ($plans as $planid) {
                 $plan = new SubscriptionPlan();
                 $plan->load($planid);
                 $metaUser->establishFocus($plan);
                 $metaUser->focusSubscription->applyUsage($planid, 'none', 1);
             }
             break;
         case 'mi':
             $micro_integrations = explode(',', $params[1]);
             if (is_array($micro_integrations)) {
                 foreach ($micro_integrations as $mi_id) {
                     $mi = new microIntegration();
                     if (!$mi->mi_exists($mi_id)) {
                         continue;
                     }
                     $mi->load($mi_id);
                     if (!$mi->callIntegration()) {
                         continue;
                     }
                     if (isset($params[2])) {
                         $action = $params[2];
                     } else {
                         $action = 'action';
                     }
                     $invoice = $exchange = $add = null;
                     if ($mi->relayAction($metaUser, $exchange, $invoice, null, $action, $add) === false) {
                         if ($aecConfig->cfg['breakon_mi_error']) {
                             return false;
                         }
                     }
                     unset($mi);
                 }
             }
             break;
     }
 }
Пример #5
0
 /**
  * @param Invoice $invoice
  */
 public function triggerMIs($metaUser, $invoice, $new_plan)
 {
     global $aecConfig;
     // See whether this coupon has micro integrations
     if (empty($this->coupon->micro_integrations)) {
         return null;
     }
     foreach ($this->coupon->micro_integrations as $mi_id) {
         $mi = new microIntegration();
         // Only call if it exists
         if (!$mi->mi_exists($mi_id)) {
             continue;
         }
         $mi->load($mi_id);
         // Check whether we can really call
         if (!$mi->callIntegration()) {
             continue;
         }
         $add = $params = false;
         if (is_object($metaUser)) {
             if ($mi->action($metaUser, null, $invoice, $new_plan) === false) {
                 if ($aecConfig->cfg['breakon_mi_error']) {
                     return false;
                 }
             }
             if ($mi->relayAction($metaUser, null, $invoice, $this, 'afteraction', $add, $params) === false) {
                 if ($aecConfig->cfg['breakon_mi_error']) {
                     return false;
                 }
             }
         } else {
             $metaUser = false;
             if ($mi->action($metaUser, null, $invoice, $new_plan) === false) {
                 if ($aecConfig->cfg['breakon_mi_error']) {
                     return false;
                 }
             }
             if ($mi->relayAction($metaUser, null, $invoice, $this, 'afteraction', $add, $params) === false) {
                 if ($aecConfig->cfg['breakon_mi_error']) {
                     return false;
                 }
             }
         }
     }
 }
Пример #6
0
 public function relayAction($request)
 {
     if (!($request->area == 'afteraction')) {
         return null;
     }
     $options = $this->getOption($request);
     foreach ($options as $option) {
         if (empty($option['mi'])) {
             continue;
         }
         $mi = new microIntegration();
         if (!$mi->mi_exists($option['mi'])) {
             return true;
         }
         $mi->load($option['mi']);
         if ($mi->callIntegration()) {
             $exchange = $params = null;
             if ($mi->relayAction($request->metaUser, $exchange, $request->invoice, null, 'action', $request->add, $params) === false) {
                 global $aecConfig;
                 if ($aecConfig->cfg['breakon_mi_error']) {
                     return false;
                 }
             }
             if ($mi->relayAction($request->metaUser, $exchange, $request->invoice, null, 'afteraction', $request->add, $params) === false) {
                 global $aecConfig;
                 if ($aecConfig->cfg['breakon_mi_error']) {
                     return false;
                 }
             }
         }
     }
     return true;
 }