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; }
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; }