From: Alexander Smirnov Date: Mon, 2 Dec 2024 16:47:40 +0000 (+0300) Subject: [ERP-242] спрятал принимающего и передающего смену, передающий задаётся автоматически... X-Git-Tag: 1.7~205^2~3 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=35a302a8bad1d250a3699b664136bea2debc5e6c;p=erp24_rep%2Fyii-erp24%2F.git [ERP-242] спрятал принимающего и передающего смену, передающий задаётся автоматически если из нужной группы --- 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',