[Client Portal] Penyesuaian get data alarm center

This commit is contained in:
Linksehat Staging Server
2024-01-13 18:19:12 +07:00
parent 30cfcce4af
commit 0bda72da48
4 changed files with 92 additions and 13 deletions

View File

@@ -3,6 +3,7 @@
namespace Modules\Client\Transformers\AlarmCenter;
use Illuminate\Http\Resources\Json\JsonResource;
use App\Models\Service;
class DataListClaimMemberResource extends JsonResource
{
@@ -14,13 +15,27 @@ class DataListClaimMemberResource extends JsonResource
*/
public function toArray($request)
{
$serviceData = Service::where('code', $this->service_code)->first();
if ($serviceData) {
$serviceName = $serviceData->name;
} else {
$serviceName = $this->service_cod;
}
if ($this->status == 'approved' && $this->status_final_log ){
$status = 'Done';
} else if ($this->status == 'declined' || $this->status_final_log == 'declined') {
$status = 'Declined';
} else {
$status = 'Ongoing';
}
return [
'id' => $this->id,
'admission_date' => $this->submission_date ?? null,
'discharge_date' => $this->discharge_date ?? null,
'code' => $this->code ?? null,
'service_type' => $this->service_code == 'IP' ? 'Inpatient' : 'Outpatient',
'status' => $this->status === 'requested' || ($this->status === 'approved' && $this->status_final_log) || ($this->status_final_log === 'requested' && $this->status === 'requested') ? 'Ongoing' : ($this->status === 'approved' && $this->status_final_log === 'approved' ? 'Approved' : 'Declined')
'service_type' => $serviceName,
'status' => $status,
];
}
}

View File

@@ -3,6 +3,7 @@
namespace Modules\Client\Transformers\AlarmCenter;
use App\Helpers\Helper;
use App\Models\Service;
use Illuminate\Http\Resources\Json\JsonResource;
class DataServiceMonitoring extends JsonResource
@@ -15,6 +16,12 @@ class DataServiceMonitoring extends JsonResource
*/
public function toArray($request)
{
$serviceData = Service::where('code', $this->service_code)->first();
if ($serviceData) {
$serviceName = $serviceData->name;
} else {
$serviceName = $this->service_cod;
}
return [
'companyName' => $this->member->currentCorporate->name ?? null,
'memberId' => $this->member->member_id ?? null,
@@ -23,8 +30,9 @@ class DataServiceMonitoring extends JsonResource
'dateOfBirth' => $this->member->birth_date ?? null,
'phoneNumber' => $this->person->phone ?? null,
'email' => $this->member->email ?? ($this->member->person->email ?? null),
'serviceName' => $this->service_code === 'IP' ? 'Inpatient' : ($this->service_code === 'OP' ? 'Outpatient' : null),
'serviceName' => $serviceName,
'benefitName' => $this->requestLogBenefit->benefit->description ?? null,
'benefit' => $this->requestLogBenefit ?? null,
'hospital' => $this->organization->name ?? null,
'admissionDate' => $this->submission_date ?? null,
'dischargeDate' => $this->discharge_date ?? null,

View File

@@ -5,6 +5,7 @@ namespace App\Services;
use App\Models\CorporateEmployee;
use App\Models\Member;
use App\Models\Encounter;
use App\Models\RequestLog;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
@@ -152,8 +153,61 @@ class CorporateMemberService
// $end_date = date('Y-m-d', strtotime($request->input('end_date') . ' +1 day'));
// dd($request);
return Member::query()
// ->joinCorporateEmployees('left')
// return Member::query()
// // ->joinCorporateEmployees('left')
// // ->joinMemberPlans('left')
// // ->joinPlans('left')
// // ->with(['currentPlan', 'person'])
// // ->where('corporate_employees.corporate_id', $corporateId)
// ->when($request->input('search'), function (Builder $query, $search) {
// $query->where(function (Builder $query) use ($search) {
// $query->orWhere('members.member_id', 'like', "%" . $search . "%")
// ->orWhere('members.name', 'like', "%" . $search . "%");
// });
// })
// ->when($request->input('start_date'), function (Builder $query, $start_date) {
// $query->where('members.members_effective_date', '>=', $start_date);
// })
// ->when($request->input('end_date'), function (Builder $query, $end_date) {
// $query->where('members.members_expire_date', '<', $end_date);
// })
// ->when($request->input('division'), function (Builder $query, $value) {
// $query->where('corporate_employees.division_id', $value);
// })
// ->when($request->input('status'), function (Builder $query, $value) {
// $query->where('plans.active', $value);
// })
// ->when($request->has('orderBy'), function (Builder $query) use ($request) {
// $orderBy = match ($request->input('orderBy')) {
// 'memberId' => 'member_id',
// 'fullName' => 'name',
// // 'status' => 'active',
// 'start_date' => 'member_plans.members_effective_date',
// 'end_date' => 'member_plans.members_expire_date',
// // 'service' => 'plans.service_code',
// default => ''
// };
// $query->getQuery()->orderBy($orderBy, $request->order);
// })
// ->select([
// 'members.id',
// 'members.person_id',
// 'members.member_id',
// 'members.name',
// 'members.members_effective_date', // Use the actual property name
// 'members.members_expire_date', // Use the actual property name
// // 'plans.active',
// // 'plans.service_code'
// ])
// // ->selectRaw("(select sum(`claims`.`total_claim`) from `claims` where `members`.`id` = `claims`.`member_id` AND `claims`.`deleted_at` IS NULL) AS `claims_sum_total_claim`")
// // ->groupBy('member_id')
// ->paginate($limit);
return RequestLog::query()
->leftJoin('members', 'request_logs.member_id', '=', 'members.id')
// ->joinMemberPlans('left')
// ->joinPlans('left')
// ->with(['currentPlan', 'person'])
@@ -180,10 +234,10 @@ class CorporateMemberService
$orderBy = match ($request->input('orderBy')) {
'memberId' => 'member_id',
'fullName' => 'name',
// 'status' => 'active',
'status' => 'active',
'start_date' => 'member_plans.members_effective_date',
'end_date' => 'member_plans.members_expire_date',
// 'service' => 'plans.service_code',
'request_date' => 'request_logs.submission_date',
default => ''
};
@@ -194,15 +248,17 @@ class CorporateMemberService
'members.id',
'members.person_id',
'members.member_id',
'members.name',
'members.name as full_name',
'members.members_effective_date', // Use the actual property name
'members.members_expire_date', // Use the actual property name
// 'plans.active',
// 'plans.service_code'
'members.active',
'request_logs.service_code',
])
// ->selectRaw("(select sum(`claims`.`total_claim`) from `claims` where `members`.`id` = `claims`.`member_id` AND `claims`.`deleted_at` IS NULL) AS `claims_sum_total_claim`")
// ->groupBy('member_id')
->groupBy('member_id')
->paginate($limit);
}
public function getAllMemberEmployeeData(int $corporateId, Request $request)

View File

@@ -51,8 +51,8 @@ export default function List() {
/* -------------------------------------------------------------------------- */
/* ------------------------------ handle order ------------------------------ */
const [order, setOrder] = useState<Order>('asc');
const [orderBy, setOrderBy] = useState('fullName');
const [order, setOrder] = useState<Order>('desc');
const [orderBy, setOrderBy] = useState('request_date');
const orders = {
order: order,