/** * Установка причины отказа от заявки. * * @todo Добавить вывод нотификаций! * @return array */ public function actionSelect() { if (Yii::$app->getRequest()->getIsAjax() && Yii::$app->getRequest()->post()) { Yii::$app->getResponse()->format = Response::FORMAT_JSON; $leadId = Yii::$app->getRequest()->post('leadId'); $refuseTypeId = Yii::$app->getRequest()->post('refuseTypeId'); /** @var \common\models\User $user */ $user = Yii::$app->getUser()->getIdentity(); $lead = Lead::findOne(['lead_id' => $leadId, 'company_id' => $user->getCompanyId(), 'is_deleted' => false]); if (!$lead) { return ['status' => false]; } // @todo Вынести сохранение причины отказа в компонент. $refuseType = Yii::$app->getRequest()->post('refuseType'); if (!empty($refuseType)) { $leadRefuseType = new LeadRefuseType(); $leadRefuseType->setUserId($user->getId()); $leadRefuseType->setCompanyId($user->getCompanyId()); $leadRefuseType->setType($refuseType); $leadRefuseType->save(); $refuseTypeId = $leadRefuseType->getLeadRefuseTypeId(); } $leadRefuse = new LeadRefuse(); $leadRefuse->setLeadId($leadId); $leadRefuse->setLeadRefuseTypeId($refuseTypeId); $leadRefuse->setUserId($user->getId()); $leadRefuse->save(); return ['status' => true]; } }
/** * Возвращает тип отказа от заявки. * * @return \backend\models\LeadRefuseType */ public function getLeadRefuseType() { return $this->hasOne(LeadRefuseType::className(), ['lead_refuse_type_id' => 'lead_refuse_type_id'])->one(); }
/** * Вывод модального окна вывода причин отказа от заявки. * * @return string */ public function run() { $leadRefuseTypes = LeadRefuseType::findAll(['company_id' => $this->lead->getCompanyId()]); return $this->render('modalWindowSelectRefuseTypeOfLead', ['leadRefuseTypes' => $leadRefuseTypes, 'lead' => $this->lead]); }