public function save()
 {
     $order = Zakaz::model()->findByPk($this->orderId);
     if ($order && $this->file instanceof CUploadedFile && ($order->status == 2 || $order->status == 3 || $order->status == 4)) {
         $dir = Yii::getPathOfAlias('webroot') . self::$folder;
         if (!is_dir($dir)) {
             mkdir($dir, 0775, true);
         }
         $paymentImage = new PaymentImage();
         $paymentImage->project_id = $order->id;
         $paymentImage->image = md5(uniqid('')) . '.' . $this->file->extensionName;
         $paymentImage->save(false);
         //$order->status = 3;
         //$order->save(false);
         $this->file->saveAs($dir . $paymentImage->image);
     }
 }
 public function init()
 {
     // --- Организации
     $c_id = Campaign::getId();
     if ($c_id) {
         Payment::$table_prefix = $c_id . '_';
         //Profile::$table_prefix = $c_id.'_';
         //ProfileField::$table_prefix = $c_id.'_';
         ProjectChanges::$table_prefix = $c_id . '_';
         ProjectChanges::$file_path = 'uploads/c' . $c_id . '/changes_documents';
         //ProjectMessages::$table_prefix = $c_id.'_';
         ProjectPayments::$table_prefix = $c_id . '_';
         Zakaz::$table_prefix = $c_id . '_';
         Zakaz::$files_folder = '/uploads/c' . $c_id . '/';
         Events::$table_prefix = $c_id . '_';
         ZakazParts::$table_prefix = $c_id . '_';
         UpdateProfile::$table_prefix = $c_id . '_';
         ZakazPartsFiles::$table_prefix = $c_id . '_';
         PaymentImage::$table_prefix = $c_id . '_';
         Emails::$table_prefix = $c_id . '_';
         Yii::app()->language = Campaign::getLanguage();
     } else {
         ProjectChanges::$file_path = 'uploads/changes_documents';
     }
     // ---
     if (!Yii::app()->user->isGuest) {
         switch (User::model()->getUserRole()) {
             case 'Manager':
             case 'Admin':
                 Yii::app()->theme = 'admin';
                 break;
             case 'Author':
                 $this->menu = array(array('label' => Yii::t('site', 'My orders'), 'url' => array('/project/zakaz/ownList')), array('label' => Yii::t('site', 'New projects'), 'url' => array('/project/zakaz/list')), array('label' => Yii::t('site', 'Profile'), 'url' => array('/user/profile/edit')), array('label' => Yii::t('site', 'Logout'), 'url' => array('/user/logout')));
                 $this->authMenu = array(array('label' => Yii::t('site', 'Logout'), 'url' => array('/user/logout')));
                 Yii::app()->theme = 'client';
                 break;
             case 'Customer':
                 $this->menu = array(array('label' => Yii::t('site', 'My orders'), 'url' => array('/project/zakaz/customerOrderList')), array('label' => Yii::t('site', 'Create order'), 'url' => array('/project/zakaz/create')), array('label' => Yii::t('site', 'Profile'), 'url' => array('/user/profile/edit')), array('label' => Yii::t('site', 'Logout'), 'url' => array('/user/logout')));
                 $this->authMenu = array(array('label' => Yii::t('site', 'Logout'), 'url' => array('/user/logout')));
                 Yii::app()->theme = 'client';
                 break;
         }
     }
     //		var_dump(Yii::app()->controller->module->id ,Yii::app()->controller->id, Yii::app()->controller->action->id);
     //		die();
 }
 public function actionUploadPayment($id)
 {
     $folder = Yii::getPathOfAlias('webroot') . PaymentImage::getFolder();
     $result = Tools::uploadMaterials($folder, false);
     echo htmlspecialchars(json_encode($result), ENT_NOQUOTES);
     if ($result['success'] && User::model()->isCustomer()) {
         $paymentImage = new PaymentImage();
         $paymentImage->project_id = $id;
         $paymentImage->image = $result['fileName'];
         $paymentImage->save(false);
         EventHelper::chekUploaded($id);
     }
 }
 public function actionManagersCancel()
 {
     $this->_prepairJson();
     $orderId = $this->_request->getParam('order_id');
     $payment = ProjectPayments::model()->find('order_id = :ORDER_ID', array('ORDER_ID' => $orderId));
     $payment->to_receive = 0;
     if ($payment->save()) {
         PaymentImage::model()->remove($orderId);
         $this->_response->setData(array('to_receive' => $payment->to_receive));
     } else {
         $this->_response->setData(array('to_receive' => $payment->to_receive));
     }
     $this->_response->send();
 }
            ?
            <div class="hint-block_content">
                <?php 
    echo $this->hints['Zakaz_cancel'];
    ?>
            </div>
        </div>
        <?php 
}
?>
		<div class="btn-group-xs inline-block" role="group">
		<?php 
if ($zakaz) {
    $i = 1;
    foreach ($zakaz->images as $item) {
        echo CHtml::link(ProjectModule::t('Cheque') . $i++, PaymentImage::getFolder() . $item->image, array('target' => '_blank')) . ' ';
    }
}
?>
		</div>
	</div>
	<?php 
//}
?>
	<?php 
$disable = '';
?>
	<?php 
