/**
  * This is not the best example to follow
  * Please see the category plugin for a better example
  */
 public function post()
 {
     require_once JPATH_SITE . '/components/com_acctexp/acctexp.class.php';
     $db =& JFactory::getDBO();
     $app = JFactory::getApplication();
     $userid = JRequest::getInt('user_id', 0);
     $planid = JRequest::getInt('plan_id', 0);
     //$new_expiry = JRequest::getString('date',0);
     $obj = new stdClass();
     //validate plan
     $plans = SubscriptionPlanHandler::getPlanList();
     $muser = metaUserDB::getIDbyUserid($userid);
     //$pplan = metaUserDB::getPreviousPlan($muser);
     //$uplan = metaUserDB::getUsedPlans($muser);
     //print_r($new_expiry);die;
     if (!$userid) {
         $obj->success = 0;
         $obj->code = 21;
         $obj->message = "invalid user id";
     } elseif (!$plans[array_search($planid, $plans)]) {
         $obj->success = 0;
         $obj->code = 22;
         $obj->message = "invalid plan id";
     } else {
         $plan = new SubscriptionPlan($db);
         $plan->load($planid);
         //print_r($plan->params['full_period']);die;
         //check user is metauser
         /*if ( is_a( $user, 'metaUser' ) ) {
         			$metaUser = $user;
         			} elseif( is_a( $user, 'Subscription' ) ) {
         			$metaUser = new metaUser( $user->userid );
         
         			$metaUser->focusSubscription = $user;
         			}*/
         $metaUser = new metaUser($userid);
         $renew = $metaUser->is_renewing();
         //$metaUser->focusSubscription->lifetime;
         $metaUser->focusSubscription->plan = $planid;
         $metaUser->focusSubscription->status = 'Active';
         $metaUser->temporaryRFIX();
         //$metaUser->focusSubscription->lifetime = 1;
         //set expiration
         $now = (int) gmdate('U');
         //$current = strtotime($new_expiry);
         //$metaUser->focusSubscription->expiration = $new_expiry;
         //$metaUser->objSubscription->expiration = $new_expiry;
         $reply = $metaUser->focusSubscription->storeload();
         if ($reply && $planid) {
             $history = new logHistory($db);
             $obj->success = 1;
             $obj->message = "User added to plan";
         }
     }
     $this->plugin->setResponse($obj);
 }
 /**
  * This is not the best example to follow
  * Please see the category plugin for a better example
  */
 public function post()
 {
     require_once JPATH_SITE . '/components/com_acctexp/acctexp.class.php';
     $db =& JFactory::getDBO();
     $app = JFactory::getApplication();
     $userid = JRequest::getInt('user_id', 0);
     $planid = JRequest::getInt('plan_id', 0);
     $new_expiry = JRequest::getString('date', 0);
     //convert date in format
     $new_expiry = date("Y-m-d h:i:s", strtotime($new_expiry));
     $obj = new stdClass();
     //validate plan
     $plans = SubscriptionPlanHandler::getPlanList();
     $muser = metaUserDB::getIDbyUserid($userid);
     $plnuser = SubscriptionPlanHandler::getPlanUserlist($planid);
     if (!$userid) {
         $obj->success = 0;
         $obj->code = 21;
         $obj->message = "invalid user id";
     } elseif (!$plans[array_search($planid, $plans)]) {
         $obj->success = 0;
         $obj->code = 22;
         $obj->message = "invalid plan id";
     } elseif ($userid == $plnuser[array_search($userid, $plnuser)]) {
         $plan = new SubscriptionPlan($db);
         $plan->load($planid);
         $metaUser = new metaUser($userid);
         $renew = $metaUser->is_renewing();
         $lifetime = $metaUser->focusSubscription->lifetime;
         $metaUser->focusSubscription->plan = $planid;
         $metaUser->focusSubscription->status = 'Active';
         $metaUser->temporaryRFIX();
         $metaUser->focusSubscription->lifetime = 0;
         //set expiration
         //$now = (int) gmdate('U');
         $metaUser->focusSubscription->expiration = $new_expiry;
         //$metaUser->objSubscription->expiration = $new_expiry;
         $reply = $metaUser->focusSubscription->storeload();
         if ($reply && $planid) {
             $obj->success = 1;
             $obj->message = "Expiry updated";
         }
     } else {
         $obj->success = 0;
         $obj->code = 31;
         $obj->message = "Plan not assigned to user";
     }
     $this->plugin->setResponse($obj);
 }
