Exemple #1
0
 /**
  * Устанавливает статус для заказа "Оплата подтверждена магазином" self::STATUS_PAID_SHOP
  * Прикрепляет билеты для заказа
  *
  * @param string $message - сообщение для статуса
  *
  * @return bool
  */
 public function paid($message = null)
 {
     // выдача билетов
     $tickets_counter = $this->getProduct()->getField('tickets_counter');
     for ($i = 0; $i < $tickets_counter; $i++) {
         Ticket::insert(['request_id' => $this->getId(), 'code' => substr(str_shuffle("012345678901234567890123456789"), 0, 12), 'date_insert' => time()]);
     }
     $this->addStatusToShop(self::STATUS_PAID_CLIENT);
     $this->addStatusToClient(self::STATUS_PAID_SHOP);
     $this->update(['is_paid' => 1]);
     $dostavka = $this->getField('dostavka');
     switch ($dostavka) {
         case 1:
             $this->addStatusToClient(self::STATUS_DOSTAVKA_GET_MYSELF_POLET_WAIT);
             break;
         case 2:
             $this->addStatusToClient(self::STATUS_DOSTAVKA_GET_MYSELF_VOZNESENIE_WAIT);
             break;
         case 3:
             $this->addStatusToClient(['status' => self::STATUS_DOSTAVKA_MOSCOW_WAIT, 'message' => 'Наш посланник пытается с вами связаться для передачи подарка']);
             break;
         case 4:
             $this->addStatusToClient(['status' => self::STATUS_DOSTAVKA_RUSSIA_PREPARE, 'message' => 'Подарок находится в режиме подготовки к отправке']);
             break;
         case 5:
             $this->addStatusToClient(['status' => self::STATUS_DOSTAVKA_WORLD_PREPARE, 'message' => 'Подарок находится в режиме подготовки к отправке']);
             break;
     }
     // отправка письма
     Application::mail($this->getClient()->getEmail(), 'Ваш подарок', 'new_request_client', ['request' => $this]);
     Application::mail(\Yii::$app->params['mailer']['payment'], 'Заказ оплачен', 'new_request_shop', ['request' => $this]);
     // прибавление счетчика
     \app\models\Counter::inc($this->getProduct()->getPrice());
     return true;
 }