Пример #1
0
 public function getCampaignNumber()
 {
     $name = Yii::app()->user->guestName;
     if (strpos($name, 'uest') == 0) {
         return false;
     }
     // только для гостя
     if (isset($_REQUEST['campaignId'])) {
         $campaignId = (int) $_REQUEST['campaignId'];
         $campaign = Campaign::model()->findByPk($campaignId);
         $orderId = 0;
         if (isset($_REQUEST['orderId'])) {
             $orderId = (int) $_REQUEST['orderId'];
         }
         if (!$orderId) {
             return $campaign_id;
         }
         $order = Zakaz::model()->find('id=:id', array(':id' => $orderId));
         if ($campaign) {
             $domains = explode(',', $campaign->domains);
             $domain = $domains[0];
             $_SERVER['SERVER_NAME'] = $domain;
             return true;
         }
     }
     $campaigns = Campaign::model()->findAll();
     foreach ($campaigns as $campaign) {
         $domains = explode(',', $campaign->domains);
         $domain = $domains[0];
         $_SERVER['SERVER_NAME'] = $domain;
         if ($this->getCampaignNumber()) {
             return true;
         }
     }
 }
Пример #2
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Zal the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Zakaz::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
 public function renderForm($payments)
 {
     $userRole = User::model()->getUserRole();
     if ($userRole == 'Admin') {
         $userRole = 'Manager';
     }
     $this->render('view' . $userRole, array('model' => $payments, 'projectId' => $this->projectId, 'zakaz' => Zakaz::model()->findByPk($this->projectId)));
 }
Пример #4
0
 public function actionIndex()
 {
     $this->active_link = 'dashboard';
     //count users
     $users = User::model()->count('status != ' . User::STATUS_DELETED);
     $games = Games::model()->count();
     $zakaz = Zakaz::model()->active()->count();
     $this->render('dashboard', array('users' => $users, 'games' => $games, 'zakaz' => $zakaz));
 }
 public function yiichat_list_posts($chat_id, $identity, $last_id, $data)
 {
     $res = parent::yiichat_list_posts($chat_id, $identity, $last_id, $data);
     if (count($res) > 0) {
         $order = Zakaz::model()->findByPk($chat_id);
     }
     foreach ($res as $k => $v) {
         $res1[$k] = $v->attributes;
         $res1[$k]['sender'] = array();
         $res1[$k]['sender']['fullusername'] = $res[$k]->senderObject->email;
         $res1[$k]['sender']['superuser'] = $res[$k]->senderObject->getRelated('AuthAssignment')->attributes;
         $res1[$k]['sender']['rating'] = (int) $res[$k]->senderObject->profile->rating;
         switch ($res1[$k]['sender']['superuser']['itemname']) {
             case 'Admin':
                 $res1[$k]['sender']['username'] = '******';
                 break;
             case 'Manager':
                 $res1[$k]['sender']['username'] = '******';
                 break;
             case 'Author':
                 $res1[$k]['sender']['username'] = '******';
                 break;
             case 'Customer':
                 $res1[$k]['sender']['username'] = '******';
                 break;
         }
         $res1[$k]['sender']['username'] = $res1[$k]['sender']['fullusername'];
         if ($res[$k]->recipient > 0) {
             $res1[$k]['recipient'] = array();
             $res1[$k]['recipient']['fullusername'] = $res[$k]->recipientObject->email;
             $res1[$k]['recipient']['superuser'] = $res[$k]->recipientObject->getRelated('AuthAssignment')->attributes;
             switch ($res1[$k]['recipient']['superuser']['itemname']) {
                 case 'Admin':
                     $res1[$k]['recipient']['username'] = '******';
                     break;
                 case 'Manager':
                     $res1[$k]['recipient']['username'] = '******';
                     break;
                 case 'Author':
                     $res1[$k]['recipient']['username'] = '******';
                     break;
                 case 'Customer':
                     $res1[$k]['recipient']['username'] = '******';
                     break;
             }
             //$res1[$k]['recipient']['username']=$res1[$k]['recipient']['fullusername'];
         }
     }
     return $res1;
 }
 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 actionSend()
 {
     $email = new Emails();
     $this->_prepairJson();
     $orderId = $this->_request->getParam('orderId');
     $typeId = $this->_request->getParam('typeId');
     $back = $this->_request->getParam('back');
     $cost = $this->_request->getParam('cost');
     $order = Zakaz::model()->findByPk($orderId);
     $arr_type = array(Emails::TYPE_18, Emails::TYPE_19, Emails::TYPE_20, Emails::TYPE_21, Emails::TYPE_22, Emails::TYPE_23, Emails::TYPE_24);
     if (in_array($typeId, $arr_type)) {
         $user_id = $order->executor;
     } else {
         $user_id = $order->user_id;
     }
     if (!$user_id) {
         Yii::app()->end();
     }
     $user = User::model()->findByPk($user_id);
     $email->to_id = $user_id;
     $profile = Profile::model()->findAll("`user_id`='{$user_id}'");
     $rec = Templates::model()->findAll("`type_id`='{$typeId}'");
     $title = $rec[0]->title;
     $email->name = $profle->full_name;
     if (strlen($email->name) < 2) {
         $email->name = $user->username;
     }
     $email->login = $user->username;
     $email->num_order = $orderId;
     $email->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $orderId;
     $email->message = $rec[0]->text;
     $email->price_order = $cost;
     $email->sum_order = $cost;
     $specials = Catalog::model()->findByPk($order->specials);
     $email->specialization = $specials->cat_name;
     $email->name_order = $order->title;
     $email->subject_order = $order->title;
     $email->sendTo($user->email, $rec[0]->title, $rec[0]->text, $typeId);
 }
 public function actionSend()
 {
     $model = new Emails();
     $this->_prepairJson();
     $orderId = $this->_request->getParam('orderId');
     $typeId = $this->_request->getParam('typeId');
     $back = $this->_request->getParam('back');
     $cost = $this->_request->getParam('cost');
     $order = Zakaz::model()->findByPk($orderId);
     $arr_type = array(Emails::TYPE_18, Emails::TYPE_19, Emails::TYPE_20, Emails::TYPE_21, Emails::TYPE_22, Emails::TYPE_23, Emails::TYPE_24);
     if (in_array($typeId, $arr_type)) {
         $user = User::model()->findByPk($order->executor);
     } else {
         $user = User::model()->findByPk($order->user_id);
     }
     $model->to_id = $user->id;
     $profile = Profile::model()->findAll("`user_id`='{$user->id}'");
     $rec = Templates::model()->findAll("`type_id`='{$typeId}'");
     $title = $rec[0]->title;
     $model->name = $profle->firstname;
     if (strlen($model->name) < 2) {
         $model->name = $user->username;
     }
     $model->login = $user->username;
     $model->num_order = $orderId;
     $model->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $orderId;
     $model->message = $rec[0]->text;
     $model->price_order = $cost;
     $this->sum_order = $cost;
     $model->sendTo($user->email, $rec[0]->text, $typeId);
     $model->save();
     /*		
     		if (!isset($back)) $back = 'index';
             $this->render($back, [
                 'model'=>$model
             ]);
     */
 }
 /**
  *  Вывод и добавление сообщений
  */
 public function actionIndex($orderId)
 {
     Yii::app()->session['project_id'] = $orderId;
     if (Yii::app()->request->isAjaxRequest) {
         if (Yii::app()->request->getPost('ProjectMessages')) {
             $model = new ProjectMessages();
             $model->sender = Yii::app()->user->id;
             $model->moderated = 0;
             $model->order = $orderId;
             $model->attributes = Yii::app()->request->getPost('ProjectMessages');
             $model->date = date('Y-m-d H:i:s');
             switch ($model->recipient) {
                 case 'manager':
                     $model->recipient = 1;
                     break;
                 case 'customer':
                     if (User::model()->isCustomer()) {
                         $model->recipient = Zakaz::model()->resetScope()->findByPk($orderId)->attributes['executor'];
                     }
                     if (User::model()->isAuthor()) {
                         $model->recipient = Zakaz::model()->findByPk($orderId)->attributes['user_id'];
                     }
                     break;
             }
             $model->save();
             EventHelper::addMessage($orderId, $model->message);
         }
         $this->renderPartial('chat', array('orderId' => $orderId));
         Yii::app()->end();
     }
     $model = Zakaz::model()->resetScope()->findByPk($orderId);
     if (isset($_POST['Zakaz'])) {
         $model->attributes = $_POST['Zakaz'];
         $model->save();
     }
     $this->render('index', array('orderId' => $orderId, 'executor' => Zakaz::getExecutor($orderId)));
 }