Beispiel #3
0
 public function Action()
 {
     if (empty($_POST['delete'])) {
         return '<p>Please select a processor to remove.</p>';
     }
     if (empty($_POST['replace'])) {
         return '<p>Please select a processor to replace the removed processor with.</p>';
     }
     $db = JFactory::getDBO();
     $replacepp = new PaymentProcessor();
     $replacepp->loadName($_POST['replace']);
     $deletepp = new PaymentProcessor();
     $deletepp->loadName($_POST['delete']);
     $query = 'UPDATE #__acctexp_invoices' . ' SET `method` = \'' . $replacepp->processor_name . '\'' . ' WHERE `method` = \'' . $deletepp->processor_name . '\'';
     $db->setQuery($query);
     $db->query();
     $query = 'UPDATE #__acctexp_subscr' . ' SET `type` = \'' . $replacepp->processor_name . '\'' . ' WHERE `type` = \'' . $deletepp->processor_name . '\'';
     $db->setQuery($query);
     $db->query();
     $query = 'UPDATE #__acctexp_log_history' . ' SET `proc_id` = \'' . $replacepp->id . '\', `proc_name` = \'' . $replacepp->processor_name . '\'' . ' WHERE `proc_name` = \'' . $replacepp->processor_name . '\'';
     $db->setQuery($query);
     $db->query();
     $planlist = SubscriptionPlanHandler::getPlanList();
     foreach ($planlist as $planid) {
         $plan = new SubscriptionPlan();
         $plan->load($planid);
         if (empty($plan->params['processors'])) {
             continue;
         }
         if (in_array($deletepp->id, $plan->params['processors'])) {
             unset($plan->params['processors'][array_search($deletepp->id, $plan->params['processors'])]);
             if (!in_array($replacepp->id, $plan->params['processors'])) {
                 $plan->params['processors'][] = $replacepp->id;
             }
             $plan->check();
             $plan->store();
         }
     }
     $query = 'DELETE FROM #__acctexp_config_processors' . ' WHERE `id` = \'' . $deletepp->id . '\'';
     $db->setQuery($query);
     $db->query();
     return "<p>Alright, replaced and deleted!</p>";
 }
