public function countUsedMembers(Model $model, $owner_id)
 {
     App::uses('GroupLimit', 'Model');
     App::uses('Group', 'Model');
     $groupModel = new Group();
     $groupLimitModel = new GroupLimit();
     $memberCounts = $groupModel->find('list', array('fields' => array('Group.id', 'Group.active_members'), 'conditions' => array('Group.owner_id' => $owner_id)));
     $totalPaidMembers = 0;
     foreach ($memberCounts as $count) {
         if ($count - 6 > 0) {
             $totalPaidMembers += $count - 6;
         }
     }
     $limit = $groupLimitModel->findByOwnerId($owner_id);
     if (!empty($limit)) {
         $groupLimitModel->id = $limit['GroupLimit']['id'];
         $groupLimitModel->saveField('members_used', $totalPaidMembers, array('validate' => false, 'callbacks' => false, 'counterCache' => false));
     }
     return $totalPaidMembers;
 }
Example #2
0
 public function afterSave($created, $options = array())
 {
     if ($created) {
         App::uses('GroupLimit', 'Model');
         $groupLimitModel = new GroupLimit();
         $groupLimitModel->save(array('owner_id' => $this->data['User']['id'], 'members_used' => 0, 'members_limit' => 0));
         $this->bindEvent($this->data['User']);
         $user_id = $this->getLastInsertID();
         App::uses('Group', 'Model');
         $groupModel = new Group();
         $data = array('Group' => array('owner_id' => $user_id, 'title' => __('My Group'), 'hidden' => 1, 'cat_id' => 0), 'GroupAdministrator' => array('role' => __('Administrator'), 'user_id' => $user_id, 'approved' => 1, 'sort_order' => 0, 'show_main' => 1, 'approve_date' => date('Y-m-d H:i:s')));
         $data['Group']['finance_project_id'] = $groupModel->addFinanceProject($data['Group'], $user_id, true);
         $groupModel->saveAssociated($data);
     }
     return true;
 }