]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-251] мягкое удаление из matrix_erp
authorAlexander Smirnov <fredeom@mail.ru>
Thu, 28 Nov 2024 14:32:16 +0000 (17:32 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Thu, 28 Nov 2024 14:32:16 +0000 (17:32 +0300)
erp24/controllers/MatrixErpController.php
erp24/migrations/m241128_124631_alter_table_matrix_erp_add_column_deleted_at_deleted_by.php [new file with mode: 0755]
erp24/records/MatrixErp.php
erp24/views/matrix_erp/index.php

index 2c2cd193d169ff8856666d128d485e5714797b0b..0bdb1c38ce9642b6f316f0df84267900f0f8eda8 100644 (file)
@@ -85,7 +85,7 @@ class MatrixErpController extends Controller
 //        taskFilter 3000-3500
 
         $filterModel = DynamicModel::validateData([
-            'activeFilter',
+            'activeFilter' => 1,
             'nameFilter',
             'groupNameFilter',
 
@@ -238,6 +238,15 @@ class MatrixErpController extends Controller
         ]);
     }
 
+    public function actionDelete($id) {
+        $matrixErp = MatrixErp::findOne($id);
+        $matrixErp->active = 0;
+        $matrixErp->deleted_at = date('Y-m-d H:i:s');
+        $matrixErp->deleted_by = Yii::$app->user->id;
+        $matrixErp->save();
+
+        return $this->redirect('index');
+    }
 
     /**
      * Finds the MatrixErp model based on its primary key value.
diff --git a/erp24/migrations/m241128_124631_alter_table_matrix_erp_add_column_deleted_at_deleted_by.php b/erp24/migrations/m241128_124631_alter_table_matrix_erp_add_column_deleted_at_deleted_by.php
new file mode 100755 (executable)
index 0000000..ca83f95
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m241128_124631_alter_table_matrix_erp_add_column_deleted_at_deleted_by
+ */
+class m241128_124631_alter_table_matrix_erp_add_column_deleted_at_deleted_by extends Migration
+{
+    const TABLE_NAME = 'erp24.matrix_erp';
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        $this->addColumn(self::TABLE_NAME, 'deleted_at', $this->dateTime()->null()->comment('Дата и время удаления'));
+        $this->addColumn(self::TABLE_NAME, 'deleted_by', $this->integer()->null()->comment('ID удалившего пользователя'));
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        $this->dropColumn(self::TABLE_NAME, 'deleted_by');
+        $this->dropColumn(self::TABLE_NAME, 'deleted_at');
+    }
+}
index 3adeb8ea91a87a8a1fa5efd8c37b51054b8afe31..3309460503c7e3da1fffb7e825926e29ebbc9470 100644 (file)
@@ -3,7 +3,9 @@
 namespace yii_app\records;
 
 use Yii;
+use yii\behaviors\TimestampBehavior;
 use yii\db\ActiveQueryInterface;
+use yii\db\Expression;
 use yii_app\helpers\DataHelper;
 
 /**
@@ -25,6 +27,8 @@ use yii_app\helpers\DataHelper;
  * @property int|null $created_at
  * @property int|null $updated_admin_id
  * @property int|null $updated_at
+ * @property string|null $deleted_at
+ * @property int|null $deleted_by
  */
 class MatrixErp extends \yii\db\ActiveRecord
 {
@@ -38,6 +42,18 @@ class MatrixErp extends \yii\db\ActiveRecord
         return 'matrix_erp';
     }
 
+    public function behaviors()
+    {
+        return [
+            [
+                'class' => TimestampBehavior::class,
+                'createdAtAttribute' => 'created_at',
+                'updatedAtAttribute' => 'updated_at',
+                'value' => new Expression('NOW()'),
+            ],
+        ];
+    }
+
     /**
      * {@inheritdoc}
      */
@@ -46,8 +62,8 @@ class MatrixErp extends \yii\db\ActiveRecord
         return [
             [['guid', 'date_from'], 'required'],
             [['category_id', 'active', 'created_admin_id', 'created_at', 'updated_admin_id', 'updated_at'], 'integer'],
-            [['components'], 'string'],
-            [['id'], 'integer'],
+            [['components', 'deleted_at'], 'string'],
+            [['id', 'deleted_by'], 'integer'],
             [['guid', 'parent_id', 'group_name', 'code', 'articule', 'date_from', 'date_to'], 'string', 'max' => 100],
             [['name'], 'string', 'max' => 255],
         ];
index 9fd5a64df411be00e6f9708c38b6e8c29f20c63c..e4e5c74bf0b38b4f8a3867fbaa66d4a903b17ff4 100644 (file)
@@ -177,6 +177,12 @@ $this->params['breadcrumbs'][] = $this->title;
                                     }
 
                                     $editUrl = Html::a("Редактировать", ['/matrix-erp/update', 'id' => $item->id], ['class' => 'btn btn-primary', 'target'=>'blank']);
+                                    $deleteUrl = Html::a("Удалить", ['/matrix-erp/delete', 'id' => $item->id], [
+                                        'class' => 'btn btn-danger', 'data' => [
+                                            'confirm' => 'Вы уверены, что хотите удалить этот элемент?',
+                                            'method' => 'post',
+                                        ]
+                                    ]);
 
                                     $image = '';
 
@@ -194,7 +200,7 @@ $this->params['breadcrumbs'][] = $this->title;
                                         <td><?= $item-> date_from ?></td>
                                         <td><?= $item->date_to ?></td>
                                         <td><?= (($item->active) ? 'Активна': 'Не активна') ?></td>
-                                        <td><?= $editUrl?></td>
+                                        <td><span style="white-space:nowrap;"><?= $editUrl . " " . $deleteUrl ?></span></td>
                                     </tr>
 
                                     <tr style="display:none">