LMSN-191
Data corporate & member linking ke client portal
This commit is contained in:
@@ -13,6 +13,7 @@ use Modules\Client\Transformers\Dashboard\MemberResources as ClaimSubmitMemberRe
|
||||
use Modules\Client\Transformers\Dashboard\MemberResources as DashboardMemberResources;
|
||||
use Modules\Client\Transformers\Dashboard\MemberAlarmCenterResources as DashboardMemberAlarmResources;
|
||||
use Modules\Client\Transformers\DataMemberResource;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class CorporateMemberController extends Controller
|
||||
{
|
||||
@@ -47,7 +48,7 @@ class CorporateMemberController extends Controller
|
||||
|
||||
public function show($corporate_id, $person_id)
|
||||
{
|
||||
$data = Member::with(['claims', 'person', 'employeds', 'currentPlan.benefits'])
|
||||
$data = Member::with(['claims', 'person', 'employeds', 'currentPlan.benefits', 'person.currentAddress'])
|
||||
->where('person_id', $person_id)
|
||||
->whereHas('employeds', function ($query) use ($corporate_id) {
|
||||
$query->where('corporate_id', $corporate_id);
|
||||
@@ -57,6 +58,40 @@ class CorporateMemberController extends Controller
|
||||
$totalClaims = $data->claims->sum('total_claim');
|
||||
$data->total_claims = $totalClaims;
|
||||
|
||||
//Get Family
|
||||
|
||||
$data_family = DB::table('members')
|
||||
->join('persons', 'members.person_id', '=', 'persons.id')
|
||||
->select('members.*','persons.phone')
|
||||
->where('principal_id', $data->member_id)
|
||||
->get();
|
||||
if($data_family->isEmpty())
|
||||
{
|
||||
$principal_id = DB::table('members')
|
||||
->where('member_id', $data->member_id)
|
||||
->select('principal_id')
|
||||
->first();
|
||||
$data_family = DB::table('members')
|
||||
->join('persons', 'members.person_id', '=', 'persons.id')
|
||||
->select('members.*','persons.phone')
|
||||
->where('principal_id', $principal_id->principal_id)
|
||||
->where('members.member_id','<>',$data->member_id)
|
||||
->orWhere('members.member_id', $principal_id->principal_id)
|
||||
->get();
|
||||
}
|
||||
|
||||
$data->family = $data_family;
|
||||
|
||||
//Claim History
|
||||
$data_claim_history = DB::table('claim_requests')
|
||||
->join('claims', 'claims.claim_request_id', '=', 'claim_requests.id')
|
||||
->join('claim_items', 'claim_items.claim_id', '=', 'claims.id')
|
||||
->join('benefits', 'benefits.id', '=', 'claim_items.claim_itemable_id')
|
||||
->select('claim_requests.status','claim_requests.submission_date','benefits.description')
|
||||
->where('claim_requests.member_id', $data->id)
|
||||
->get();
|
||||
$data->claim_history = $data_claim_history;
|
||||
|
||||
return response()->json(DataMemberResource::make($data));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace Modules\Client\Http\Controllers\Api;
|
||||
|
||||
use App\Models\Person;
|
||||
use App\Models\Member;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller;
|
||||
|
||||
@@ -29,4 +30,36 @@ class DataController extends Controller
|
||||
return response()->json(['error' => 'Failed to update data'], 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function updateFamily(Request $request)
|
||||
{
|
||||
try {
|
||||
// Ambil data keluarga dari payload
|
||||
$familyData = $request->json()->all();
|
||||
|
||||
// Loop melalui data keluarga
|
||||
foreach ($familyData as $familyMember) {
|
||||
// Ambil ID anggota keluarga dari payload
|
||||
$person_id = $familyMember['person_id'];
|
||||
|
||||
// Perbarui data anggota keluarga sesuai dengan payload
|
||||
Member::where('person_id', $person_id)->update([
|
||||
'name' => $familyMember['name'],
|
||||
'email' => $familyMember['email'],
|
||||
]);
|
||||
|
||||
Person::where('id', $person_id)->update([
|
||||
'name' => $familyMember['name'],
|
||||
'email' => $familyMember['email'],
|
||||
'phone' => $familyMember['phone'],
|
||||
]);
|
||||
}
|
||||
|
||||
// Respon sukses jika pembaruan berhasil
|
||||
return response()->json([$person_id => 'Data keluarga berhasil diperbarui'], 200);
|
||||
} catch (\Exception $e) {
|
||||
// Tangani kesalahan jika ada yang terjadi
|
||||
return response()->json(['error' => 'Gagal memperbarui data keluarga: ' . $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ Route::prefix('client')->group(function () {
|
||||
Route::get('user', [UserController::class, 'index']);
|
||||
Route::get('data/{id}', [DataController::class, 'show']);
|
||||
Route::put('data/{id}', [DataController::class, 'update']);
|
||||
Route::post('update-family', [DataController::class, 'updateFamily']);
|
||||
|
||||
Route::get('corporate-manage', [CorporateManageController::class, 'index']);
|
||||
Route::get('corporate-manage/{corporate_id}', [CorporateManageController::class, 'show']);
|
||||
|
||||
@@ -25,10 +25,21 @@ class DataMemberResource extends JsonResource
|
||||
'name' => $this->name,
|
||||
'name_suffix' => $this->name_suffix,
|
||||
'birth_date' => $this->birth_date,
|
||||
'birth_place' => $this->person->birth_place,
|
||||
'last_weight_kg' => $this->person->last_weight_kg,
|
||||
'last_height_cm'=> $this->person->last_height_cm,
|
||||
'phone' => $this->person->phone,
|
||||
'nik' => $this->person->nik,
|
||||
'religion' => $this->person->religion,
|
||||
'marital_status' => $this->person->marital_status,
|
||||
'last_education' => $this->person->last_education,
|
||||
'current_employment' => $this->person->current_employment,
|
||||
'main_address_id' => $this->person->currentAddress->text,
|
||||
'family' => $this->family,
|
||||
'claim_history' => $this->claim_history,
|
||||
'gender' => $this->gender,
|
||||
'language' => $this->language,
|
||||
'race' => $this->race,
|
||||
'marital_status' => $this->marital_status,
|
||||
'record_type' => $this->record_type,
|
||||
'principal_id' => $this->principal_id,
|
||||
'relation_with_principal' => $this->relation_with_principal,
|
||||
|
||||
Reference in New Issue
Block a user