From 96723461e42e620e57a8791eedf66661495e6c98 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Fri, 16 Dec 2022 13:39:19 +0800 Subject: [PATCH] log transactional data --- app/Classes/General/Traits/LogData.php | 36 ++++++++++++++++++++++++++ app/Models/Container.php | 2 ++ app/Models/PackingList.php | 2 ++ app/Models/Transaction.php | 2 ++ 4 files changed, 42 insertions(+) create mode 100644 app/Classes/General/Traits/LogData.php diff --git a/app/Classes/General/Traits/LogData.php b/app/Classes/General/Traits/LogData.php new file mode 100644 index 00000000..efee3915 --- /dev/null +++ b/app/Classes/General/Traits/LogData.php @@ -0,0 +1,36 @@ +table).'_logs'; + $relationshipColumn = Str::singular($model->table).'_id'; + + $originalData = $model->getRawOriginal(); + $originalData[$relationshipColumn] = $originalData['id']; + unset($originalData['id']); + + if (!Schema::hasTable($tableName)) { + DB::statement('CREATE TABLE '.$tableName.' LIKE '.$model->table); + DB::statement('ALTER TABLE '.$tableName.' ADD COLUMN `'.$relationshipColumn.'` BIGINT NOT NULL AFTER `id`'); + } + + DB::table($tableName)->insert($originalData); + + }); + } +} diff --git a/app/Models/Container.php b/app/Models/Container.php index 61015f81..efe946f9 100644 --- a/app/Models/Container.php +++ b/app/Models/Container.php @@ -4,6 +4,7 @@ namespace App\Models; use App\Classes\General\Interfaces\Remarkable; use App\Classes\General\Interfaces\Transportable; +use App\Classes\General\Traits\LogData; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Relations\MorphMany; @@ -14,6 +15,7 @@ class Container extends AbstractModel implements Transportable, Remarkable { use HasRelationships; use SoftDeletes; + use LogData; protected $table = 'containers'; diff --git a/app/Models/PackingList.php b/app/Models/PackingList.php index 1ca19f1d..c26fca6c 100644 --- a/app/Models/PackingList.php +++ b/app/Models/PackingList.php @@ -7,6 +7,7 @@ use App\Classes\General\Interfaces\Transportable; use App\Classes\General\Interfaces\Packable; use App\Classes\General\Interfaces\Transactionable; +use App\Classes\General\Traits\LogData; use App\Classes\ValueObjects\Constants\ApprovalStatus; use Carbon\Carbon; use Illuminate\Database\Eloquent\Relations\BelongsToMany; @@ -23,6 +24,7 @@ class PackingList extends AbstractModel implements Transportable, Steppable, Pac use HasTableAlias; use HasRelationships; use SoftDeletes; + use LogData; protected $table = 'packing_lists'; diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index 8bca16ed..dd6556b1 100644 --- a/app/Models/Transaction.php +++ b/app/Models/Transaction.php @@ -5,6 +5,7 @@ namespace App\Models; use App\Classes\General\Interfaces\Documentable; use App\Classes\General\Interfaces\Remarkable; use App\Classes\General\Interfaces\Transactionable; +use App\Classes\General\Traits\LogData; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\TransactionType; use Carbon\Carbon; @@ -18,6 +19,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; class Transaction extends AbstractModel implements Documentable, Transactionable, Remarkable { use SoftDeletes; + use LogData; protected $table = 'transactions';