/**
  * Добавление заявки
  *
  * @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];
     }
 }
Example #3
0
 /**
  * Сохранение заявки.
  *
  * @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');
 }
Example #5
0
?>
">Профиль</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();
 }