/** * Добавление заявки * * @return string * * @throws NotFoundHttpException */ public function actionLead() { $error = false; if (!isset($_POST['token']) && !isset($_POST['form_id'])) { $error = true; } $form = Form::findOne(['form_id' => (int) $_POST['form_id'], 'is_deleted' => false]); if (!$form) { $error = true; } $landing = Landing::findOne(['landing_id' => $form->getLandingId(), 'is_deleted' => false]); if (!$landing) { $error = true; } if ($_POST['token'] != $landing->getKeyAuth()) { $error = true; } if ($error) { echo 'error'; } else { $lead = new Lead(); $lead->setLandingId($landing->getLandingId()); $lead->setCompanyId($landing->getCompanyId()); $lead->setFormId($form->getFormId()); $lead->setStatus(Lead::STATUS_OPEN); if (!empty($_POST['price'])) { $lead->setPrice($_POST['price']); } $lead->setData(json_encode($_POST['fields'])); $lead->save(); echo 'ok'; } die; }
/** * Установка причины отказа от заявки. * * @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 Lead|bool */ public function save() { if ($this->leadId) { $lead = Lead::findOne(['lead_id' => $this->leadId]); } else { $lead = new Lead(); } if ($lead->getStatus() && $lead->getStatus() != $this->getStatus()) { $lead->setChangeStatusUserId($this->userId); } $lead->setLandingId($this->landingId); $lead->setFormId($this->formId); $lead->setUserId($this->userId); $lead->setCompanyId($this->companyId); $lead->setStatus($this->status); $lead->setPrice($this->price); $leadData = []; foreach ($this->data as $fieldName => $fieldValue) { $leadData[] = ['name' => $fieldName, 'label' => $fieldValue['label'], 'value' => $fieldValue['value']]; } $lead->setData(json_encode($leadData)); $lead->save(); return $lead ?: false; }
/** * Изменение статуса */ public function actionChangestatus() { if (Yii::$app->getRequest()->getIsAjax() && Yii::$app->getRequest()->post()) { Yii::$app->getResponse()->format = Response::FORMAT_JSON; $params = Yii::$app->getRequest()->post(); if (empty($params['userId']) || empty($params['leadId']) || empty($params['selectedStatus'])) { return ['status' => false]; } /** @var \common\models\User $user */ $user = User::findIdentity($params['userId']); /** @var \common\models\Lead $lead */ $lead = Lead::findOne(['lead_id' => $params['leadId'], 'company_id' => $user->getCompanyId(), 'is_deleted' => false]); if (!$lead) { return ['status' => false]; } $lead->setStatus($params['selectedStatus']); $lead->setChangeStatusUserId($params['userId']); $status = $lead->save(); $this->leadLogger->write($lead, LeadActionLog::ACTION_CHANGE_STATUS); return ['status' => $status, 'selectedStatus' => $params['selectedStatus'], 'result' => ChangeLeadStatusWidget::widget(['userId' => $params['userId'], 'leadId' => $params['leadId'], 'status' => $params['selectedStatus']])]; } $this->redirect('/lead/index'); }
?> ">Профиль</a></li> <li class="divider"></li> <li><a href="<?php echo Url::to('/logout'); ?> ">Выйти</a></li> </ul> </div> <div class="logo-element"> IN+ </div> </li> <?php $request = Yii::$app->getRequest(); echo MainMenuWidget::widget(['menu' => [['label' => 'Главная', 'url' => '/', 'icon' => 'home', 'active' => '/' == $request->getUrl()], ['label' => 'Профиль', 'url' => '/profile', 'icon' => 'user', 'active' => '/profile' == $request->getUrl()], ['label' => 'Компания', 'url' => '/company', 'icon' => 'building', 'active' => '/company' == $request->getUrl()], ['label' => 'Сотрудники', 'url' => '/users', 'icon' => 'users', 'roles' => ['boss'], 'active' => preg_match("/^\\/user\\/.*|\\/users/", $request->getUrl())], ['label' => 'Промо-страницы', 'url' => '/landing', 'icon' => 'bullhorn', 'active' => preg_match("/^\\/landing\\/.*|\\/landing/", $request->getUrl())], ['label' => 'Заявки', 'url' => '/lead', 'icon' => 'bell', 'active' => preg_match("/^\\/lead\\/.*|^\\/lead/", $request->getUrl()), 'notification' => ['type' => 'warning', 'value' => \common\models\Lead::find()->where(['status' => \common\models\Lead::STATUS_OPEN, 'is_deleted' => false, 'company_id' => Yii::$app->getUser()->getIdentity()->getCompanyId()])->count()]]], 'user' => Yii::$app->getUser()]); ?> </ul> </div> </nav> <div id="page-wrapper" class="gray-bg"> <div class="row border-bottom"> <nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0"> <!--div class="navbar-header"> <a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="#"><i class="fa fa-bars"></i> </a> <form role="search" class="navbar-form-custom" method="post" action="search_results.html"> <div class="form-group"> <input type="text" placeholder="Search for something..." class="form-control" name="top-search" id="top-search"> </div> </form> </div-->
/** * @return \common\models\Lead */ public function getLead() { return $this->hasOne(Lead::className(), ['lead_id' => 'lead_id'])->one(); }