From 774f21bb7f1edd48e840e9fe333fd3215547cad3 Mon Sep 17 00:00:00 2001 From: slong753 Date: Tue, 18 Jul 2023 10:14:00 -0500 Subject: [PATCH] some more cleanup --- app/Http/Controllers/AssetModelsController.php | 8 ++++++-- app/Http/Controllers/Assets/AssetsController.php | 2 +- app/Models/Asset.php | 2 +- ...zed_eol_and_add_column_for_explicit_date_to_assets.php | 1 - 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/AssetModelsController.php b/app/Http/Controllers/AssetModelsController.php index dd7486f05f..9a54bb2ace 100755 --- a/app/Http/Controllers/AssetModelsController.php +++ b/app/Http/Controllers/AssetModelsController.php @@ -94,7 +94,8 @@ class AssetModelsController extends Controller if ($model->save()) { if ($request->filled('eol')) { $newEol = $model->eol; - $model->assets()->whereNotNull('purchase_date')->whereNull('eol_explicit')->update(['asset_eol_date' => DB::raw('DATE_ADD(purchase_date, INTERVAL :newEol MONTH)', ['newEol' => $newEol])]); + $model->assets()->whereNotNull('purchase_date')->where('eol_explicit', false) + ->update(['asset_eol_date' => DB::raw('DATE_ADD(purchase_date, INTERVAL :newEol MONTH)', ['newEol' => $newEol])]); } if ($this->shouldAddDefaultValues($request->input())) { if (!$this->assignCustomFieldsDefaultValues($model, $request->input('default_values'))){ @@ -184,7 +185,10 @@ class AssetModelsController extends Controller if ($model->save()) { if ($model->wasChanged('eol')) { $newEol = $model->eol; - $model->assets()->whereNotNull('purchase_date')->whereNull('eol_explicit')->update(['asset_eol_date' => DB::raw('DATE_ADD(purchase_date, INTERVAL :newEol MONTH)', ['newEol' => $newEol])]); + $model->assets()->whereNotNull('purchase_date')->where('eol_explicit', false) + //this DB::raw is so that we can use an ->update() which is _much_ faster than foreaching + //but, laravel doesn't have a way to access a column inside an update + ->update(['asset_eol_date' => DB::raw('DATE_ADD(purchase_date, INTERVAL :newEol MONTH)', ['newEol' => $newEol])]); } return redirect()->route('models.index')->with('success', trans('admin/models/message.update.success')); } diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index 2335c74f00..d94197e303 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -391,7 +391,7 @@ class AssetsController extends Controller if ($asset->save()) { - if($asset->wasChanged('purchase_date')){ + if($asset->wasChanged('purchase_date') && !$asset->explicit_eol){ $asset->asset_eol_date = Carbon::parse($asset->purchase_date)->addMonths($asset->model->eol)->format('Y-m-d'); } return redirect()->route('hardware.show', $assetId) diff --git a/app/Models/Asset.php b/app/Models/Asset.php index c3d1355dea..e43152cd36 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -88,7 +88,7 @@ class Asset extends Depreciable 'created_at' => 'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', - 'eol_explicit' => 'boolean', + 'eol_explicit' => 'boolean', ]; protected $rules = [ diff --git a/database/migrations/2023_07_13_052204_denormalized_eol_and_add_column_for_explicit_date_to_assets.php b/database/migrations/2023_07_13_052204_denormalized_eol_and_add_column_for_explicit_date_to_assets.php index ac2656d8b3..ee110e815c 100644 --- a/database/migrations/2023_07_13_052204_denormalized_eol_and_add_column_for_explicit_date_to_assets.php +++ b/database/migrations/2023_07_13_052204_denormalized_eol_and_add_column_for_explicit_date_to_assets.php @@ -28,7 +28,6 @@ class DenormalizedEolAndAddColumnForExplicitDateToAssets extends Migration if($months != $asset->model->eol) { $asset->update(['eol_explicit' => true]); } - } }