From: fomichev Date: Tue, 14 Jan 2025 09:31:22 +0000 (+0300) Subject: Изменение мягкого удаления X-Git-Tag: 1.7~83^2~4 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=cbb7647c4e992e285781b4e163366c4f252c71e0;p=erp24_rep%2Fyii-erp24%2F.git Изменение мягкого удаления --- diff --git a/erp24/migrations/m250113_104214_add_deleted_at_column_to_timetable.php b/erp24/migrations/m250113_104214_add_deleted_at_column_to_timetable.php index 85870adf..00bc9655 100644 --- a/erp24/migrations/m250113_104214_add_deleted_at_column_to_timetable.php +++ b/erp24/migrations/m250113_104214_add_deleted_at_column_to_timetable.php @@ -17,8 +17,22 @@ class m250113_104214_add_deleted_at_column_to_timetable extends Migration return; } - if ($this->db->schema->getTableSchema(self::TABLE_NAME)->getColumn('deleted_at') === null) { - $this->addColumn(self::TABLE_NAME, 'deleted_at', $this->timestamp()->null()->defaultValue(null)->comment('Дата мягкого удаления')); + if ($this->db->schema->getTableSchema(self::TABLE_NAME)->getColumn('active') === null) { + $this->addColumn( + self::TABLE_NAME, + 'active', + $this->tinyInteger()->notNull()->defaultValue(1)->comment('Активность') + ); + $this->addColumn( + self::TABLE_NAME, + 'deleted_by', + $this->integer()->null()->comment('Пользователь, удаливший запись') + ); + $this->addColumn( + self::TABLE_NAME, + 'deleted_at', + $this->timestamp()->null()->defaultValue(null)->comment('Дата мягкого удаления') + ); } } @@ -31,7 +45,9 @@ class m250113_104214_add_deleted_at_column_to_timetable extends Migration return; } - if ($this->db->schema->getTableSchema(self::TABLE_NAME)->getColumn('deleted_at') !== null) { + if ($this->db->schema->getTableSchema(self::TABLE_NAME)->getColumn('active') !== null) { + $this->dropColumn(self::TABLE_NAME, 'active'); + $this->dropColumn(self::TABLE_NAME, 'deleted_by'); $this->dropColumn(self::TABLE_NAME, 'deleted_at'); } } diff --git a/erp24/records/Timetable.php b/erp24/records/Timetable.php index 2d4f2709..70e8a97f 100755 --- a/erp24/records/Timetable.php +++ b/erp24/records/Timetable.php @@ -35,6 +35,9 @@ use yii_app\traits\SoftDeleteTrait; * @property AdminGroup $position Должность работника * @property Admin $admin работник * @property Admin $addedBy добавивший пользователь + * @property Admin $deleted_by удаливший пользователь + * @property int $active активность + * @property string $deleted_at время удаления * @package yii_app\records */ class Timetable extends ActiveRecord @@ -491,7 +494,7 @@ class Timetable extends ActiveRecord { $query = parent::find(); if (static::hasSoftDelete()) { - $query->andWhere(['deleted_at' => null]); + $query->andWhere(['active' => 1]); } return $query; } diff --git a/erp24/traits/SoftDeleteTrait.php b/erp24/traits/SoftDeleteTrait.php index 22fed05d..40b0a3bd 100644 --- a/erp24/traits/SoftDeleteTrait.php +++ b/erp24/traits/SoftDeleteTrait.php @@ -1,6 +1,7 @@ user->identity; + $this->active = 0; + $this->deleted_by = $admin->id; $this->deleted_at = date('Y-m-d H:i:s'); - return $this->save(false, ['deleted_at']); + return $this->save(false, ['active', 'deleted_admin_id', 'deleted_at']); } /** @@ -19,8 +23,10 @@ trait SoftDeleteTrait */ public function restore() { + $this->active = 1; + $this->deleted_by = null; $this->deleted_at = null; - return $this->save(false, ['deleted_at']); + return $this->save(false, ['active', 'deleted_admin_id', 'deleted_at']); } /** @@ -28,6 +34,6 @@ trait SoftDeleteTrait */ public function isDeleted(): bool { - return $this->deleted_at !== null; + return $this->active === 0; } -} \ No newline at end of file +}