From c1daabef088db8ccb62fc4a2a247fa9da52bd776 Mon Sep 17 00:00:00 2001 From: slong753 Date: Thu, 13 Jul 2023 18:36:14 -0500 Subject: [PATCH] progress --- app/Http/Controllers/AssetModelsController.php | 11 ++++++++++- app/Http/Controllers/Assets/AssetsController.php | 3 +++ app/Models/Asset.php | 1 + app/Presenters/AssetPresenter.php | 5 +---- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/AssetModelsController.php b/app/Http/Controllers/AssetModelsController.php index 3bb72413b0..ce3056bfed 100755 --- a/app/Http/Controllers/AssetModelsController.php +++ b/app/Http/Controllers/AssetModelsController.php @@ -6,6 +6,7 @@ use App\Helpers\Helper; use App\Http\Requests\ImageUploadRequest; use App\Models\AssetModel; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Input; use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\Validator; @@ -91,6 +92,9 @@ class AssetModelsController extends Controller // Was it created? if ($model->save()) { + if ($request->filled('eol')) { + $model->assets()->whereNotNull('purchase_date')->whereNull('eol_explicit')->update(['asset_eol_date' => DB::raw('DATE_ADD(purchase_date, INTERVAL '.$model->eol.' MONTH)')]); + } if ($this->shouldAddDefaultValues($request->input())) { if (!$this->assignCustomFieldsDefaultValues($model, $request->input('default_values'))){ return redirect()->back()->withInput()->with('error', trans('admin/custom_fields/message.fieldset_default_value.error')); @@ -173,8 +177,13 @@ class AssetModelsController extends Controller } } } - + + + if ($model->save()) { + if ($model->wasChanged('eol')) { + $model->assets()->whereNotNull('purchase_date')->whereNull('eol_explicit')->update(['asset_eol_date' => DB::raw('DATE_ADD(purchase_date, INTERVAL '.$model->eol.' MONTH)')]); + } 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 e699779a34..05a3bb603f 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -387,6 +387,9 @@ class AssetsController extends Controller if ($asset->save()) { + if($asset->wasChanged('purchase_date')){ + $model->assets()->whereNotNull('purchase_date')->whereNull('eol_explicit')->update(['asset_eol_date' => DB::raw('DATE_ADD(purchase_date, INTERVAL '.$model->eol.' MONTH)')]); + } return redirect()->route('hardware.show', $assetId) ->with('success', trans('admin/hardware/message.update.success')); } diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 4308c3b0f1..ac06f187b1 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -72,6 +72,7 @@ class Asset extends Depreciable protected $casts = [ 'purchase_date' => 'date', + 'asset_eol_date' => 'date', 'last_checkout' => 'datetime', 'last_checkin' => 'datetime', 'expected_checkin' => 'date', diff --git a/app/Presenters/AssetPresenter.php b/app/Presenters/AssetPresenter.php index 4a068ba642..178632c2d4 100644 --- a/app/Presenters/AssetPresenter.php +++ b/app/Presenters/AssetPresenter.php @@ -429,10 +429,7 @@ class AssetPresenter extends Presenter public function eol_date() { if (($this->purchase_date) && ($this->model->model) && ($this->model->model->eol)) { - $date = date_create($this->purchase_date); - date_add($date, date_interval_create_from_date_string($this->model->model->eol.' months')); - - return date_format($date, 'Y-m-d'); + return $this->purchase_date->addMonths($this->model->model->eol)->format('Y-m-d'); } }