diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index 50e45fc91..880f6ae01 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -17,7 +17,6 @@ use App\Models\Statuslabel; use App\Models\User; use Illuminate\Support\Facades\Auth; use App\View\Label; -use Auth; use Carbon\Carbon; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Gate; diff --git a/app/Importer/AssetImporter.php b/app/Importer/AssetImporter.php index 4286b62d5..bb7cae7cd 100644 --- a/app/Importer/AssetImporter.php +++ b/app/Importer/AssetImporter.php @@ -3,6 +3,7 @@ namespace App\Importer; use App\Models\Asset; +use App\Models\AssetModel; use App\Models\Statuslabel; use Carbon\Carbon; @@ -121,15 +122,19 @@ class AssetImporter extends ItemImporter $item['asset_eol_date'] = null; if (isset($this->item['asset_eol_date'])) { - $item['asset_eol_date'] = $this->item['asset_eol_date']; + if(!is_null($this->item['model_id'])) { + $model = AssetModel::find($this->createOrFetchAssetModel($row, $this->item['model_id'])); + if(is_null($model->eol)) { + $item['asset_eol_date'] = $this->item['asset_eol_date']; + $item['eol_explicit'] = true; + } else { + $item['asset_eol_date'] = Carbon::parse($this->item['asset_eol_date'])->addMonths($model->eol)->format('Y-m-d'); + } + } } $item['eol_explicit'] = null; - if (isset($this->item['eol_explicit'])) { - $item['eol_explicit'] = $this->item['eol_explicit']; - } - - if(($item['asset_eol_date'] == null) && ($item['eol_explicit'] == null) && ($asset->model->eol != null) && ($asset->asset_purchase_date != null)){ + if(($item['asset_eol_date'] == null) && ($asset->model->eol != null) && ($asset->asset_purchase_date != null)){ $asset->asset_eol_date = Carbon::parse($asset->asset_purchase_date)->addMonths($asset->model->eol)->format('Y-m-d'); } diff --git a/app/Observers/AssetObserver.php b/app/Observers/AssetObserver.php index cf963f78e..fab3b290c 100644 --- a/app/Observers/AssetObserver.php +++ b/app/Observers/AssetObserver.php @@ -6,6 +6,7 @@ use App\Models\Actionlog; use App\Models\Asset; use App\Models\Setting; use Auth; +use Carbon\Carbon; class AssetObserver { @@ -122,12 +123,23 @@ class AssetObserver public function saving(Asset $asset) { - //turning this off for right now so i can check out the note in the migration + //determine if calculated eol and then calculate it - this should only happen on a new asset + if(is_null($asset->asset_eol_date) && !is_null($asset->asset_purchase_date) && !is_null($asset->model->eol)){ + $asset->asset_eol_date = $asset->purchase_date->addMonths($asset->model->eol)->format('Y-m-d'); + } - //calculate and set the EOL date if it is not already set - // if(is_null($asset->asset_eol_date) && !is_null($asset->asset_purchase_date) && !is_null($asset->model()->get()->eol)){ - // $asset->asset_eol_date = date('Y-m-d', strtotime($asset->asset_purchase_date . ' + ' . $asset->asset_warranty_months . ' months')); - // } + //determine if explicit and set eol_explit to true + if(!is_null($asset->asset_eol_date) && !is_null($asset->purchase_date) || ($asset->isDirty($asset->asset_eol_date) || $asset->isDirty($asset->purchase_date))) { + if($asset->model->eol) { + $months = Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date); + if($months != $asset->model->eol) { + $asset->eol_explicit = true; + } + } else { + $asset->eol_explicit = true; + } + } + } } 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 ee110e815..0921be065 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 @@ -25,8 +25,12 @@ class DenormalizedEolAndAddColumnForExplicitDateToAssets extends Migration foreach($assetsWithEolDates as $asset) { if($asset->asset_eol_date && $asset->purchase_date) { $months = Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date); - if($months != $asset->model->eol) { - $asset->update(['eol_explicit' => true]); + if($asset->model->eol) { + if($months != $asset->model->eol) { + $asset->update(['eol_explicit' => true]); + } + } else { + $asset->update(['eol_explcit' => true]); } } }