diff --git a/Modules/Linksehat/Http/Controllers/Api/LinkingController.php b/Modules/Linksehat/Http/Controllers/Api/LinkingController.php index d401aa46..899dbfe2 100644 --- a/Modules/Linksehat/Http/Controllers/Api/LinkingController.php +++ b/Modules/Linksehat/Http/Controllers/Api/LinkingController.php @@ -129,4 +129,10 @@ class LinkingController extends Controller return Helper::responseJson(data: [], message: 'Member Tidak ditemukan', statusCode: 404, status: 'error'); } + + public function card($member_id){ + $member = Member::where('member_id', $member_id)->get()->first(); + $message = $member->currentPolicy->corporate->welcome_message; + return Helper::responseJson(data: MemberResource::make($member), message: $message); + } } diff --git a/Modules/Linksehat/Routes/api.php b/Modules/Linksehat/Routes/api.php index f34f75ab..2ac3adfc 100644 --- a/Modules/Linksehat/Routes/api.php +++ b/Modules/Linksehat/Routes/api.php @@ -78,5 +78,7 @@ Route::prefix('linksehat')->group(function () { Route::post('manual-linking', [LinkingController::class, 'linkingValidate']); + Route::get('card/{member_id}', [LinkingController::class, 'card']); + }); }); diff --git a/Modules/Linksehat/Transformers/User/ShowProfileResource.php b/Modules/Linksehat/Transformers/User/ShowProfileResource.php index 1d0b5433..a6d3e0f7 100644 --- a/Modules/Linksehat/Transformers/User/ShowProfileResource.php +++ b/Modules/Linksehat/Transformers/User/ShowProfileResource.php @@ -5,6 +5,7 @@ namespace Modules\Linksehat\Transformers\User; use Illuminate\Http\Resources\Json\JsonResource; use App\Models\OLDLMS\User; use App\Models\OLDLMS\UserDetail; +use App\Models\OLDLMS\UserInsurance; use DB; @@ -53,6 +54,11 @@ class ShowProfileResource extends JsonResource $relationship = DB::connection('oldlms')->table('tm_hubungan_keluarga')->where('nID', $this->nIDHubunganKeluarga)->first('sHubunganKeluarga'); // dd( $this->detail->nIDGolonganDarah); + $userInsurance = UserInsurance::where('nIDUser', $this->nID)->get()->first(); + $memberId = Null; + if($userInsurance){ + $memberId = $userInsurance->sNoPolis; + } return [ 'id' => $this->nID, 'first_name' => $this->sFirstName, @@ -67,6 +73,7 @@ class ShowProfileResource extends JsonResource 'relationship' => $relationship ? $relationship->sHubunganKeluarga : '-', 'weight' => $this->detail->sWeight, 'height' => $this->detail->sHeight, + 'member_id' => $memberId, ]; } } diff --git a/Modules/Linksehat/Transformers/User/UserProfileResource.php b/Modules/Linksehat/Transformers/User/UserProfileResource.php index 9f1ec0ab..df3b0438 100644 --- a/Modules/Linksehat/Transformers/User/UserProfileResource.php +++ b/Modules/Linksehat/Transformers/User/UserProfileResource.php @@ -5,6 +5,11 @@ namespace Modules\Linksehat\Transformers\User; use Illuminate\Http\Resources\Json\JsonResource; use App\Models\OLDLMS\User; use App\Models\OLDLMS\UserDetail; +use App\Models\OLDLMS\UserInsurance; +use App\Models\Member; +use App\Models\Person; +use App\Models\CorporateEmployee; +use App\Models\Corporate; use Illuminate\Support\Facades\Auth; use DB; @@ -26,6 +31,50 @@ class UserProfileResource extends JsonResource $memberProfile = User::with('detail')->where('nIDUser', $this->nID)->get()->toArray(); $dataMemberProfile = []; + $userInsurance = UserInsurance::where('nIDUser', $this->nID)->get()->first(); + $memberId = null; + $linking = false; + if($userInsurance){ + $memberId = $userInsurance->sNoPolis; + $linking = true; + } else { + $member = Member::where('email', $this->sEmail)->get()->first(); + $person = Person::where('phone', $this->sPhone)->get()->first(); + if ($member || $person){ // Autolinking + $corporateEmployee = CorporateEmployee::where('member_id', $member->id)->get()->first(); // cek corporate id empolyee/member + if ($corporateEmployee){ + $corporate = Corporate::findOrFail($corporateEmployee->corporate_id)->automatic_linking; // cek autocomplete + if ($corporate){ + if($member) { + // Insert into database linksehat + $insurance = UserInsurance::updateOrCreate( + [ + 'nIDUser' => $this->nID, + ], + [ + 'nIDUser' => $this->nID, + 'nIDInsurance' => $_ENV['LINKSEHAT_ASO_INSURANCE_ID'], + 'sNoPolis' => $member->member_id, + 'sNamaPeserta' => $member->fullName, + 'sKartuPeserta' => '', + 'sLayanan' => 'RJ,TC', + 'dStartDate' => $member->members_effective_date, + 'dExpireDate' => $member->members_expire_date, + 'dTanggalLahir' => $member->birth_date, + 'nNoKTP' => $member->nric != '' ? $member->nric : 0 , + 'sIsConfrimed' => 1, + 'sStatus' => 1, + ]); + $message = $member->currentPolicy->corporate->welcome_message; + $linking = true; + + $memberId = $member->member_id; + } + } + } + } + }; + if (count($memberProfile) > 0){ $urlAvatarDefault = $this->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/male-avatar.png'; @@ -107,8 +156,9 @@ class UserProfileResource extends JsonResource 'full_name' => $this->sFirstName . ' '. $this->sLastName, 'avatar' => $avatar, 'member_type' => $this->nIDUser ? 'Dependent' : 'Principal', - 'member_profile' => $dataMemberProfile, - + 'member_profile' => $dataMemberProfile, + 'member_id' => $memberId, + 'linking' => $linking, ]; } } diff --git a/app/Http/Resources/OLDLMS/MemberResource.php b/app/Http/Resources/OLDLMS/MemberResource.php index e5244f71..610ce9cf 100644 --- a/app/Http/Resources/OLDLMS/MemberResource.php +++ b/app/Http/Resources/OLDLMS/MemberResource.php @@ -31,7 +31,7 @@ class MemberResource extends JsonResource 'date_of_birth' => $this->birth_date, 'gender' => $this->gender, 'start_date' => $this->members_effective_date, - 'corporate_logo' => $this->corporateLogo, + 'corporate_logo' => $_ENV['LMS_APP_STORAGE'] . $this->corporateLogo, 'valid_until' => $this->members_expire_date, ];