Beispiel #4
0
 public function edit($id)
 {
     $lists = array();
     $mi = new microIntegration();
     $mi->load($id);
     $aecHTML = null;
     $attached = array();
     $mi_gsettings = $mi->getGeneralSettings();
     if (!$mi->id) {
         // Create MI Selection List
         $mi_handler = new microIntegrationHandler();
         $mi_list = $mi_handler->getIntegrationList();
         $drilldown = array('all' => array());
         $mi_gsettings['class_name'] = array('hidden');
         $mi_gsettings['class_list'] = array('list');
         if (count($mi_list) > 0) {
             foreach ($mi_list as $name) {
                 $mi_item = new microIntegration();
                 if ($mi_item->callDry($name)) {
                     $handle = str_replace('mi_', '', $mi_item->class_name);
                     if (isset($mi_item->info['type'])) {
                         foreach ($mi_item->info['type'] as $type) {
                             $drill = explode('.', $type);
                             $cursor =& $drilldown;
                             $mi_item->name = str_replace(array(' AEC ', ' MI '), ' ', $mi_item->name);
                             foreach ($drill as $i => $k) {
                                 if (!isset($cursor[$k])) {
                                     $cursor[$k] = array();
                                 }
                                 if ($i == count($drill) - 1) {
                                     $cursor[$k][] = '<a href="#' . $handle . '" class="mi-menu-mi"><span class="mi-menu-mi-name">' . $mi_item->name . '</span><span class="mi-menu-mi-desc">' . $mi_item->desc . '</span></a>';
                                 } else {
                                     $cursor =& $cursor[$k];
                                 }
                             }
                         }
                     }
                     $drilldown['all'][] = '<a href="#' . $handle . '" class="mi-menu-mi"><span class="mi-menu-mi-name">' . $mi_item->name . '</span><span class="mi-menu-mi-desc">' . $mi_item->desc . '</span></a>';
                 }
             }
             deep_ksort($drilldown);
             $lists['class_list'] = '<a tabindex="0" href="#mi-select-list" class="btn btn-primary" id="drilldown">Select an Integration</a>';
             $lists['class_list'] .= '<div id="mi-select-list" class="hidden"><ul>';
             foreach ($drilldown as $lin => $li) {
                 if ($this->lang->hasKey('AEC_MI_LIST_' . strtoupper($lin))) {
                     $kkey = JText::_('AEC_MI_LIST_' . strtoupper($lin));
                 } else {
                     $kkey = ucwords(str_replace('_', ' ', $lin));
                 }
                 $lists['class_list'] .= '<li><a href="#">' . $kkey . '</a><ul>';
                 foreach ($li as $lixn => $lix) {
                     if (is_array($lix)) {
                         if ($this->lang->hasKey('AEC_MI_LIST_' . strtoupper($lixn))) {
                             $xkey = JText::_('AEC_MI_LIST_' . strtoupper($lixn));
                         } else {
                             $xkey = ucwords(str_replace('_', ' ', $lixn));
                         }
                         $lists['class_list'] .= '<li><a href="#">' . $xkey . '</a><ul>';
                         foreach ($lix as $mix) {
                             $lists['class_list'] .= '<li>' . $mix . '</li>';
                         }
                         $lists['class_list'] .= '</ul></li>';
                     } else {
                         $lists['class_list'] .= '<li>' . $lix . '</li>';
                     }
                 }
                 $lists['class_list'] .= '</ul></li>';
             }
             $lists['class_list'] .= '</ul></div>';
         } else {
             $lists['class_list'] = '';
         }
     }
     if ($mi->id) {
         // Call MI (override active check) and Settings
         if ($mi->callIntegration(true)) {
             $attached['plans'] = microIntegrationHandler::getPlansbyMI($mi->id, false, true);
             $attached['groups'] = microIntegrationHandler::getGroupsbyMI($mi->id, false, true);
             $set = array();
             foreach ($mi_gsettings as $n => $v) {
                 if (!isset($mi->{$n})) {
                     if (isset($mi->settings[$n])) {
                         $set[$n] = $mi->settings[$n];
                     } else {
                         $set[$n] = null;
                     }
                 } else {
                     $set[$n] = $mi->{$n};
                 }
             }
             $restrictionHelper = new aecRestrictionHelper();
             $mi_gsettings['restr_remaps'] = array('subarea_change', 'restrictions');
             $mi_gsettings = array_merge($mi_gsettings, $restrictionHelper->getParams());
             if (empty($mi->restrictions)) {
                 $mi->restrictions = array();
             }
             $lists = array_merge($lists, $restrictionHelper->getLists($set, $mi->restrictions));
             $mi_gsettings[$mi->id . 'remap'] = array('area_change', 'MI');
             $mi_gsettings[$mi->id . 'remaps'] = array('subarea_change', $mi->class_name);
             $mi_settings = $mi->getSettings();
             // Get lists supplied by the MI
             if (!empty($mi_settings['lists'])) {
                 $lists = array_merge($lists, $mi_settings['lists']);
                 unset($mi_settings['lists']);
             }
             $available_plans = SubscriptionPlanHandler::getPlanList(false, false, true, null, true);
             $selected_plans = array();
             foreach ($attached['plans'] as $p) {
                 $selected_plans[] = (object) array('value' => $p->id, 'text' => $p->name);
             }
             $lists['attach_to_plans'] = JHTML::_('select.genericlist', $available_plans, 'attach_to_plans[]', 'size="1" multiple="multiple" class="select2-bootstrap"', 'value', 'text', $selected_plans);
             $available_groups = ItemGroupHandler::getGroups(null, true);
             $selected_groups = array();
             foreach ($attached['groups'] as $g) {
                 $selected_groups[] = (object) array('value' => $g->id, 'text' => $g->name);
             }
             $lists['attach_to_groups'] = JHTML::_('select.genericlist', $available_groups, 'attach_to_groups[]', 'size="1" multiple="multiple" class="select2-bootstrap"', 'value', 'text', $selected_groups);
             $gsettings = new aecSettings('MI', 'E');
             $gsettings->fullSettingsArray($mi_gsettings, array_merge($set, $mi->restrictions), $lists);
             $settings = new aecSettings('MI', $mi->class_name);
             $settings->fullSettingsArray($mi_settings, $set, $lists);
             // Call HTML Class
             $aecHTML = new aecHTML(array_merge($gsettings->settings, $settings->settings), array_merge($gsettings->lists, $settings->lists));
             $aecHTML->hasHacks = method_exists($mi->mi_class, 'hacks');
             $aecHTML->customparams = array();
             foreach ($mi_settings as $n => $v) {
                 $aecHTML->customparams[] = $n;
             }
             $aecHTML->hasSettings = true;
             $aecHTML->hasRestrictions = !empty($mi->settings['has_restrictions']);
         } else {
             $short = 'microIntegration loading failure';
             $event = 'When trying to load microIntegration: ' . $mi->id . ', callIntegration failed';
             $tags = 'microintegration,loading,error';
             $params = array();
             $eventlog = new eventLog();
             $eventlog->issue($short, $tags, $event, 128, $params);
         }
     } else {
         $settings = new aecSettings('MI', 'E');
         $settings->fullSettingsArray($mi_gsettings, array(), $lists);
         // Call HTML Class
         $aecHTML = new aecHTML($settings->settings, $settings->lists);
         $aecHTML->hasSettings = false;
         $aecHTML->hasRestrictions = false;
         $available_plans = SubscriptionPlanHandler::getPlanList(false, false, true, null, true);
         $lists['attach_to_plans'] = JHTML::_('select.genericlist', $available_plans, 'attach_to_plans[]', 'size="1" multiple="multiple" class="select2-bootstrap"', 'value', 'text', null);
         $available_groups = ItemGroupHandler::getGroups(null, true);
         $lists['attach_to_groups'] = JHTML::_('select.genericlist', $available_groups, 'attach_to_groups[]', 'size="1" multiple="multiple" class="select2-bootstrap"', 'value', 'text', null);
     }
     HTML_AcctExp::editMicroIntegration($mi, $lists, $aecHTML, $attached);
 }