if (Yii::app()->user->isGuest) {
    $disabled = ' disabled;';
}
 /**
  *  Вывод и добавление сообщений
  */
 public function actionIndex($orderId, $role = null)
 {
     $isCorrector = $role == 'Corrector' ? 1 : 0;
     $isGuest = Yii::app()->user->isGuest;
     if ($isGuest) {
         $url = 'http://' . $_SERVER['SERVER_NAME'] . '/user/login';
         $this->redirect($url);
     }
     Yii::app()->session['project_id'] = $orderId;
     $order = Zakaz::model()->resetScope()->findByPk($orderId);
     if (Yii::app()->request->isAjaxRequest) {
         if (Yii::app()->request->getPost('ProjectMessages')) {
             $id = (int) $_POST['ProjectMessages']['id'];
             if ($id > 0) {
                 // редактирование сообщения
                 $model = ProjectMessages::model()->findByPk($id);
             } else {
                 // новое сообщение
                 $model = new ProjectMessages();
                 $model->sender = Yii::app()->user->id;
                 $model->moderated = 0;
                 $model->order = $orderId;
             }
             $post = $_POST['ProjectMessages']['message'];
             $post = str_replace("\r\n", '<br>', $post);
             $post = str_replace("\n", '<br>', $post);
             $_POST['ProjectMessages']['message'] = $post;
             $model->attributes = Yii::app()->request->getPost('ProjectMessages');
             $model->date = date('Y-m-d H:i:s');
             switch ($model->recipient) {
                 case 'author_to_manager':
                     $model->sender_role = ProjectMessages::model()->getRoleId('Author');
                     $model->recipient_role = ProjectMessages::model()->getRoleId('Admin');
                     $model->recipient = 1;
                     break;
                 case 'customer_to_manager':
                     $model->sender_role = ProjectMessages::model()->getRoleId('Customer');
                     $model->recipient_role = ProjectMessages::model()->getRoleId('Admin');
                     $model->recipient = 1;
                     break;
                 case 'corrector_to_manager':
                     $model->sender_role = ProjectMessages::model()->getRoleId('Corrector');
                     $model->recipient_role = ProjectMessages::model()->getRoleId('Admin');
                     $model->recipient = 1;
                     break;
                 case 'author_to_customer':
                     $model->sender_role = ProjectMessages::model()->getRoleId('Author');
                     $model->recipient_role = ProjectMessages::model()->getRoleId('Customer');
                     $model->recipient = Zakaz::model()->findByPk($orderId)->attributes['user_id'];
                     break;
                 case 'corrector_to_customer':
                     $model->sender_role = ProjectMessages::model()->getRoleId('Corrector');
                     $model->recipient_role = ProjectMessages::model()->getRoleId('Customer');
                     $model->recipient = Zakaz::model()->findByPk($orderId)->attributes['user_id'];
                     break;
                 case 'customer_to_author':
                     $model->sender_role = ProjectMessages::model()->getRoleId('Customer');
                     $model->recipient_role = ProjectMessages::model()->getRoleId('Author');
                     $model->recipient = Zakaz::model()->resetScope()->findByPk($orderId)->attributes['executor'];
                     break;
                 case 'corrector_to_author':
                     $model->sender_role = ProjectMessages::model()->getRoleId('Corrector');
                     $model->recipient_role = ProjectMessages::model()->getRoleId('Author');
                     $model->recipient = Zakaz::model()->resetScope()->findByPk($orderId)->attributes['executor'];
                     break;
                 case 'author_to_corrector':
                     $model->sender_role = ProjectMessages::model()->getRoleId('Author');
                     $model->recipient_role = ProjectMessages::model()->getRoleId('Corrector');
                     $model->recipient = -2;
                     break;
                 case 'customer_to_corrector':
                     $model->sender_role = ProjectMessages::model()->getRoleId('Customer');
                     $model->recipient_role = ProjectMessages::model()->getRoleId('Corrector');
                     $model->recipient = -2;
                     break;
             }
             $model->save();
             EventHelper::addMessage($orderId, $model->message);
         }
         $this->renderPartial('chat', array('order' => $order, 'orderId' => $orderId, 'isGuest' => $isGuest));
         Yii::app()->end();
     }
     if (User::model()->isAuthor() && (!User::model()->isCorrector() || !$order->technicalspec) && !User::model()->isExecutor($orderId)) {
         $this->redirect(Yii::app()->createUrl('/project/chat/view', array('orderId' => $orderId)));
     }
     if (User::model()->isCustomer() && $order->user_id != Yii::app()->user->id) {
         $this->redirect('/');
     }
     $parts = ZakazParts::model()->findAll(array('condition' => "`proj_id`='{$orderId}'"));
     if (User::model()->isExecutor($order->id)) {
         $order->executor_event = null;
     }
     if (User::model()->isCustomer()) {
         $order->customer_event = null;
     }
     $order->save(false);
     $moderate_types = EventHelper::get_moderate_types_string();
     $events = Events::model()->findAll(array('condition' => "`event_id`='{$orderId}' AND `type` in ({$moderate_types})", 'order' => 'timestamp DESC'), array(':event_id' => $orderId));
     $PaymentImages = PaymentImage::model()->findAll(array('condition' => "`project_id`='{$orderId}'"));
     $moderated = count($events) == 0;
     $this->render('index', array('orderId' => $orderId, 'order' => $order, 'executor' => Zakaz::getExecutor($orderId), 'moderated' => $moderated, 'parts' => $parts, 'PaymentImages' => $PaymentImages, 'isCorrector' => $isCorrector));
 }