diff --git a/common/models/Project.php b/common/models/Project.php index 0c1f454..c2195bf 100644 --- a/common/models/Project.php +++ b/common/models/Project.php @@ -32,6 +32,7 @@ * @property Specialization[] $specializations * @property Currency $budgetCurrency * @property Project $parent + * @property int $hidden */ class Project extends \yii\db\ActiveRecord { @@ -137,10 +138,37 @@ 'min' => 1, ], [ - [ 'deadline' ], + [ + 'deadline', + ], 'default', 'value' => 1, ], + [ + [ 'date_end' ], + 'default', + 'value' => date('Y-m-d H:i:s'), + ], + [ + [ 'hidden' ], + 'boolean', + ], + [ + ['hidden'], + 'default', + 'value' => 0, + ], + [ + ['date_end'], + 'filter', + 'filter' => function($value) { + $unix = strtotime($value); + if($unix <= time()) { + $unix = time() + (3600 * 24 * 7); + } + return date('Y-m-d', $unix); + } + ] ]; } @@ -171,6 +199,7 @@ 'specializationInput' => Yii::t('app', 'Специализации'), 'paymentInput' => Yii::t('app', 'Способ оплаты'), 'specializationString' => Yii::t('app', 'Специализации'), + 'hidden' => Yii::t('app', 'Снять проект с тендера'), ]; } diff --git a/common/models/ProjectSearch.php b/common/models/ProjectSearch.php index 1166813..98ae2d5 100644 --- a/common/models/ProjectSearch.php +++ b/common/models/ProjectSearch.php @@ -15,6 +15,7 @@ public $date_add_from; public $date_add_to; + public $budget_approx; /** * @inheritdoc */ @@ -39,6 +40,7 @@ 'date_add', 'date_end', 'budget', + 'budget_approx', 'city', 'street', 'house', @@ -190,6 +192,11 @@ $this->file, ]); + if(!empty($this->budget_approx)) { + $query->andWhere(['between', 'budget', ($this->budget_approx - ($this->budget_approx/10)), ($this->budget_approx + ($this->budget_approx/10))]); + $query->andWhere(['not', ['contractual' => 1]]); + } + return $dataProvider; } } diff --git a/console/migrations/m160321_132138_project_add_status.php b/console/migrations/m160321_132138_project_add_status.php new file mode 100644 index 0000000..2450b4f --- /dev/null +++ b/console/migrations/m160321_132138_project_add_status.php @@ -0,0 +1,16 @@ +addColumn('{{%project}}', 'hidden', $this->integer()->defaultValue(0)); + } + + public function down() + { + $this->dropColumn('{{%project}}', 'hidden'); + } +} diff --git a/frontend/controllers/AccountsController.php b/frontend/controllers/AccountsController.php index a84add2..5a039e1 100755 --- a/frontend/controllers/AccountsController.php +++ b/frontend/controllers/AccountsController.php @@ -649,19 +649,7 @@ } $project->validate(); if(!$project->hasErrors()) { - $date_end = new \DateTime(); - switch($post[ 'Project' ][ 'date_end' ]) { - case 2: - $date_end->modify('+14 day'); - break; - case 3: - $date_end->modify('+30 day'); - break; - default: - $date_end->modify('+7 day'); - }; - $project->date_end = \Yii::$app->formatter->asDate($date_end->getTimestamp(), 'short'); - $project->save(); + $project->save(false); $project->unlinkAll('specializations', true); foreach($project->specializationInput as $one_specialization) { $project->link('specializations', Specialization::findOne($one_specialization)); @@ -747,19 +735,7 @@ } $project->validate(); if(!$project->hasErrors()) { - $date_end = new \DateTime(); - switch($post[ 'Project' ][ 'date_end' ]) { - case 2: - $date_end->modify('+14 day'); - break; - case 3: - $date_end->modify('+30 day'); - break; - default: - $date_end->modify('+7 day'); - }; - $project->date_end = \Yii::$app->formatter->asDate($date_end->getTimestamp(), 'short'); - $project->save(); + $project->save(false); $project->unlinkAll('specializations', true); foreach($project->specializationInput as $one_specialization) { $project->link('specializations', Specialization::findOne($one_specialization)); diff --git a/frontend/views/accounts/_projects_form.php b/frontend/views/accounts/_projects_form.php index b0e4e96..d7c2f3d 100644 --- a/frontend/views/accounts/_projects_form.php +++ b/frontend/views/accounts/_projects_form.php @@ -14,6 +14,7 @@ use kartik\select2\Select2; use mihaildev\ckeditor\CKEditor; use yii\helpers\Html; + use yii\jui\DatePicker; use yii\web\JsExpression; use yii\widgets\ActiveForm; @@ -210,6 +211,20 @@ + +