From 35a302a8bad1d250a3699b664136bea2debc5e6c Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Mon, 2 Dec 2024 19:47:40 +0300 Subject: [PATCH] =?utf8?q?[ERP-242]=20=D1=81=D0=BF=D1=80=D1=8F=D1=82=D0=B0?= =?utf8?q?=D0=BB=20=D0=BF=D1=80=D0=B8=D0=BD=D0=B8=D0=BC=D0=B0=D1=8E=D1=89?= =?utf8?q?=D0=B5=D0=B3=D0=BE=20=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?utf8?q?=D0=B0=D1=8E=D1=89=D0=B5=D0=B3=D0=BE=20=D1=81=D0=BC=D0=B5=D0=BD?= =?utf8?q?=D1=83,=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B0=D1=8E=D1=89=D0=B8?= =?utf8?q?=D0=B9=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=91=D1=82=D1=81=D1=8F=20?= =?utf8?q?=D0=B0=D0=B2=D1=82=D0=BE=D0=BC=D0=B0=D1=82=D0=B8=D1=87=D0=B5?= =?utf8?q?=D1=81=D0=BA=D0=B8=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=B8=D0=B7=20?= =?utf8?q?=D0=BD=D1=83=D0=B6=D0=BD=D0=BE=D0=B9=20=D0=B3=D1=80=D1=83=D0=BF?= =?utf8?q?=D0=BF=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/ShiftTransferController.php | 45 ++++++++----------- ...er_nullable_start_start_shift_admin_id.php | 25 +++++++++++ erp24/records/ShiftTransfer.php | 4 +- erp24/views/shift-transfer/index.php | 10 ++++- erp24/views/shift-transfer/update.php | 25 +---------- erp24/views/shift-transfer/view.php | 2 +- 6 files changed, 57 insertions(+), 54 deletions(-) create mode 100755 erp24/migrations/m241202_163922_alter_table_shift_transfer_nullable_start_start_shift_admin_id.php diff --git a/erp24/controllers/ShiftTransferController.php b/erp24/controllers/ShiftTransferController.php index 0761ffa7..da7a58ba 100644 --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@ -40,32 +40,21 @@ class ShiftTransferController extends Controller return $this->render('index', compact('shiftTransfers', 'storeNameById', 'admins')); } - public static function getAdminsWithDrugieLast($storeGuids) + public function actionCreate() { - $adminIdsForStore = AdminStores::find()->select(['admin_id'])->where(['store_guid' => $storeGuids])->column(); - $adminArr = []; - $adminArrOther = []; - foreach (\yii_app\records\Admin::find()->with('adminGroup')->all() as $admin) { - if ($admin->group_id > 0 && in_array($admin->id, $adminIdsForStore)) { - $tmp = ['id' => $admin->id, 'name' => $admin->name, 'groupName' => $admin->adminGroup->name ?? "Другие"]; - if ($tmp['groupName'] == 'Другие') { - $adminArrOther[] = $tmp; - } else { - $adminArr[] = $tmp; - } - } - } - $adminArr = ArrayHelper::merge($adminArr, $adminArrOther); + $admin = Admin::findOne(Yii::$app->user->id); + if (!$admin || $admin->group_id == -1 || !in_array($admin->group_id, Admin::ADMIN_CABINET_GROUP_IDS)) { - return ArrayHelper::map($adminArr, 'id', 'name', 'groupName'); - } + Yii::$app->session->setFlash('error', 'Вы не водите в группы, разрешённые для управления передачей смены'); + + return $this->redirect('index'); + } - public function actionCreate() - { $shiftTransfer = new ShiftTransfer; $shiftTransfer->date = date('Y-m-d H:i:s'); $shiftTransfer->date_start = $shiftTransfer->date; $shiftTransfer->status_id = ShiftTransfer::STATUS_ID_INPUT_FACT_REMAINS; + $shiftTransfer->end_shift_admin_id = Yii::$app->user->id; $isCreate = true; @@ -77,14 +66,19 @@ class ShiftTransferController extends Controller } } - $admins = self::getAdminsWithDrugieLast($storeGuids); - - return $this->render('update', compact('shiftTransfer', 'isCreate', 'storeNameById', - 'admins')); + return $this->render('update', compact('shiftTransfer', 'isCreate', 'storeNameById')); } public function actionUpdate($id = null) { + $admin = Admin::findOne(Yii::$app->user->id); + if (!$admin || $admin->group_id == -1 || !in_array($admin->group_id, Admin::ADMIN_CABINET_GROUP_IDS)) { + + Yii::$app->session->setFlash('error', 'Вы не водите в группы, разрешённые для управления передачей смены'); + + return $this->redirect('index'); + } + $shiftTransfer = ShiftTransfer::findOne($id); if (!$shiftTransfer) { @@ -135,12 +129,9 @@ class ShiftTransferController extends Controller } } - $admins = self::getAdminsWithDrugieLast($storeGuids); - $shiftTransfer->shiftRemainsCopy = $loadDataShiftRemains ?? $shiftTransfer->shiftRemains; - return $this->render('update', compact('shiftTransfer', 'isCreate', 'storeNameById', - 'admins')); + return $this->render('update', compact('shiftTransfer', 'isCreate', 'storeNameById')); } diff --git a/erp24/migrations/m241202_163922_alter_table_shift_transfer_nullable_start_start_shift_admin_id.php b/erp24/migrations/m241202_163922_alter_table_shift_transfer_nullable_start_start_shift_admin_id.php new file mode 100755 index 00000000..9a1b3c3e --- /dev/null +++ b/erp24/migrations/m241202_163922_alter_table_shift_transfer_nullable_start_start_shift_admin_id.php @@ -0,0 +1,25 @@ +alterColumn(self::TABLE_NAME, 'start_shift_admin_id', $this->integer()->null()->comment('ID сотрудника, принимающего смену')); + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + } +} diff --git a/erp24/records/ShiftTransfer.php b/erp24/records/ShiftTransfer.php index c7b89ec2..ad864ce7 100644 --- a/erp24/records/ShiftTransfer.php +++ b/erp24/records/ShiftTransfer.php @@ -14,7 +14,7 @@ use Yii; * @property string|null $date_end время принятия смены * @property string $store_guid GUID магазина * @property int $end_shift_admin_id ID сотрудника, передающего смену - * @property int $start_shift_admin_id ID сотрудника, принимающего смену + * @property int|null $start_shift_admin_id ID сотрудника, принимающего смену * @property float|null $goods_transfer_summ Сумма, полученная в результате действий по замене товара * @property float|null $goods_transfer_count Количество замен общее, шт. * @property float|null $discrepancy_pieces Расхождение факта, шт. @@ -54,7 +54,7 @@ class ShiftTransfer extends \yii\db\ActiveRecord public function rules() { return [ - [['status_id', 'date', 'date_start', 'store_guid', 'end_shift_admin_id', 'start_shift_admin_id'], 'required'], + [['status_id', 'date', 'date_start', 'store_guid', 'end_shift_admin_id'], 'required'], [['status_id', 'end_shift_admin_id', 'start_shift_admin_id'], 'default', 'value' => null], [['status_id', 'end_shift_admin_id', 'start_shift_admin_id'], 'integer'], [['date_start', 'date_end'], 'safe'], diff --git a/erp24/views/shift-transfer/index.php b/erp24/views/shift-transfer/index.php index b22c045f..a95421b5 100644 --- a/erp24/views/shift-transfer/index.php +++ b/erp24/views/shift-transfer/index.php @@ -15,6 +15,14 @@ use yii\helpers\Url;
+ session->hasFlash('error')): ?> +
+ +

Не получилось управлять передачей смены!

+ session->getFlash('error') ?> +
+ +

Передачи смен

'btn btn-success']) ?> @@ -50,7 +58,7 @@ use yii\helpers\Url; [ 'attribute' => 'start_shift_admin_id', 'value' => function ($model) use ($admins) { - return $admins[$model['start_shift_admin_id']]; + return $admins[$model['start_shift_admin_id']] ?? ''; } ], 'goods_transfer_summ', diff --git a/erp24/views/shift-transfer/update.php b/erp24/views/shift-transfer/update.php index b38fe7df..ffed0866 100644 --- a/erp24/views/shift-transfer/update.php +++ b/erp24/views/shift-transfer/update.php @@ -16,7 +16,6 @@ use yii_app\records\ProductsClass; /* @var $isCreate bool */ /* @var $shiftTransfer ShiftTransfer */ /* @var $storeNameById array */ -/* @var $admins array */ $this->registerJsFile('/js/shift-transfer/update.js', ['position' => \yii\web\View::POS_END]); @@ -90,28 +89,8 @@ $this->registerCss(' ]) ?>
-
-
- field($shiftTransfer, 'end_shift_admin_id')->widget(Select2::class, [ - 'data' => $admins, - 'language' => 'ru', - 'options' => ['placeholder' => 'Сотрудник...'], - 'pluginOptions' => [ - 'allowClear' => true - ], - ]) ?> -
-
- field($shiftTransfer, 'start_shift_admin_id')->widget(Select2::class, [ - 'data' => $admins, - 'language' => 'ru', - 'options' => ['placeholder' => 'Сотрудник...'], - 'pluginOptions' => [ - 'allowClear' => true - ], - ]) ?> -
-
+ + field($shiftTransfer, 'end_shift_admin_id')->hiddenInput()->label(false) ?>
diff --git a/erp24/views/shift-transfer/view.php b/erp24/views/shift-transfer/view.php index 088731ef..feddf984 100644 --- a/erp24/views/shift-transfer/view.php +++ b/erp24/views/shift-transfer/view.php @@ -48,7 +48,7 @@ use yii_app\records\Products1c; [ 'attribute' => 'start_shift_admin_id', 'value' => function ($model) use ($admins) { - return $admins[$model['start_shift_admin_id']]; + return $admins[$model['start_shift_admin_id']] ?? ''; } ], 'goods_transfer_summ', -- 2.39.5