Пример #11
0
	<?php 
$provider = $model->search('1,2,3');
$this->widget('zii.widgets.grid.CGridView', array('id' => 'buh_transaction_out', 'dataProvider' => $provider, 'filter' => $model, 'columns' => array(array('name' => 'order_id', 'type' => 'raw', 'value' => function ($data) {
    return CHtml::link($data->order_id, array('zakaz/update', 'id' => $data->order_id));
}, 'footer' => $provider->itemCount), array('name' => 'receive_date', 'value' => function ($data) {
    if ($data->receive_date) {
        return date('d.m.Y H:i:s', strtotime($data->receive_date));
    }
}), array('name' => 'pay_date', 'value' => function ($data) {
    if ($data->pay_date) {
        return date('d.m.Y H:i:s', strtotime($data->pay_date));
    }
}), array('name' => 'zakaz.title'), array('header' => 'Спец', 'name' => 'zakaz.catalog_spec1.cat_name'), array('header' => 'Спец2', 'value' => function ($data) {
    //$columns = Yii::app()->db->createCommand("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" . Company::getId() . "_projects'")->queryRow();
    $specials2 = false;
    $projectFields = Zakaz::model()->getFields();
    foreach ($projectFields as $field) {
        if ($field->varname == 'specials2') {
            $specials2 = true;
        }
    }
    if ($specials2) {
        if (isset($data->zakaz->catalog_specials2)) {
            return $data->zakaz->catalog_specials2->cat_name;
        }
    } else {
        return false;
    }
}), array('name' => 'manager', 'type' => 'raw', 'value' => function ($data) {
    return CHtml::link($data->manager, array('/user/admin/view', 'id' => $data->profileManager->id));
}), array('name' => 'user', 'type' => 'raw', 'value' => function ($data) {
 /**
  *  Вывод и добавление сообщений
  */
 public function actionIndex($orderId)
 {
     $isGuest = Yii::app()->user->isGuest;
     Yii::app()->session['project_id'] = $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 'manager':
                     $model->recipient = 1;
                     break;
                 case 'customer':
                     if (User::model()->isCustomer()) {
                         $model->recipient = Zakaz::model()->resetScope()->findByPk($orderId)->attributes['executor'];
                         $type_id = Emails::TYPE_20;
                     } else {
                         if (User::model()->isAuthor()) {
                             $model->recipient = Zakaz::model()->findByPk($orderId)->attributes['user_id'];
                             $type_id = Emails::TYPE_16;
                         }
                     }
                     $user = User::model()->findByPk($model->recipient);
                     $profile = Profile::model()->findAll("`user_id`='{$model->recipient}'");
                     $email = new Emails();
                     $rec = Templates::model()->findAll("`type_id`='{$type_id}'");
                     $title = $rec[0]->title;
                     $body = $rec[0]->text;
                     $email->name = $user->full_name;
                     if (strlen($email->name) < 2) {
                         $email->name = $user->username;
                     }
                     $email->num_order = $orderId;
                     $email->message = $post;
                     $email->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $orderId;
                     $email->sendTo($user->email, $body, $type_id);
                     break;
             }
             //print_r($model);
             //echo '<br>$model->save()='.$model->save();
             EventHelper::addMessage($orderId, $model->message);
         }
         $this->renderPartial('chat', array('orderId' => $orderId, 'isGuest' => $isGuest));
         Yii::app()->end();
     }
     $order = Zakaz::model()->resetScope()->findByPk($orderId);
     $parts = ZakazParts::model()->findAll(array('condition' => "`proj_id`='{$orderId}'"));
     if ($isGuest) {
         Yii::app()->theme = 'client';
         // если гость прошёл по ссылке на неcуществующий
         // проект, отправляем его на регистрацию
         $url = 'http://' . $_SERVER['SERVER_NAME'] . '/';
         if (!$order) {
             $this->redirect($url);
         }
         $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));
         $moderated = count($events) == 0;
         // если гость прошёл по ссылке на непромодерированный
         // проект, отправляем его на регистрацию
         if (!$moderated) {
             $this->redirect(Yii::app()->createUrl('user/login'));
         }
         //			Catalog::model()->tableName();
         //$EmptyChat = UserModule::t('EmptyChat');
         $this->render('index', array('orderId' => $orderId, 'order' => $order, 'executor' => Zakaz::getExecutor($orderId), 'moderated' => $moderated, 'isGuest' => $isGuest, 'parts' => $parts));
         Yii::app()->end();
     }
     $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));
     $moderated = count($events) == 0;
     $this->render('index', array('orderId' => $orderId, 'order' => $order, 'executor' => Zakaz::getExecutor($orderId), 'moderated' => $moderated, 'isGuest' => $isGuest, 'parts' => $parts));
 }
