From 853333911fc28d369ebef04ce9694f65dc30fe2c Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Mon, 12 Aug 2024 11:25:23 -0700 Subject: [PATCH] adds migration for explicit purchase cost added --- .../Controllers/AssetModelsController.php | 8 +++++ ...432_adds_purchase_cost_to_models_table.php | 30 +++++++++++++++++-- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/AssetModelsController.php b/app/Http/Controllers/AssetModelsController.php index 4421829f48..2a980ee7d2 100755 --- a/app/Http/Controllers/AssetModelsController.php +++ b/app/Http/Controllers/AssetModelsController.php @@ -75,6 +75,7 @@ class AssetModelsController extends Controller $model->name = $request->input('name'); $model->model_number = $request->input('model_number'); $model->min_amt = $request->input('min_amt'); + $model->default_purchase_cost = $request->input('purchase_cost'); $model->manufacturer_id = $request->input('manufacturer_id'); $model->category_id = $request->input('category_id'); $model->notes = $request->input('notes'); @@ -146,6 +147,7 @@ class AssetModelsController extends Controller $model->name = $request->input('name'); $model->model_number = $request->input('model_number'); $model->min_amt = $request->input('min_amt'); + $model->default_purchase_cost = $request->input('purchase_cost'); $model->manufacturer_id = $request->input('manufacturer_id'); $model->category_id = $request->input('category_id'); $model->notes = $request->input('notes'); @@ -172,6 +174,12 @@ class AssetModelsController extends Controller ->update(['asset_eol_date' => DB::raw('null')]); } } + if($model->wasChanged('default_purchase_cost')){ + if ($model->purchase_cost != '') { + $model->assets()->whereNotNull('purchase_cost')->where('cost_explicit', false) + ->update(['purchase_cost']); + } + } return redirect()->route('models.index')->with('success', trans('admin/models/message.update.success')); } diff --git a/database/migrations/2024_08_12_173432_adds_purchase_cost_to_models_table.php b/database/migrations/2024_08_12_173432_adds_purchase_cost_to_models_table.php index 8b129eca0a..2d77050682 100644 --- a/database/migrations/2024_08_12_173432_adds_purchase_cost_to_models_table.php +++ b/database/migrations/2024_08_12_173432_adds_purchase_cost_to_models_table.php @@ -1,7 +1,8 @@ boolean('purchase_cost_explicit')->default(false)->after('purchase_cost'); + } + }); + Schema::table('models', function (Blueprint $table) { - // + $table->decimal('default_purchase_cost', 8, 2)->default(null)->nullable()->after('min_amt'); + }); + + Asset::whereNotNull('purchase_cost')->with('model')->chunkById(500, function ($assetsWithPurchaseCosts) { + foreach ($assetsWithPurchaseCosts as $asset) { + if($asset->purchase_cost) { + if ($asset->purchase_cost !== $asset->model->default_purchase_cost) { + DB::table('assets')->where('id', $asset->id)->update(['purchase_cost_explicit' => true]); + } + } + else { + DB::table('assets')->where('id', $asset->id)->update(['purchase_cost_explicit' => false]); + } + } }); } @@ -21,8 +41,12 @@ return new class extends Migration */ public function down(): void { + Schema::table('assets', function (Blueprint $table) { + $table->dropColumn('purchase_cost_explicit'); + }); + Schema::table('models', function (Blueprint $table) { - // + $table->dropColumn('default_purchase_cost'); }); } };