API Home dan Linking
This commit is contained in:
@@ -11,6 +11,7 @@ use Illuminate\Support\Facades\DB;
|
||||
use App\Models\Member;
|
||||
use App\Models\User;
|
||||
use App\Models\Service;
|
||||
use App\Models\Icd;
|
||||
use DateTime;
|
||||
|
||||
class Helper
|
||||
@@ -117,6 +118,16 @@ class Helper
|
||||
}
|
||||
}
|
||||
|
||||
public static function diagnosisName($code)
|
||||
{
|
||||
$icd = Icd::where('code', $code)->get()->first();
|
||||
if ($icd){
|
||||
return $icd->name;
|
||||
} else {
|
||||
return '-';
|
||||
}
|
||||
}
|
||||
|
||||
public static function paginateResources($resource)
|
||||
{
|
||||
return [
|
||||
@@ -443,4 +454,23 @@ class Helper
|
||||
}
|
||||
}
|
||||
|
||||
public static function calculateDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371) {
|
||||
// Convert degrees to radians
|
||||
$latFrom = deg2rad($latitudeFrom);
|
||||
$lonFrom = deg2rad($longitudeFrom);
|
||||
$latTo = deg2rad($latitudeTo);
|
||||
$lonTo = deg2rad($longitudeTo);
|
||||
|
||||
// Calculate the change in coordinates
|
||||
$deltaLat = $latTo - $latFrom;
|
||||
$deltaLon = $lonTo - $lonFrom;
|
||||
|
||||
// Apply Haversine formula
|
||||
$a = sin($deltaLat / 2) * sin($deltaLat / 2) + cos($latFrom) * cos($latTo) * sin($deltaLon / 2) * sin($deltaLon / 2);
|
||||
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
|
||||
$distance = $earthRadius * $c;
|
||||
|
||||
return $distance;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,12 @@ namespace App\Http\Resources\OLDLMS;
|
||||
|
||||
use App\Services\ClaimService;
|
||||
use App\Models\Corporate;
|
||||
use App\Models\CorporateBenefit;
|
||||
use App\Models\RequestLog;
|
||||
use App\Models\RequestLogBenefit;
|
||||
use App\Models\MemberPlan;
|
||||
use App\Helpers\Helper;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
|
||||
@@ -21,7 +27,46 @@ class MemberResource extends JsonResource
|
||||
$currentMemberPlan = $this->memberPlans?->first();
|
||||
$limitTelecon = $currentMemberPlan->plan->limit_telecon ?? null;
|
||||
$limitTelecon = $this->totalUsage >= 6 ? null : $limitTelecon;
|
||||
$services = MemberPlan::where('member_id', $this->id)->with('plan')->get()->toArray();
|
||||
$dataServices = [];
|
||||
if ($services) {
|
||||
foreach($services as $service) {
|
||||
$serviceName = Helper::serviceName($service['plan']['service_code']);
|
||||
$benefits = CorporateBenefit::where('plan_id', $service['plan_id'])->with('benefit')->get()->toArray();
|
||||
$dataBenefit = [];
|
||||
foreach($benefits as $benefit){
|
||||
$dataBenefitItem = $benefit['benefit']['description'];
|
||||
array_push($dataBenefit, $dataBenefitItem);
|
||||
}
|
||||
$data = [
|
||||
'name' => $serviceName,
|
||||
'benefit' => $dataBenefit
|
||||
];
|
||||
|
||||
array_push($dataServices, $data);
|
||||
}
|
||||
}
|
||||
|
||||
// LOG
|
||||
$dataLog = [];
|
||||
$requestLogs = RequestLog::where('member_id', $this->id)->with('organization')->get()->toArray();
|
||||
$totalBenefit = 0;
|
||||
if ($requestLogs) {
|
||||
foreach($requestLogs as $requestLog) {
|
||||
$requestLogBenefit = RequestLogBenefit::where('request_log_id', $requestLog['id'])->sum('amount_approved');
|
||||
$totalBenefit += $requestLogBenefit;
|
||||
$data = [
|
||||
'id' => $requestLog['id'],
|
||||
'code' => $requestLog['code'],
|
||||
'submission_date' => Carbon::parse($requestLog['submission_date'])->format('d M Y H:i:s'),
|
||||
'provider_name' => $requestLog['organization']['name'],
|
||||
'service' => Helper::serviceName($requestLog['service_code'])
|
||||
];
|
||||
|
||||
array_push($dataLog, $data);
|
||||
}
|
||||
}
|
||||
|
||||
$data = [
|
||||
'id' => $this->id,
|
||||
'member_name' => $this->full_name,
|
||||
@@ -33,6 +78,9 @@ class MemberResource extends JsonResource
|
||||
'start_date' => $this->members_effective_date,
|
||||
'corporate_logo' => $_ENV['LMS_APP_STORAGE'] . $this->corporateLogo,
|
||||
'valid_until' => $this->members_expire_date,
|
||||
'total_benefit_usage' => $totalBenefit,
|
||||
'service' => $dataServices,
|
||||
'histor_log' => $dataLog
|
||||
|
||||
];
|
||||
return $data;
|
||||
|
||||
@@ -23,6 +23,8 @@ class Person extends Model
|
||||
'birth_date',
|
||||
'birth_place',
|
||||
'language',
|
||||
'isOnline',
|
||||
'review',
|
||||
'race',
|
||||
'citizenship',
|
||||
'current_employment',
|
||||
|
||||
Reference in New Issue
Block a user