From 3bc88777402da578b1dfff2249e5165c59c313f1 Mon Sep 17 00:00:00 2001 From: R Date: Mon, 5 Dec 2022 13:07:20 +0700 Subject: [PATCH] Fix Corporate Member --- .../Api/CorporateMemberController.php | 6 +----- app/Models/CorporateManager.php | 13 +++++++++++++ app/Models/CorporatePolicy.php | 15 ++++++++++++++- database/seeders/DummyMemberSeeder.php | 18 ++++++++++++++---- .../dashboard/src/pages/Corporates/Index.tsx | 10 ++++++++++ frontend/dashboard/src/routes/index.tsx | 4 ++++ 6 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 app/Models/CorporateManager.php diff --git a/Modules/Internal/Http/Controllers/Api/CorporateMemberController.php b/Modules/Internal/Http/Controllers/Api/CorporateMemberController.php index e3573b98..02963ee4 100755 --- a/Modules/Internal/Http/Controllers/Api/CorporateMemberController.php +++ b/Modules/Internal/Http/Controllers/Api/CorporateMemberController.php @@ -34,11 +34,7 @@ class CorporateMemberController extends Controller }) ->with([ 'employeds', - 'currentPolicy' => function ($policy) use ($corporate_id) { - $policy->whereHas('corporatePolicy', function($corporatePolicy) use ($corporate_id) { - $corporatePolicy->where('corporate_id', $corporate_id); - }); - } + 'currentPolicy', ]) ->with('currentPlan') ->paginate() diff --git a/app/Models/CorporateManager.php b/app/Models/CorporateManager.php new file mode 100644 index 00000000..bc3aa8a0 --- /dev/null +++ b/app/Models/CorporateManager.php @@ -0,0 +1,13 @@ +belongsTo(Corporate::class); @@ -39,6 +47,11 @@ class CorporatePolicy extends Model return $this->morphMany(LimitJournal::class, 'journalable'); } + public function latestLimitJournal() + { + return $this->morphOne(LimitJournal::class, 'journalable')->latestOfMany(); + } + public function setCodeAttribute($value) { $this->attributes['code'] = !empty($value) ? $value : Str::upper(Str::random('6')); @@ -61,7 +74,7 @@ class CorporatePolicy extends Model public function getLimitBalanceAttribute() { - $journal = $this->limitJournals()->latest()->first(); + $journal = $this->latestLimitJournal; return $journal ? $journal->balance : (!empty($this->total_premi) ? $this->total_premi : "0"); } diff --git a/database/seeders/DummyMemberSeeder.php b/database/seeders/DummyMemberSeeder.php index 361510f4..bb0ce713 100755 --- a/database/seeders/DummyMemberSeeder.php +++ b/database/seeders/DummyMemberSeeder.php @@ -16,9 +16,19 @@ class DummyMemberSeeder extends Seeder */ public function run() { - User::create([ - 'email' => 'admin@linksehat.dev', - 'password' => Hash::make('password') - ]); + $userEmails = [ + 'admin@linksehat.dev', + 'manager+one@gmail.com', + 'manager+two@gmail.com' + ]; + + foreach ($userEmails as $email) { + User::updateOrCreate([ + 'email' => $email + ], [ + 'email' => $email, + 'password' => Hash::make('password') + ]); + } } } diff --git a/frontend/dashboard/src/pages/Corporates/Index.tsx b/frontend/dashboard/src/pages/Corporates/Index.tsx index 5c0ea756..6f99353a 100755 --- a/frontend/dashboard/src/pages/Corporates/Index.tsx +++ b/frontend/dashboard/src/pages/Corporates/Index.tsx @@ -398,6 +398,16 @@ export default function Corporates() { ? fCurrency(row.current_policy?.minimal_deposit_net) : '-'} + + + Corporate Limit + + + :{' '} + {row.current_policy + ? fCurrency(row.current_policy?.limit_balance) + : '-'} + diff --git a/frontend/dashboard/src/routes/index.tsx b/frontend/dashboard/src/routes/index.tsx index a4c07e68..bc126492 100755 --- a/frontend/dashboard/src/routes/index.tsx +++ b/frontend/dashboard/src/routes/index.tsx @@ -214,6 +214,10 @@ export default function Router() { { path: 'claims/create', element: + }, + { + path: 'claims/:id', + element: } ] },