]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-242] спрятал принимающего и передающего смену, передающий задаётся автоматически...
authorAlexander Smirnov <fredeom@mail.ru>
Mon, 2 Dec 2024 16:47:40 +0000 (19:47 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Mon, 2 Dec 2024 16:47:40 +0000 (19:47 +0300)
erp24/controllers/ShiftTransferController.php
erp24/migrations/m241202_163922_alter_table_shift_transfer_nullable_start_start_shift_admin_id.php [new file with mode: 0755]
erp24/records/ShiftTransfer.php
erp24/views/shift-transfer/index.php
erp24/views/shift-transfer/update.php
erp24/views/shift-transfer/view.php

index 0761ffa7409cf9326bada628c3710281109fa599..da7a58ba4ebf22cc0a4a72b189303e310055f023 100644 (file)
@@ -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 (executable)
index 0000000..9a1b3c3
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m241202_163922_alter_table_shift_transfer_nullable_start_start_shift_admin_id
+ */
+class m241202_163922_alter_table_shift_transfer_nullable_start_start_shift_admin_id extends Migration
+{
+    const TABLE_NAME = 'erp24.shift_transfer';
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        $this->alterColumn(self::TABLE_NAME, 'start_shift_admin_id', $this->integer()->null()->comment('ID сотрудника, принимающего смену'));
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+    }
+}
index c7b89ec2c9d8b9b8bcaea0910c337b57bfb2bcb4..ad864ce75e890f9fcec4197cc35ac3de1fffb28d 100644 (file)
@@ -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'],
index b22c045f143c04deb01d4eb023083264675fe54f..a95421b546c35dce079f8e2d8ebd833ec0265717 100644 (file)
@@ -15,6 +15,14 @@ use yii\helpers\Url;
 
 <div class="shiftTransferIndex m-5">
 
+    <?php if (Yii::$app->session->hasFlash('error')): ?>
+        <div class="alert alert-danger alert-dismissable">
+            <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
+            <h4><i class="icon fa fa-check"></i>Не получилось управлять передачей смены!</h4>
+            <?= Yii::$app->session->getFlash('error') ?>
+        </div>
+    <?php endif; ?>
+
     <h1>Передачи смен</h1>
 
     <?= Html::a('Создать новую передачу смен', '/shift-transfer/create', ['class' => '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',
index b38fe7dfe660c732fe59249b1c255a4f2c60fe76..ffed0866454bfc928acbf21e65fb1d68dfb25c16 100644 (file)
@@ -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('
             ]) ?>
         </div>
     </div>
-    <div class="row">
-        <div class="col-6">
-            <?= $form->field($shiftTransfer, 'end_shift_admin_id')->widget(Select2::class, [
-                'data' => $admins,
-                'language' => 'ru',
-                'options' => ['placeholder' => 'Сотрудник...'],
-                'pluginOptions' => [
-                    'allowClear' => true
-                ],
-            ]) ?>
-        </div>
-        <div class="col-6">
-            <?= $form->field($shiftTransfer, 'start_shift_admin_id')->widget(Select2::class, [
-                'data' => $admins,
-                'language' => 'ru',
-                'options' => ['placeholder' => 'Сотрудник...'],
-                'pluginOptions' => [
-                    'allowClear' => true
-                ],
-            ]) ?>
-        </div>
-    </div>
+
+    <?= $form->field($shiftTransfer, 'end_shift_admin_id')->hiddenInput()->label(false) ?>
 
     <div class="row">
         <div class="col-6">
index 088731ef7fd1c5734712482820a6c78c0b821fac..feddf98448c291bfab4e82ff9e8d8c4a6f1b79f8 100644 (file)
@@ -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',