OSDN Git Service

Исправлен список всех перемещений. Добавлен тест проверки возможности открытия этого...
[invent/invent.git] / views / moving / _form.php
1 <?php
2
3 use yii\helpers\Html;
4 use yii\helpers\ArrayHelper;
5 use yii\widgets\ActiveForm;
6
7 use yii\jui\DatePicker;
8
9
10 use app\models\Status;
11 use app\models\Locations;
12 use app\models\Regions;
13
14 /* @var $this yii\web\View */
15 /* @var $model app\models\Moving */
16 /* @var $form yii\widgets\ActiveForm */
17
18
19     // Создание сортированного списка для выбора состояний оборудования
20     $states = ArrayHelper::map(Status::find()->orderBy('name')->all(), 'id', 'name');
21
22     $defState = [];
23
24     // Создание сортированного списка для выбора расположения оборудования
25     $locations[ 'empty' ] = Yii::t('locations', 'Select location');
26     $locArray = ArrayHelper::map(Locations::find()->joinWith('regions')->orderBy('name')->all(), 'id', 'name');
27     foreach ($locArray as $key => $val)
28     {
29         $locArray[$key] = $val . ' (' .
30             Regions::findOne([ 'id' => Locations::findOne(['id' => $key])->region_id ])->name .
31             ')';
32     }
33     $locations = ArrayHelper::merge($locations, $locArray);
34     $defLocate = [ 'options' => [ 'empty' => [ 'Disabled' => 'true' ], ]];
35
36
37     // Создание сортированного списка для выбора состояний оборудования
38     $states = ArrayHelper::map(Status::find()->orderBy('name')->all(), 'id', 'name');
39
40     // Значения по умолчанию для случая создания нового
41
42     $minDate = date('d.m.Y', strtotime('1990-01-01'));
43     $maxDate = date('d.m.Y');
44
45     if ($model->isNewRecord)
46     {
47         $defState    = [ 'options' => [ Status::findOne([ 'name' => 'Работает' ])->id => [ 'Selected' => 'true' ] ]];
48         $defLocate   = [ 'options' => [ 'empty' => [ 'Disabled' => 'true' ], Locations::findOne([ 'name' => 'Матвейково' ])->id => [ 'Selected' => 'true' ]] ];
49         $model->date = date('d.m.Y');
50     }
51
52
53 ?>
54
55 <div class="moving-form">
56
57     <?php $form = ActiveForm::begin([
58         'id' => 'MovingForm',
59     ]); ?>
60
61     <?= $form->field($model, 'date', [ 'template' => '<div class="row"><div class="col-md-2">{label}</div><div class="col-md-7">{input}</div><div class="col-md-8">{error}</div></div>' ])
62         ->widget(
63             DatePicker::className(),
64             [ 'language'   => 'ru',
65               'dateFormat' => 'dd.MM.yyyy',
66               'clientOptions' => [
67               'todayHighlight' => true,
68               'minDate' => $minDate,
69               'maxDate' => $maxDate,
70               ],
71             ],
72         ) ?>
73
74     <?= $form->field($model, 'item_id')->hiddenInput()->label(false) ?>
75
76     <?= $form->field($model,
77             'state_id',
78             [ 'template' => '<div class="row"><div class="col-md-2">{label}</div><div class="col-md-2">{input}</div><div class="col-md-8">{error}</div></div>' ])
79             ->dropDownList($states, $defState)
80             ->label(Yii::t('status', 'Status')) ?>
81
82     <?= $form->field(
83             $model,
84             'location_id',
85             [ 'template' => '<div class="row"><div class="col-md-2">{label}</div><div class="col-md-5">{input}</div><div class="col-md-2">' .
86                 Html::a(
87                     Yii::t('locations', 'Locations'),
88                     ['locations/index'],
89                     ['class' => 'btn btn-primary']) .
90                 '</div><div class="col-md-8">{error}</div></div>'])
91             ->dropDownList($locations, $defLocate)
92             ->label(Yii::t('locations', 'Location'))
93     ?>
94
95     <?= $form->field($model, 'comment')->textarea([ 'rows' => 6 ]) ?>
96
97     <div class="form-group">
98         <?= Html::submitButton(Yii::t('app', 'Save'),   [ 'class' => 'btn btn-success' ]) ?>
99         <?= Html::a(           Yii::t('app', 'Cancel'), [ 'items/update', 'id' => $model->item_id ], [ 'class' => 'btn btn-primary' ]) ?>
100     </div>
101
102     <?php ActiveForm::end(); ?>
103
104 </div>