function actionEmployees($params) { $result['success'] = false; $company = \GO\Addressbook\Model\Company::model()->findByPk($params['company_id']); if (!$company->checkPermissionLevel(\GO\Base\Model\Acl::WRITE_PERMISSION)) { throw new \GO\Base\Exception\AccessDenied(); } if (isset($params['delete_keys'])) { $response['deleteSuccess'] = true; try { $delete_contacts = json_decode($params['delete_keys']); foreach ($delete_contacts as $id) { $contact = \GO\Addressbook\Model\Contact::model()->findByPk($id); $contact->setAttributes(array('id' => $id, 'company_id' => 0)); $contact->save(); } } catch (\Exception $e) { $response['deleteFeedback'] = $strDeleteError; $response['deleteSuccess'] = false; } } if (isset($params['add_contacts'])) { $add_contacts = json_decode($params['add_contacts']); foreach ($add_contacts as $id) { $contact = \GO\Addressbook\Model\Contact::model()->findByPk($id); $contact->setAttributes(array('id' => $id, 'company_id' => $params['company_id'])); $contact->save(); } } $params['field'] = isset($params['field']) ? $params['field'] : 'addressbook_name'; $store = new \GO\Base\Data\Store($this->getStoreColumnModel()); $this->formatColumns($store->getColumnModel()); $response['success'] = true; $storeParams = $store->getDefaultParams($params)->criteria(\GO\Base\Db\FindCriteria::newInstance()->addCondition('company_id', $params['company_id']))->mergeWith($this->getStoreParams($params)); $store->setStatement(call_user_func(array('GO\\Addressbook\\Model\\Contact', 'model'))->find($storeParams)); return array_merge($response, $store->getData()); }