Beispiel #5
0
 * @version $Id: upgrade_1_2_0.inc.php
 * @package AEC - Account Control Expiration - Membership Manager
 * @subpackage Install Includes
 * @copyright 2011-2015 Copyright (C) David Deutsch
 * @author David Deutsch <*****@*****.**> & Team AEC - http://www.valanx.org
 * @license GNU/GPL v.3 http://www.gnu.org/licenses/gpl.html or, at your option, any later version
 */
// Dont allow direct linking
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
$eucaInstalldb->addColifNotExists('hidden', "int(4) NOT NULL default '0'", 'microintegrations');
$eucaInstalldb->addColifNotExists('restrictions', "text NULL", 'microintegrations');
// Due to a bug around 1.2 development, ALL processors were installed. Frequently.
// This fixes them.
$processors = PaymentProcessorHandler::getInstalledObjectList();
if (count($processors) > 50) {
    $plans = SubscriptionPlanHandler::getPlanList();
    $used_processors = array();
    foreach ($plans as $planid) {
        $plan = new SubscriptionPlan();
        $plan->load($planid);
        if (empty($plan->params['processors'])) {
            continue;
        }
        foreach ($plan->params['processors'] as $processor_id) {
            if (in_array($processor_id, $used_processors)) {
                continue;
            }
            $used_processors[] = $processor_id;
        }
    }
    foreach ($processors as $processor) {
Beispiel #6
0
 public function readPlans()
 {
     $db = JFactory::getDBO();
     $r = array();
     $r['head'] = "Payment Plans";
     $r['type'] = "table";
     $r['def'] = array("ID" => array('id'), "Published" => array('active', 'bool'), "Visible" => array('visible', 'bool'), "Name" => array('name', 'smartlimit haslink', 'editSubscriptionPlan', 'id'), "Desc" => array('desc', 'notags smartlimit'), "Primary" => array(array('params', 'make_primary'), 'bool'), "Activate" => array(array('params', 'make_active'), 'bool'), "Update Exist." => array(array('params', 'update_existing'), 'bool'), "Override Activat." => array(array('params', 'override_activation'), 'bool'), "Override Reg. Email" => array(array('params', 'override_regmail'), 'bool'), "Set GID" => array(array('params', 'gid_enabled'), 'bool'), "GID" => array(array('params', 'gid'), 'list', 'gid'), "Standard Parent Plan" => array(array('params', 'standard_parent'), 'list', 'plan'), "Fallback Plan" => array(array('params', 'fallback'), 'list', 'plan'), "Free" => array(array('params', 'full_free'), 'bool'), "Cost" => array(array('params', 'full_amount')), "Lifetime" => array(array('params', 'lifetime'), 'bool'), "Period" => array(array('params', 'full_period')), "Unit" => array(array('params', 'full_periodunit')), "Free Trial" => array(array('params', 'trial_free'), 'bool'), "Trial Cost" => array(array('params', 'trial_amount')), "Trial Period" => array(array('params', 'trial_period')), "Trial Unit" => array(array('params', 'trial_periodunit')), "Has MinGID" => array(array('restrictions', 'mingid_enabled'), 'bool'), "MinGID" => array(array('restrictions', 'mingid'), 'list', 'gid'), "Has FixGID" => array(array('restrictions', 'fixgid_enabled'), 'bool'), "FixGID" => array(array('restrictions', 'fixgid'), 'list', 'gid'), "Has MaxGID" => array(array('restrictions', 'fixgid_enabled'), 'bool'), "MaxGID" => array(array('restrictions', 'fixgid'), 'list', 'gid'), "Requires Prev. Plan" => array(array('restrictions', 'previousplan_req_enabled'), 'bool'), "Prev. Plan" => array(array('restrictions', 'previousplan_req'), 'list', 'plan'), "Excluding Prev. Plan" => array(array('restrictions', 'previousplan_req_enabled_excluded'), 'bool'), "Excl. Prev. Plan" => array(array('restrictions', 'previousplan_req_excluded'), 'list', 'plan'), "Requires Curr. Plan" => array(array('restrictions', 'currentplan_req_enabled'), 'bool'), "Curr. Plan" => array(array('restrictions', 'currentplan_req'), 'list', 'plan'), "Excluding Curr. Plan" => array(array('restrictions', 'currentplan_req_enabled_excluded'), 'bool'), "Excl. Curr. Plan" => array(array('restrictions', 'currentplan_req_excluded'), 'list', 'plan'), "Requires Overall Plan" => array(array('restrictions', 'overallplan_req_enabled'), 'bool'), "Overall Plan" => array(array('restrictions', 'overallplan_req'), 'list', 'plan'), "Excluding Overall. Plan" => array(array('restrictions', 'overallplan_req_enabled_excluded'), 'bool'), "Excl. Overall. Plan" => array(array('restrictions', 'overallplan_req_excluded'), 'list', 'plan'), "Min Used Plan" => array(array('restrictions', 'used_plan_min_enabled'), 'bool'), "Min Used Plan Amount" => array(array('restrictions', 'used_plan_min_amount')), "Min Used Plans" => array(array('restrictions', 'used_plan_min'), 'list', 'plan'), "Max Used Plan" => array(array('restrictions', 'used_plan_max_enabled'), 'bool'), "Max Used Plan Amount" => array(array('restrictions', 'used_plan_max_amount')), "Max Used Plans" => array(array('restrictions', 'used_plan_max'), 'list', 'plan'), "Custom Restrictions" => array(array('restrictions', 'custom_restrictions_enabled'), 'bool'), "Restrictions" => array(array('restrictions', 'custom_restrictions')));
     $plans = SubscriptionPlanHandler::getPlanList(null, null, isset($_POST['use_ordering']));
     $r['set'] = array();
     foreach ($plans as $planid) {
         $plan = new SubscriptionPlan();
         $plan->load($planid);
         $ps = array();
         foreach ($r['def'] as $nn => $def) {
             $ps = array_merge($ps, $this->conversionHelper($def, $plan));
         }
         $r['set'][] = $ps;
     }
     return $r;
 }