Пример #13
0
 public function isExecutor($project_id)
 {
     if (Yii::app()->user->id && $this->getUserRole() == 'Author') {
         $zakaz = Zakaz::model()->findByPk($project_id);
         if (Yii::app()->user->id == $zakaz->executor) {
             return true;
         } else {
             return false;
         }
     } else {
         return FALSE;
     }
 }
Пример #14
0
<?php

require_once __DIR__ . '/../autoload.php';
require_once __DIR__ . '/../function.php';
if (!empty($_GET['$i']) && !empty($_GET['id'])) {
    $i = (int) $_GET['$i'];
    $id = (int) $_GET['id'];
    $name = getUser();
    $zakaz = new Zakaz();
    $zakazes = $zakaz::findAll();
    foreach ($zakazes as $value) {
        if ($i == 3) {
            $zakaz->deleteById($id);
        } elseif ($i == 2) {
            $zakaz->updateStatus($i, $id, $name);
        } elseif ($i == 1) {
            $zakaz->updateStatus($i, $id, $name);
        } elseif ($i == 4) {
            $zakaz->updateStatus($i, $id, $name);
        }
        /*if(get_id() == $id)
                {
                    ++$golos;
                    $memory = new Golos();
                    $memory->updateById($id,$golos);
                }
        */
    }
}
header('location: /../views/admin.php');
 public function manager()
 {
     // Дата информирования менеджера
     $projectsModel = Zakaz::model()->findAll('status<>:status', array(':status' => 5));
     foreach ($projectsModel as $project) {
         $dateStart = strtotime(date('Y-m-d H:i', time())) - self::INTERVAL * 60;
         //echo 'order #'.$project->id.' '.$project->title.': '.$project->manager_informed."\n";
         if (strtotime(date('Y-m-d H:i', strtotime($project->manager_informed))) >= $dateStart && strtotime(date('Y-m-d H:i', strtotime($project->manager_informed))) < strtotime(date('Y-m-d H:i', time()))) {
             //echo Company::getId().' #'.$project->id.' manager informed'."\n";
             Yii::import('application.modules.project.components.EventHelper');
             EventHelper::managerInformed($project->id);
         }
     }
     // У части заказа незавершенного заказа
     $projectsPartsModel = ZakazParts::model()->findAllByAttributes(array('status_id' => '1'));
     foreach ($projectsPartsModel as $projectStage) {
         $dateStart = strtotime(date('Y-m-d H:i', time())) - self::INTERVAL * 60;
         if (strtotime(date('Y-m-d H:i', strtotime($projectStage->date))) >= $dateStart && strtotime(date('Y-m-d H:i', strtotime($projectStage->date))) < strtotime(date('Y-m-d H:i', time()))) {
             Yii::import('application.modules.project.components.EventHelper');
             EventHelper::stageExpired($projectStage->proj_id);
         }
     }
 }
