From 2493e7fd2a1aff962ea5c3c7e2d690fd17dbcdc9 Mon Sep 17 00:00:00 2001 From: Dell Date: Mon, 25 Jul 2022 12:24:55 +0700 Subject: [PATCH] Update Active Status and Fix Mode 3 --- .../Services/MemberEnrollmentService.php | 9 ++-- app/Models/Benefit.php | 4 +- app/Models/CorporateBenefit.php | 4 +- app/Models/CorporateDivision.php | 4 +- app/Models/CorporateEmployee.php | 4 +- app/Models/CorporatePlan.php | 4 +- app/Models/CorporatePolicy.php | 4 +- app/Models/Member.php | 4 +- app/Models/MemberPlan.php | 34 ++++++++++++++ app/Models/MemberPolicy.php | 5 ++- app/Models/Plan.php | 4 +- ...07_25_050001_create_member_plans_table.php | 44 +++++++++++++++++++ .../pages/Corporates/CorporatePlan/List.tsx | 4 +- .../src/pages/Corporates/Member/List.tsx | 4 +- 14 files changed, 118 insertions(+), 14 deletions(-) create mode 100644 app/Models/MemberPlan.php create mode 100644 database/migrations/2022_07_25_050001_create_member_plans_table.php diff --git a/Modules/Internal/Services/MemberEnrollmentService.php b/Modules/Internal/Services/MemberEnrollmentService.php index e2964008..0189e865 100644 --- a/Modules/Internal/Services/MemberEnrollmentService.php +++ b/Modules/Internal/Services/MemberEnrollmentService.php @@ -276,16 +276,19 @@ class MemberEnrollmentService 'member_id' => $row['member_id'], 'policy_id' => $row['policy_number'] ]), 0, null, $row); - } - + } + if ($memberPolicy->status != 'active') { throw new ImportRowException(__('enrollment.MEMBER_INACTIVE', [ 'member_id' => $row['member_id'], 'policy_id' => $row['policy_number'] ]), 0, null, $row); } + + $member = $memberPolicy->member; + $member->active = false; - return $memberPolicy->delete(); + return $member->save(); break; case "4": // Member Update Start and End Date $memberPolicy = MemberPolicy::query() diff --git a/app/Models/Benefit.php b/app/Models/Benefit.php index fbb08e82..5919975e 100644 --- a/app/Models/Benefit.php +++ b/app/Models/Benefit.php @@ -2,12 +2,14 @@ namespace App\Models; +use App\Traits\Blameable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class Benefit extends Model { - use HasFactory; + use HasFactory, SoftDeletes, Blameable; protected $fillable = [ 'corporate_id', diff --git a/app/Models/CorporateBenefit.php b/app/Models/CorporateBenefit.php index c96d38c5..64a66c38 100644 --- a/app/Models/CorporateBenefit.php +++ b/app/Models/CorporateBenefit.php @@ -2,12 +2,14 @@ namespace App\Models; +use App\Traits\Blameable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class CorporateBenefit extends Model { - use HasFactory; + use HasFactory, SoftDeletes, Blameable; protected $fillable = [ 'corporate_id', diff --git a/app/Models/CorporateDivision.php b/app/Models/CorporateDivision.php index 01ee64fd..2d2231d0 100644 --- a/app/Models/CorporateDivision.php +++ b/app/Models/CorporateDivision.php @@ -2,12 +2,14 @@ namespace App\Models; +use App\Traits\Blameable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class CorporateDivision extends Model { - use HasFactory; + use HasFactory, SoftDeletes, Blameable; protected $fillable = [ 'corporate_id', diff --git a/app/Models/CorporateEmployee.php b/app/Models/CorporateEmployee.php index 925b6a12..6263d027 100644 --- a/app/Models/CorporateEmployee.php +++ b/app/Models/CorporateEmployee.php @@ -2,12 +2,14 @@ namespace App\Models; +use App\Traits\Blameable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class CorporateEmployee extends Model { - use HasFactory; + use HasFactory, SoftDeletes, Blameable; protected $fillable = [ 'corporate_id', diff --git a/app/Models/CorporatePlan.php b/app/Models/CorporatePlan.php index 8295a8d7..aa5ae22e 100644 --- a/app/Models/CorporatePlan.php +++ b/app/Models/CorporatePlan.php @@ -2,12 +2,14 @@ namespace App\Models; +use App\Traits\Blameable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class CorporatePlan extends Model { - use HasFactory; + use HasFactory, SoftDeletes, Blameable; protected $fillable = [ 'corporate_id', diff --git a/app/Models/CorporatePolicy.php b/app/Models/CorporatePolicy.php index c459b0ef..1e8d99d5 100644 --- a/app/Models/CorporatePolicy.php +++ b/app/Models/CorporatePolicy.php @@ -2,14 +2,16 @@ namespace App\Models; +use App\Traits\Blameable; use Carbon\Carbon; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Str; class CorporatePolicy extends Model { - use HasFactory; + use HasFactory, SoftDeletes, Blameable; protected $fillable = [ 'corporate_id', diff --git a/app/Models/Member.php b/app/Models/Member.php index 789d0b1f..e42390a2 100644 --- a/app/Models/Member.php +++ b/app/Models/Member.php @@ -2,12 +2,14 @@ namespace App\Models; +use App\Traits\Blameable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class Member extends Model { - use HasFactory; + use HasFactory, SoftDeletes, Blameable; protected $fillable = [ "id", diff --git a/app/Models/MemberPlan.php b/app/Models/MemberPlan.php new file mode 100644 index 00000000..558b9555 --- /dev/null +++ b/app/Models/MemberPlan.php @@ -0,0 +1,34 @@ +belongsTo(Member::class, 'member_id', 'member_id'); + } + + public function corporatePlan() + { + return $this->belongsTo(CorporatePlan::class, 'plan_id', 'code'); + } +} diff --git a/app/Models/MemberPolicy.php b/app/Models/MemberPolicy.php index 42b87eae..62a94362 100644 --- a/app/Models/MemberPolicy.php +++ b/app/Models/MemberPolicy.php @@ -16,7 +16,10 @@ class MemberPolicy extends Model 'member_id', 'status', 'start', - 'end' + 'end', + 'created_by', + 'updated_by', + 'deleted_by', ]; public function corporatePolicy() diff --git a/app/Models/Plan.php b/app/Models/Plan.php index c5674013..8bf8308b 100644 --- a/app/Models/Plan.php +++ b/app/Models/Plan.php @@ -2,12 +2,14 @@ namespace App\Models; +use App\Traits\Blameable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class Plan extends Model { - use HasFactory; + use HasFactory, SoftDeletes, Blameable; protected $fillable = [ "service_code", diff --git a/database/migrations/2022_07_25_050001_create_member_plans_table.php b/database/migrations/2022_07_25_050001_create_member_plans_table.php new file mode 100644 index 00000000..677183b7 --- /dev/null +++ b/database/migrations/2022_07_25_050001_create_member_plans_table.php @@ -0,0 +1,44 @@ +id(); + $table->string('member_id'); + $table->string('plan_id'); + $table->string('status')->default('active'); + $table->dateTime('start')->nullable(); + $table->dateTime('end')->nullalbe(); + + $table->timestamps(); + $table->softDeletes(); + + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + + $table->index(['policy_id', 'member_id']); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('member_plans'); + } +}; diff --git a/frontend/dashboard/src/pages/Corporates/CorporatePlan/List.tsx b/frontend/dashboard/src/pages/Corporates/CorporatePlan/List.tsx index b29cf51d..ca992895 100644 --- a/frontend/dashboard/src/pages/Corporates/CorporatePlan/List.tsx +++ b/frontend/dashboard/src/pages/Corporates/CorporatePlan/List.tsx @@ -76,7 +76,9 @@ export default function PlanList() { {row.code} {row.name} { makeExcerpt(row.description) } - + {( row.active ? () + : () + )} {/* COLLAPSIBLE ROW */} diff --git a/frontend/dashboard/src/pages/Corporates/Member/List.tsx b/frontend/dashboard/src/pages/Corporates/Member/List.tsx index d01e4fa0..b4603fd0 100644 --- a/frontend/dashboard/src/pages/Corporates/Member/List.tsx +++ b/frontend/dashboard/src/pages/Corporates/Member/List.tsx @@ -263,7 +263,9 @@ export default function CorporatePlanList() { {row.plan_id} {row.current_policy.start} {row.current_policy.end} - + {( row.active ? () + : () + )} {/* */} {/* COLLAPSIBLE ROW */}