Example #1
0
 /**
  * @before _secure
  */
 public function settings()
 {
     $this->seo(array("title" => "Campaign: Settings"));
     $view = $this->getActionView();
     $user = $this->user;
     $org = $this->org;
     if (RM::type() === 'DELETE') {
         switch (RM::get("action")) {
             case 'commDel':
                 $comm = Commission::first(['_id' => RM::get("comm_id"), "org_id" => $this->org->_id]);
                 if ($comm) {
                     $comm->delete();
                     $view->set('message', 'Commission removed!!');
                 } else {
                     $view->set('message', 'Invalid request!!');
                 }
                 return;
         }
     }
     if (RM::type() == 'POST') {
         $action = RM::post('action', '');
         switch ($action) {
             case 'commadd':
             case 'commedit':
                 $fields = ['model' => RM::post('model'), 'rate' => RM::post('rate'), 'coverage' => RM::post('coverage') ?? ['ALL']];
                 $comm_id = RM::post('comm_id');
                 if ($comm_id) {
                     $comm = Commission::first(['_id' => $comm_id, 'org_id' => $this->org->_id]);
                     if (!$comm) {
                         $view->set('Invalid Request!!');
                         break;
                     }
                 } else {
                     $comm = new Commission(['org_id' => $this->org->_id]);
                 }
                 foreach ($fields as $key => $value) {
                     $comm->{$key} = $value;
                 }
                 $comm->save();
                 //echo "<pre>", print_r($_POST), "</pre>";die();
                 $view->set('message', 'Commission saved successfully!!');
                 break;
             case 'domains':
                 $message = $org->updateDomains();
                 $this->setOrg($org);
                 $view->set('message', $message);
                 break;
             case 'categories':
                 $success = Category::updateNow($this->org);
                 if ($success) {
                     $msg = 'Categories updated Successfully!!';
                 } else {
                     $msg = 'Failed to delete some categories because in use by campaigns!!';
                 }
                 $view->set('message', $msg);
                 break;
         }
         $this->setUser($user);
     }
     $commissions = Commission::all(['org_id' => $this->org->_id]);
     $categories = \Category::all(['org_id' => $this->org->_id]);
     $view->set('categories', $categories)->set('hideRevenue', true)->set('commissions', $commissions);
 }