Пример #16
0
 public function isOwner($project_id)
 {
     if (Yii::app()->user->id && $this->getUserRole() == 'Customer') {
         $zakaz = Zakaz::model()->findByPk($project_id);
         if (Yii::app()->user->id == $zakaz->user_id) {
             return true;
         } else {
             return false;
         }
     } else {
         return FALSE;
     }
 }
Пример #17
0
 public function yiichat_list_posts($chat_id, $identity, $last_id, $data)
 {
     $res = parent::yiichat_list_posts($chat_id, $identity, $last_id, $data);
     if (count($res) > 0) {
         $order = Zakaz::model()->findByPk($chat_id);
     }
     foreach ($res as $k => $v) {
         $res1[$k] = $v->attributes;
         $res1[$k]['sender'] = array();
         $res1[$k]['sender']['fullusername'] = $res[$k]->senderObject->email;
         if ($res[$k]->senderObject) {
             $res1[$k]['sender']['superuser'] = $res[$k]->senderObject->getRelated('AuthAssignment')->attributes;
         }
         // При удалённом пользователе необходима проверка
         $res1[$k]['sender']['rating'] = (int) $res[$k]->senderObject->profile->rating;
         switch ($res1[$k]['sender']['superuser']['itemname']) {
             case 'Admin':
                 $res1[$k]['sender']['username'] = ProjectModule::t('Admin');
                 //'Админ';
                 break;
             case 'Manager':
                 $res1[$k]['sender']['username'] = ProjectModule::t('Manager');
                 //'Менеджер';
                 break;
             case 'Author':
                 if (ProjectMessages::model()->getRole($res1[$k]['sender_role']) == 'Corrector') {
                     $res1[$k]['sender']['username'] = ProjectModule::t('Corrector');
                 } else {
                     $res1[$k]['sender']['username'] = ProjectModule::t('Executor');
                 }
                 //'Автор';
                 break;
             case 'Customer':
                 $res1[$k]['sender']['username'] = ProjectModule::t('Customer');
                 //'Заказчик';
                 break;
         }
         $res1[$k]['sender']['username'] = $res1[$k]['sender']['fullusername'];
         if ($res[$k]->recipient > 0) {
             $res1[$k]['recipient'] = array();
             $res1[$k]['recipient']['fullusername'] = $res[$k]->recipientObject->email;
             $res1[$k]['recipient']['superuser'] = $res[$k]->recipientObject->getRelated('AuthAssignment')->attributes;
             switch ($res1[$k]['recipient']['superuser']['itemname']) {
                 case 'Admin':
                     $res1[$k]['recipient']['username'] = ProjectModule::t('to admin');
                     //'админу';
                     break;
                 case 'Manager':
                     $res1[$k]['recipient']['username'] = ProjectModule::t('to manager');
                     //'менеджеру';
                     break;
                 case 'Author':
                     if (ProjectMessages::model()->getRole($res1[$k]['recipient_role']) == 'Corrector') {
                         $res1[$k]['recipient']['username'] = ProjectModule::t('to corrector');
                     } else {
                         $res1[$k]['recipient']['username'] = ProjectModule::t('to executor');
                     }
                     //'автору';
                     break;
                 case 'Customer':
                     $res1[$k]['recipient']['username'] = ProjectModule::t('to customer');
                     //'заказчику';
                     break;
             }
             //$res1[$k]['recipient']['username']=$res1[$k]['recipient']['fullusername'];
         }
         if ($res1[$k]['sender_role']) {
             $res1[$k]['sender_role'] = ProjectMessages::model()->getRole($res1[$k]['sender_role']);
         }
     }
     return $res1;
 }
 public function init()
 {
     $this->childs = Zakaz::model()->findAllByAttributes(['parent_id' => $this->project->id]);
 }
 /**
  * Returns true if current user can add changes, else false
  *
  * @return bool
  */
 public function isAllowedAdd()
 {
     if (User::model()->isManager() | User::model()->isAdmin()) {
         return true;
     }
     $project = Zakaz::model()->findByPk($this->project_id);
     if (User::model()->isAuthor() || !$project) {
         return false;
     }
     if (!Yii::app()->user->isGuest && Yii::app()->user->id == $project->user_id) {
         return true;
     }
     return false;
 }
 /**
  *  Вывод и добавление сообщений
  */
 public function actionIndex($orderId)
 {
     $isGuest = Yii::app()->user->guestName;
     if ($isGuest) {
         Yii::app()->theme = 'client';
         $order = Zakaz::model()->resetScope()->findByPk($orderId);
         // если гость прошёл по ссылке на неcуществующий
         // проект, отправляем его на регистрацию
         $url = 'http://' . $_SERVER['SERVER_NAME'] . '/';
         if (!$order) {
             $this->redirect($url);
         }
         $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));
         $moderated = count($events) == 0;
         // если гость прошёл по ссылке на непромодерированный
         // проект, отправляем его на регистрацию
         if (!$moderated) {
             $this->redirect(Yii::app()->createUrl('user/login'));
         }
         //			Catalog::model()->tableName();
         $this->render('index', array('orderId' => $orderId, 'order' => $order, 'executor' => Zakaz::getExecutor($orderId), 'moderated' => $moderated, 'isGuest' => $isGuest, 'parts' => ZakazParts::model()->findAll(array('condition' => "`proj_id`='{$orderId}'"))));
         Yii::app()->end();
     }
     Yii::app()->session['project_id'] = $orderId;
     if (Yii::app()->request->isAjaxRequest) {
         if (Yii::app()->request->getPost('ProjectMessages')) {
             $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 'manager':
                     $model->recipient = 1;
                     break;
                 case 'customer':
                     if (User::model()->isCustomer()) {
                         $model->recipient = Zakaz::model()->resetScope()->findByPk($orderId)->attributes['executor'];
                     }
                     if (User::model()->isAuthor()) {
                         $model->recipient = Zakaz::model()->findByPk($orderId)->attributes['user_id'];
                     }
                     break;
             }
             $model->save();
             EventHelper::addMessage($orderId, $model->message);
         }
         $this->renderPartial('chat', array('orderId' => $orderId, 'isGuest' => $isGuest));
         Yii::app()->end();
     }
     $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));
     $moderated = count($events) == 0;
     $this->render('index', array('orderId' => $orderId, 'order' => $order, 'executor' => Zakaz::getExecutor($orderId), 'moderated' => $moderated, 'isGuest' => $isGuest));
 }
