コード例 #1
0
 /**
  * Cоздание заказа на базе проекта.
  */
 public function actionNewProjectOrder()
 {
     //@todo: на период разработки резерва заказов
     if (!tservices_helper::isAllowOrderReserve()) {
         $this->missingAction(null);
     }
     $offer_id = __paramInit('int', 'offer_id', 'offer_id', null);
     $projects = new projects();
     $projectData = $projects->getProjectByOfferId($offer_id, $this->uid);
     if (!$projectData) {
         $this->missingAction(null);
     }
     $freelancer = new freelancer();
     $freelancer->GetUserByUID($projectData['frl_id']);
     if ($freelancer->uid <= 0) {
         $this->missingAction(null);
     }
     $form = new NewOrderForm();
     $form->setDefaults(array('title' => addslashes(htmlspecialchars_decode($projectData['name'], ENT_QUOTES)), 'description' => addslashes(htmlspecialchars_decode($projectData['descr'], ENT_QUOTES)), 'order_price' => $projectData['currency'] == 2 ? $projectData['cost'] : ''));
     if (isset($_POST) && sizeof($_POST) > 0 && $form->isValid($_POST)) {
         $data = $form->getValues();
         $data['frl_id'] = $freelancer->uid;
         $data['emp_id'] = $this->uid;
         $data['tu_id'] = $projectData['id'];
         if ($order = $this->order_model->createFromProject($data)) {
             $projects->SetExecutor($projectData['id'], $projectData['frl_id'], $projectData['user_id']);
             $tservices_smail = new tservices_smail();
             $tservices_smail->newOrder($order);
             $this->redirect(sprintf(tservices_helper::url('order_card_url'), $order['id']));
         }
     }
     //Выводим в сайдбар виджет индикатор статуса заказа
     $this->getClips()->add('sidebar', $this->widget('OrderStatusIndicator', array(), true));
     $this->render('new-order-form', array('title' => 'Новый заказ по проекту', 'submit_title' => 'Выбрать исполнителем и предложить заказ', 'cansel_url' => getFriendlyURL('project', $projectData), 'form' => $form, 'freelancer' => $freelancer));
 }