update fitur alarm center

This commit is contained in:
2023-10-13 10:47:22 +07:00
parent a9e6a750ad
commit 54019e998d
17 changed files with 1563 additions and 265 deletions

View File

@@ -30,6 +30,7 @@ class Claim extends Model
'plan_id',
'benefit_id',
'status',
'service_code'
];
protected $hidden = [

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ClaimEncounter extends Model
{
use HasFactory;
protected $table = 'claim_encounter';
}

View File

@@ -25,6 +25,11 @@ class ClaimItem extends Model
return $this->belongsTo(Claim::class, 'claim_id');
}
public function benefit()
{
return $this->belongsTo(Benefit::class, 'claim_itemable_id');
}
public function claim_itemable()
{
return $this->morphTo();

View File

@@ -98,6 +98,12 @@ class Member extends Model
return $this->hasMany(Claim::class, 'member_id', 'id');
}
public function claimRequest()
{
return $this->hasMany(ClaimRequest::class, 'member_id', 'id')->where('claim_id', '!=', null);
}
public function postponedClaims()
{
return $this->hasMany(Claim::class, 'member_id', 'id')->where('status', 'postpone');

View File

@@ -130,7 +130,10 @@ class CorporateMemberService
public function getAllMemberAlarmCenter(int $corporateId, Request $request)
{
$limit = $request->has('perPage') ? $request->input('perPage') : 10;
$start_date = date('Y-m-d', strtotime($request->input('start_date') . ' +1 day'));
$end_date = date('Y-m-d', strtotime($request->input('end_date') . ' +1 day'));
// dd($request);
return Member::query()
->joinCorporateEmployees('left')
->joinMemberPlans('left')
@@ -143,9 +146,18 @@ class CorporateMemberService
->orWhere('members.name', 'like', "%" . $search . "%");
});
})
->when($request->input('start_date'), function (Builder $query, $start) {
$query->where('member_plans.start', '>=', $start);
})
->when($request->input('end_date'), function (Builder $query, $end) {
$query->where('member_plans.end', '<', $end);
})
->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',