Пример #21
0
<?php

if ($model->parent_id) {
    ?>
<h7 class="center"><?php 
    echo ProjectModule::t('Parent order');
    ?>
:&nbsp;</h7>
<div class="col-xs-12 parentBlock">
	<?php 
    //CHtml::dropDownList('Zakaz_parent_id', $model->parent_id, CHtml::listData(Zakaz::model()->findAllByAttributes(['user_id'=>$model->user_id], 'id <> :id', array(':id' => $model->id)), 'id', 'title'),
    //		array('empty' => ' ', 'data-order-number' => $model->id));
    $parent = Zakaz::model()->findByPk($model->parent_id);
    echo '<a href="' . Yii::app()->createUrl('project/chat', array('orderId' => $model->parent_id)) . '">' . $model->parent_id . ': ' . $parent->title . '</a><br>';
    //echo Tools::hint($hints['Zakaz_status'], 'hint-block __status');
    ?>
	<!--<button class="btn btn-primary btn-spam" onclick="spam(<?php 
    echo $model->id;
    ?>
);" href=""></button>-->
</div>
<?php 
}
if (count($childs)) {
    ?>
	<h7 class="center"><?php 
    echo ProjectModule::t('Order childrens');
    ?>
:&nbsp;</h7>
	<div class="col-xs-12 childsBlock">
		<?php 
 public function actionManagersApprove()
 {
     new UploadPaymentImage();
     /////////////////////////////////////////////////////////////
     $this->_prepairJson();
     $orderId = $this->_request->getParam('order_id');
     $payment = ProjectPayments::model()->find('order_id = :ORDER_ID', array('ORDER_ID' => $orderId));
     $payment->received = $payment->received + $payment->to_receive;
     $to_res = $payment->to_receive;
     $payment->to_receive = 0;
     if ($payment->save() && $to_res != 0) {
         $order = Zakaz::model()->findByPk($orderId);
         PaymentImage::model()->approve($order->id);
         if ($order->status < 3) {
             $order->status = 3;
         }
         $order->save();
         //
         $buh = new Payment();
         $buh->approve = 0;
         $buh->order_id = $orderId;
         $buh->receive_date = date('Y-m-d');
         $buh->theme = $order->title;
         $user = User::model()->findByPk($order->user_id);
         $buh->user = $user->email;
         $buh->summ = $to_res;
         $buh->payment_type = 0;
         $manag = User::model()->findByPk(Yii::app()->user->id);
         $buh->manager = $manag->email;
         $buh->save();
         $this->_response->setData(array('received' => $payment->received));
     } else {
         $this->_response->setData(array('received' => $payment->received));
     }
     $this->_response->send();
 }
 public function actionView($orderId)
 {
     $order = Zakaz::model()->resetScope()->findByPk($orderId);
     $parts = ZakazParts::model()->findAll(array('condition' => "`proj_id`='{$orderId}'"));
     $messageForAuthor = Templates::model()->getTemplate(Templates::TYPE_AUTHOR_RESPONSE_PROJECT);
     //$isGuest = Yii::app()->user->isGuest;
     $isGuest = Yii::app()->user->isGuest();
     if ($isGuest || User::model()->isManager()) {
         Yii::app()->theme = 'client';
         // если гость прошёл по ссылке на неcуществующий
         // проект, отправляем его на регистрацию
         $url = 'http://' . $_SERVER['SERVER_NAME'] . '/user/login';
         if (!$order) {
             $this->redirect($url);
         }
         /*$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) 			
         		);
         		$moderated = count($events) == 0;
         		// если гость прошёл по ссылке на непромодерированный
         		// проект, отправляем его на регистрацию
         		if (!$moderated) $this->redirect( Yii::app()->createUrl('user/login'));
         		*/
     } elseif (Yii::app()->user->id == $order->executor) {
         // Current executor
         $this->redirect(Yii::app()->createUrl('/project/chat', array('orderId' => $orderId)));
     }
     if ($isGuest || User::model()->isAuthor()) {
         $buttonTemplates = Templates::model()->findAllByAttributes(array('type_id' => $isGuest ? 30 : 29));
     }
     $this->render('view', array('orderId' => $orderId, 'order' => $order, 'isGuest' => $isGuest, 'parts' => $parts, 'messageForAuthor' => $messageForAuthor, 'buttonTemplates' => $buttonTemplates));
     //Yii::app()->end();
 }
 public function actionStatus()
 {
     $row = array('status_id' => Yii::app()->request->getPost('status_id'));
     $id = Yii::app()->request->getPost('id');
     $condition = array();
     $params = array();
     ZakazParts::model()->updateByPk($id, $row, $condition, $params);
     if ($row['status_id'] == 3) {
         $email = new Emails();
         $orderId = Yii::app()->request->getPost('id');
         $typeId = Emails::TYPE_14;
         $order = Zakaz::model()->findByPk($orderId);
         $user = User::model()->findByPk($order->user_id);
         $email->to_id = $user->id;
         $profile = Profile::model()->findAll("`user_id`='{$user->id}'");
         $rec = Templates::model()->findAll("`type_id`='{$typeId}'");
         $title = $rec[0]->title;
         $email->name = $profle->firstname;
         if (strlen($email->name) < 2) {
             $email->name = $user->username;
         }
         $email->login = $user->username;
         $email->num_order = $orderId;
         $email->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $orderId;
         $email->message = $rec[0]->text;
         echo '<br>$user->email=' . $user->email;
         $email->sendTo($user->email, $rec[0]->text, $typeId);
     }
     Yii::app()->end();
 }
 public function actionApiCreate()
 {
     $this->_prepairJson();
     $zakazId = $this->_request->getParam('orderId');
     $zakaz = Zakaz::model()->findByPk($zakazId);
     $model = new ZakazParts();
     $model->proj_id = $zakaz->id;
     $model->title = $this->_request->getParam('name');
     $model->author_id = $zakaz->executor;
     if ($model->save()) {
         $this->_response->setData(array('result' => $model->id));
         $this->_response->send();
     } else {
         $this->_response->setData(array('result' => false));
         $this->_response->send();
     }
 }
Пример #26
0
		<?php 
echo $form->textField($model, 'sumout', array('class' => 'form-control'));
?>
		<?php 
echo $form->error($model, 'sumout');
?>
		</div>
	</div>
	
	<div class="form-group">
                <?php 
echo $form->labelEx($model, 'status', array('class' => 'col-sm-2 control-label'));
?>
                <div class="col-sm-10">
                <?php 
echo $form->dropDownList($model, 'status', Zakaz::getStatusNames(), array('encode' => false, 'class' => 'form-control', 'options' => array(Zakaz::STATUS_ZAKAZ => array('selected' => 'selected'))));
?>
                </div>
        </div>


	<div class="form-group">
		<?php 
echo CHtml::submitButton($model->isNewRecord ? 'Создать' : 'Сохранить', array('class' => 'btn btn-primary'));
?>
	</div>

<?php 
$this->endWidget();
?>
Пример #27
0
 public function init()
 {
     // --- Организации
     $c_id = Company::getId();
     if ($c_id) {
         if (Company::getCompany()->frozen) {
             echo 'Where is my money, dude ?!?!?!';
             die;
         }
         ProjectChanges::$file_path = 'uploads/c' . $c_id . '/changes_documents';
         Zakaz::$files_folder = '/uploads/c' . $c_id . '/';
         Yii::app()->language = Company::getLanguage();
     } else {
         $tmp = explode('.', $_SERVER['SERVER_NAME']);
         if (array_shift($tmp) == 'www') {
             $this->redirect('http://' . implode('.', $tmp));
         } else {
             echo 'Requested company not found.';
         }
         Yii::app()->end();
     }
     // ---
     if (!Yii::app()->user->isGuest) {
         switch (User::model()->getUserRole()) {
             case 'Manager':
             case 'Admin':
             case 'root':
                 Yii::app()->theme = 'admin';
                 break;
             case 'Author':
                 $menu[] = array('label' => Yii::t('site', 'My orders'), 'url' => array('/project/zakaz/ownList'));
                 $menu[] = array('label' => Yii::t('site', 'New projects'), 'url' => array('/project/zakaz/list'));
                 if (User::model()->isCorrector()) {
                     $menu[] = array('label' => Yii::t('site', 'New projects for technical'), 'url' => array('/project/zakaz/listtech'));
                     //if (Company::getCompany()->module_tree) $menu[] = array('label'=>Yii::t('site','Tree structure'), 'url'=>array('/project/zakaz/tree'));
                 }
                 if (Company::getCompany()->agreement4executors && Company::getCompany()->agreement4executors != '') {
                     $menu[] = array('label' => Yii::t('site', 'User Agreement'), 'url' => array('/site/agreement'));
                 }
                 //$menu[] = array('label'=>Yii::t('site','Personal account'), 'url'=>array('/user/profile/account'));
                 $menu[] = array('label' => Yii::t('site', 'Logout'), 'url' => array('/user/logout'));
                 // Далее выводится в обратном порядке
                 $menu[] = array('label' => Yii::t('site', 'Profile'), 'url' => array('/user/profile/edit'));
                 $this->menu = $menu;
                 Yii::app()->theme = 'client';
                 break;
             case 'Customer':
                 $menu[] = array('label' => Yii::t('site', 'My orders'), 'url' => array('/project/zakaz/customerOrderList'));
                 if (Company::getCompany()->module_tree) {
                     $menu[] = array('label' => Yii::t('site', 'Tree structure'), 'url' => array('/project/zakaz/tree'));
                 }
                 $menu[] = array('label' => Yii::t('site', 'Create order'), 'url' => array('/project/zakaz/create'));
                 //$menu[] = array('label'=>Yii::t('site','Personal account'), 'url'=>array('/user/profile/account'));
                 if (Company::getCompany()->agreement4customers && Company::getCompany()->agreement4customers != '') {
                     $menu[] = array('label' => Yii::t('site', 'User Agreement'), 'url' => array('/site/agreement'));
                 }
                 $menu[] = array('label' => Yii::t('site', 'Logout'), 'url' => array('/user/logout'));
                 // Даллее выводится в обратном порядке
                 $menu[] = array('label' => Yii::t('site', 'Profile'), 'url' => array('/user/profile/edit'));
                 $this->menu = $menu;
                 /*$this->authMenu = array(
                 		    array('label'=>Yii::t('site','Logout'), 'url'=>array('/user/logout')),
                 		);*/
                 Yii::app()->theme = 'client';
                 break;
             case 'Webmaster':
                 $this->menu = array(array('label' => Yii::t('site', 'Stats'), 'url' => array('/partner/stats')), array('label' => Yii::t('site', 'Promo materials'), 'url' => array('/partner/materials')), array('label' => Yii::t('site', 'Logout'), 'url' => array('/user/logout')), array('label' => Yii::t('site', 'Profile'), 'url' => array('/user/profile/edit')));
                 $this->authMenu = array(array('label' => Yii::t('site', 'Logout'), 'url' => array('/user/logout')));
                 Yii::app()->theme = 'client';
                 if (Yii::app()->getRequest()->getRequestUri() == '/project/zakaz/list') {
                     $this->redirect('/');
                 }
                 break;
         }
     }
     //		var_dump(Yii::app()->controller->module->id ,Yii::app()->controller->id, Yii::app()->controller->action->id);
     //		die();
 }
 public function actionManagersApprove()
 {
     // Approve payment image
     $this->_prepairJson();
     $orderId = $this->_request->getParam('order_id');
     $payment = ProjectPayments::model()->find('order_id = :ORDER_ID', array('ORDER_ID' => $orderId));
     if ($payment->to_receive != 0) {
         $summ = $payment->to_receive;
         $payment->received += $summ;
         $payment->to_receive = 0;
         if ($payment->save()) {
             $order = Zakaz::model()->findByPk($orderId);
             PaymentImage::model()->approve($order->id);
             if ($order->status < 3) {
                 $order->status = 3;
             }
             $order->save();
             if ($payment->received == $payment->project_price) {
                 $this->saveFullPaymentWebmasterLog($order);
             }
             //
             $buh = new Payment();
             $buh->approve = 0;
             $buh->order_id = $orderId;
             $buh->receive_date = date('Y-m-d H:i:s');
             $buh->theme = $order->title;
             $user = User::model()->findByPk($order->user_id);
             $buh->user = $user->email;
             $buh->summ = $summ;
             $buh->payment_type = Payment::INCOMING_CUSTOMER;
             $manag = User::model()->findByPk(Yii::app()->user->id);
             $buh->manager = $manag->email;
             $buh->save();
             //EventHelper::payForOrder($orderId);
             $this->_response->setData(array('received' => $payment->received));
         } else {
             $this->_response->setData(array('received' => $payment->received, 'error' => 'Can`t save...'));
         }
     }
     $this->_response->send();
 }
 public function yiichat_post($chat_id, $identity, $message, $postdata, $data)
 {
     $this->_chat_id = $chat_id;
     $this->_identity = $identity;
     $this->_data = $data;
     $message_filtered = trim($this->acceptMessage($message));
     if ($message_filtered != "") {
         $obj = array("order" => $chat_id, "sender" => $identity, "date" => date('Y-m-d H:i:s'), "message" => $message_filtered);
         $order = Zakaz::model()->findByPk($chat_id);
         if ($postdata['index'] == 0) {
             if ($postdata['recipient'] == 'Author') {
                 $obj['recipient'] = $order->attributes['executor'];
                 if ($obj['recipient'] == 0) {
                     $obj['recipient'] = -1;
                 }
             } elseif ($postdata['recipient'] == 'Customer') {
                 $obj['recipient'] = $order->attributes['user_id'];
                 /*} elseif (isset($postdata['recipient'])){
                 		$obj['recipient'] = $postdata['recipient'];*/
             } else {
                 $obj['recipient'] = 0;
             }
             $newid = $this->getDb()->createCommand()->insert($this->getTableName(), $obj);
         } else {
             if ($postdata['recipient'] == 'no') {
                 $obj['recipient'] = 0;
                 $newid = $this->getDb()->createCommand()->update($this->getTableName(), $obj, 'id=:id', array('id' => $postdata['index']));
             } else {
                 if ($postdata['recipient'] == 'redir') {
                     $sender = ProjectMessages::model()->findByPk($postdata['index'])->senderObject->AuthAssignment['itemname'];
                     $obj['sender'] = ProjectMessages::model()->findByPk($postdata['index'])->attributes['sender'];
                     $obj['moderated'] = 1;
                     if ($sender == 'Customer') {
                         $obj['recipient'] = $order->attributes['executor'];
                     }
                     if ($sender == 'Author') {
                         $obj['recipient'] = $order->attributes['user'];
                     }
                     $newid = $this->getDb()->createCommand()->insert($this->getTableName(), $obj);
                 } else {
                     if ($postdata['recipient'] == 'Customer') {
                         $obj['recipient'] = $order->attributes['user_id'];
                     }
                     if ($postdata['recipient'] == 'Author') {
                         $obj['recipient'] = $order->attributes['executor'];
                     }
                     if (is_numeric($postdata['recipient'])) {
                         $obj['recipient'] = $postdata['recipient'];
                     }
                     $newid = $this->getDb()->createCommand()->insert($this->getTableName(), $obj);
                 }
             }
         }
         // now retrieve the post
         $obj['recipient'] = User::model()->findByPk($obj['recipient']);
         $obj['recipient']->superuser = $obj['recipient']->getRelated('AuthAssignment');
         $obj['sender'] = User::model()->findByPk($obj['sender']);
         $obj['sender']->superuser = $obj['sender']->getRelated('AuthAssignment');
         $title = Catalog::model()->findByPk($order->specials)->cat_name . '. ' . $order->attributes['title'] . '. ' . Yii::t('site', 'You have received a new message.');
         $message = CHtml::link(Yii::t('site', 'Link to order page'), Yii::app()->createAbsoluteUrl('/project/chat', array('orderId' => $chat_id))) . '<br />' . $obj['message'];
         $headers = 'From: no-reply@' . $_SERVER['SERVER_NAME'] . "\r\n" . 'Reply-To: no-reply@' . $_SERVER['SERVER_NAME'] . "\r\n" . 'Content-Type: text/html; charset=utf-8;' . 'X-Mailer: PHP/' . phpversion();
         mail($obj['recipient']->attributes['email'], $title, $message, $headers);
         if ($postdata['flags']) {
             foreach ($postdata['flags'] as $v) {
                 switch ($v) {
                     case 'send_sms':
                         include_once "smsc_api.php";
                         list($sms_id, $sms_cnt, $cost, $balance) = send_sms(str_replace(['+', '-'], '', $obj['recipient']->profile->attributes['mob_tel']), $obj['message']);
                         break;
                     case 'send_email':
                         mail($obj['recipient']->attributes['email'], 'You receive new message in chat', $obj['message']);
                         break;
                 }
             }
         }
         $obj['time'] = date_format(date_create($obj['date']), 'd.m.Y H:i:s');
         $obj['owner'] = substr($this->getIdentityName(), 0, 20);
         return $obj;
     } else {
         return array();
     }
 }
Пример #30
0
<?php

/* @var $this ProjectMessagesController */
/* @var $model ProjectMessages */
/* @var $form CActiveForm */
$order = Zakaz::model()->resetScope()->findByPk($orderId);
Yii::app()->clientScript->registerScriptFile('/js/chat.js');
Yii::app()->getClientScript()->registerCssFile(Yii::app()->theme->baseUrl . '/css/custom.css');
?>
<div class="container">
    <div class="row r">
        <div class="col-xs-4">
            <div class="row">
				<?php 
if (User::model()->isCustomer()) {
    $to_recive = ProjectPayments::model()->findByAttributes(array('order_id' => $order->id))->to_receive;
    if ($to_recive > 0) {
        echo '<div class="col-xs-12 block-for-upload-chek">';
        $upload = new UploadPaymentImage();
        $form = $this->beginWidget('CActiveForm', array('id' => 'check-form', 'action' => ['zakaz/uploadPayment', 'id' => $order->id], 'enableAjaxValidation' => false, 'htmlOptions' => array('enctype' => 'multipart/form-data')));
        ?>
						<div class="to-pay">
							<span class="text-to-pay"><?php 
        echo ProjectModule::t('To pay');
        ?>
<span> <span class="value-to-pay"><? echo $to_recive; ?></span> <span class="rub">&#8381;</span>
						</div>
						<div class="row chek">
							<span class="text_scan"><?php 
        echo ProjectModule::t('Scan check');
        ?>