public function save()
 {
     $this->trigger('beforeInsert');
     try {
         Contact::perform('AttachDocument', $this->getAttributes());
     } catch (ErrorResponseException $e) {
         $this->addError('title', $e->getMessage());
         return false;
     }
     return true;
 }
 public function actionChangeContact($contactId = null, $contactType = null, $domainId = null, $domainName = null)
 {
     if (!Yii::$app->request->isPost) {
         $model = $this->findModel($contactId);
         $model->scenario = 'change-contact';
         return $this->render('changeContact', ['countries' => $this->getRefs('country_code', 'hipanel'), 'askPincode' => Client::perform('HasPincode'), 'model' => $model, 'domainId' => $domainId, 'domainName' => $domainName, 'contactType' => $contactType]);
     } else {
         $model = new Contact(['scenario' => 'create']);
         if ($model->load(Yii::$app->request->post())) {
             $domainContactInfo = Domain::perform('GetContactsInfo', ['id' => $model->domainId]);
             $setContactOptions = ['domain' => $model->domainName, 'id' => $model->domainId];
             if ($model->save()) {
                 foreach (Domain::$contactOptions as $contact) {
                     $setContactOptions[$contact] = $contact === $model->contactType ? $model->id : $domainContactInfo[$contact]['id'];
                 }
                 Domain::perform('SetContacts', $setContactOptions);
                 $this->redirect(['@domain/view', 'id' => $model->domainId]);
             }
         }
     }
 }
 /**
  * @throws \HttpInvalidParamException
  *
  * @return string
  */
 public function actionModalContactsBody()
 {
     $ids = ArrayHelper::csplit(Yii::$app->request->post('ids'));
     $domainContactModels = [];
     if ($ids) {
         $domainContacts = Domain::perform('GetContacts', ArrayHelper::make_sub($ids, 'id'), true);
         foreach ($domainContacts as $item) {
             $domainContactModels[] = Domain::find()->populate([$item]);
         }
         $modelContactInfo = Contact::perform('GetList', ['domain_ids' => $ids, 'limit' => 1000], true);
         return $this->renderAjax('_modalContactsBody', ['domainContacts' => $domainContacts, 'modelContactInfo' => $modelContactInfo]);
     } else {
         return Yii::t('hipanel', 'No items selected');
     }
 }
 public static function type()
 {
     return Contact::type();
 }