예제 #1
0
 /**
  * Add new message to OrderChat
  * @param $orderId
  * @return array<string,integer>
  * @throws BadRequestHttpException
  */
 public function actionSendToOrderChat($orderId)
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     /** @var Order $order */
     $order = Order::findOne($orderId);
     if (null === $order) {
         throw new BadRequestHttpException();
     }
     $message = new OrderChat();
     $message->loadDefaultValues();
     $message->message = Yii::$app->request->post('message');
     $message->order_id = $order->id;
     $message->user_id = Yii::$app->user->id;
     if ($message->save()) {
         if ($order->manager_id != Yii::$app->user->id) {
             Notification::addNotification($order->manager_id, Yii::t('app', 'Added a new comment to <a href="{orderUrl}" target="_blank">order #{orderId}</a>', ['orderUrl' => Url::toRoute(['/backend/order/view', 'id' => $order->id]), 'orderId' => $order->id]), 'Order', 'info');
         }
         $message->refresh();
         $user = $message->user;
         return ['status' => 1, 'message' => $message->message, 'user' => null !== $user ? $user->username : Yii::t('app', 'Unknown'), 'gravatar' => null !== $user ? $user->gravatar() : null, 'date' => $message->date];
     }
     return ['status' => 0];
 }
예제 #2
0
 /**
  * @param bool $insert
  * @param array $changedAttributes
  */
 public function afterSave($insert, $changedAttributes)
 {
     parent::afterSave($insert, $changedAttributes);
     if (empty($changedAttributes)) {
         return;
     }
     if (!isset($this->task_options['create_notification']) || false == $this->task_options['create_notification']) {
         return;
     }
     if (self::STATUS_ACTIVE === $this->status) {
         Notification::addNotification($this->initiator, 'Задание "' . $this->description . '" добавлено в очередь.', 'Задание', 'info');
     } else {
         if (self::STATUS_RUNNING === $this->status) {
             Notification::addNotification($this->initiator, 'Задание "' . $this->description . '" выполняется.', 'Задание', 'info');
         } else {
             if (self::STATUS_COMPLETED === $this->status) {
                 Notification::addNotification($this->initiator, 'Задание "' . $this->description . '" успешно выполнено.', 'Задание', 'success');
             } else {
                 if (self::STATUS_FAILED === $this->status) {
                     Notification::addNotification($this->initiator, 'Задание "' . $this->description . '" завершилось с ошибкой.', 'Задание', 'danger');
                 }
             }
         }
     }
 }