Exemplo n.º 1
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>";
 }