Data corporate & member linking ke client portal
This commit is contained in:
ivan-sim
2023-09-27 17:37:21 +07:00
parent 1abb9b2539
commit 544eb32a81
19 changed files with 245 additions and 335 deletions

View File

@@ -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));
}
}

View File

@@ -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);
}
}
}