update
This commit is contained in:
@@ -3,7 +3,10 @@
|
|||||||
namespace Modules\Primaya\Http\Controllers\Api;
|
namespace Modules\Primaya\Http\Controllers\Api;
|
||||||
|
|
||||||
use App\Helpers\Helper;
|
use App\Helpers\Helper;
|
||||||
|
use App\Models\CorporateBenefit;
|
||||||
use App\Models\Member;
|
use App\Models\Member;
|
||||||
|
use App\Models\MemberPlan;
|
||||||
|
use App\Models\Plan;
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
use Illuminate\Contracts\Support\Renderable;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
@@ -38,6 +41,7 @@ class MemberController extends Controller
|
|||||||
{
|
{
|
||||||
$members = DB::table('members')
|
$members = DB::table('members')
|
||||||
->leftJoin('member_policies', 'member_policies.member_id','=', 'members.member_id')
|
->leftJoin('member_policies', 'member_policies.member_id','=', 'members.member_id')
|
||||||
|
->leftJoin('corporate_employees', 'corporate_employees.member_id','=', 'members.member_id')
|
||||||
->leftJoin('persons', 'persons.id', '=', 'members.person_id')
|
->leftJoin('persons', 'persons.id', '=', 'members.person_id')
|
||||||
->where('members.member_id', '=', $request->no_polis)
|
->where('members.member_id', '=', $request->no_polis)
|
||||||
->where('members.birth_date', '=', $request->birth_date)
|
->where('members.birth_date', '=', $request->birth_date)
|
||||||
@@ -59,13 +63,24 @@ class MemberController extends Controller
|
|||||||
{
|
{
|
||||||
$res_data['members'] = $members;
|
$res_data['members'] = $members;
|
||||||
|
|
||||||
|
// $services = DB::table('member_plans')
|
||||||
|
// ->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id')
|
||||||
|
// ->leftJoin('services', 'services.code', '=', 'plans.service_code')
|
||||||
|
// ->where('member_plans.member_id', $members->id)
|
||||||
|
// ->whereNull('member_plans.deleted_at')
|
||||||
|
// ->select('plans.service_code', 'services.name')
|
||||||
|
// ->get();
|
||||||
|
// $res_data['services'] = $services;
|
||||||
|
|
||||||
$benefits = DB::table('member_plans')
|
$benefits = DB::table('member_plans')
|
||||||
->leftJoin('corporate_benefits','corporate_benefits.plan_id', '=', 'member_plans.plan_id')
|
->leftJoin('corporate_benefits','corporate_benefits.plan_id', '=', 'member_plans.plan_id')
|
||||||
->leftJoin('benefits', 'benefits.id', '=', 'corporate_benefits.benefit_id')
|
->leftJoin('benefits', 'benefits.id', '=', 'corporate_benefits.benefit_id')
|
||||||
->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id')
|
->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id')
|
||||||
->leftJoin('services', 'services.code', '=', 'plans.service_code')
|
->leftJoin('services', 'services.code', '=', 'plans.service_code')
|
||||||
->where('member_plans.member_id', '=', $members->id)
|
->where('member_plans.member_id', '=', $members->id)
|
||||||
|
->where('plans.service_code','=', 'OP')
|
||||||
->select(
|
->select(
|
||||||
|
'benefits.id',
|
||||||
'benefits.description',
|
'benefits.description',
|
||||||
'benefits.code',
|
'benefits.code',
|
||||||
'corporate_benefits.corporate_id',
|
'corporate_benefits.corporate_id',
|
||||||
@@ -74,96 +89,108 @@ class MemberController extends Controller
|
|||||||
->get();
|
->get();
|
||||||
$res_data['benefits'] = $benefits;
|
$res_data['benefits'] = $benefits;
|
||||||
|
|
||||||
$services = DB::table('member_plans')
|
|
||||||
->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id')
|
|
||||||
->leftJoin('services', 'services.code', '=', 'plans.service_code')
|
|
||||||
->where('member_plans.member_id', $members->id)
|
|
||||||
->whereNull('member_plans.deleted_at')
|
|
||||||
->select('plans.service_code', 'services.name')
|
|
||||||
->get();
|
|
||||||
$res_data['services'] = $services;
|
|
||||||
|
|
||||||
// Group Services
|
// Group Services
|
||||||
$groupServices = [];
|
// $groupServices = [];
|
||||||
foreach ($res_data['benefits'] as $benefit) {
|
// foreach ($res_data['benefits'] as $benefit) {
|
||||||
$serviceCode = $benefit->service_code;
|
// $serviceCode = $benefit->service_code;
|
||||||
$groupServices[$serviceCode][] = [
|
// $groupServices[$serviceCode][] = [
|
||||||
'description' => $benefit->description,
|
// 'description' => $benefit->description,
|
||||||
'code' => $benefit->code,
|
// 'code' => $benefit->code,
|
||||||
];
|
// ];
|
||||||
}
|
// }
|
||||||
|
|
||||||
$res_data['groupServices'] = $groupServices;
|
// $res_data['groupServices'] = $groupServices;
|
||||||
|
|
||||||
$res_data['type'] = $request->type;
|
// $res_data['type'] = $request->type;
|
||||||
|
|
||||||
// Provider
|
// Provider
|
||||||
$providers = DB::table('organizations')
|
// $providers = DB::table('organizations')
|
||||||
->where('organizations.type', '=', 'hospital')
|
// ->where('organizations.type', '=', 'hospital')
|
||||||
->where('organizations.corporate_id_partner', '!=', 8)
|
// ->where('organizations.corporate_id_partner', '!=', 8)
|
||||||
->orWhere('organizations.corporate_id_partner', NULL)
|
// ->orWhere('organizations.corporate_id_partner', NULL)
|
||||||
->where('status', '=', 'active')
|
// ->where('status', '=', 'active')
|
||||||
->orderBy('organizations.name','asc')
|
// ->orderBy('organizations.name','asc')
|
||||||
->select(
|
// ->select(
|
||||||
'organizations.id',
|
// 'organizations.id',
|
||||||
'organizations.name'
|
// 'organizations.name'
|
||||||
)
|
// )
|
||||||
->get();
|
// ->get();
|
||||||
|
|
||||||
$res_data['providers'] = $providers;
|
// $res_data['providers'] = $providers;
|
||||||
|
|
||||||
//company
|
//company
|
||||||
$companies = DB::table('corporates')
|
// $companies = DB::table('corporates')
|
||||||
->where('corporates.active', '=', 1)
|
// ->where('corporates.active', '=', 1)
|
||||||
|
// ->select(
|
||||||
|
// 'corporates.id',
|
||||||
|
// 'corporates.name'
|
||||||
|
// )
|
||||||
|
// ->get();
|
||||||
|
|
||||||
|
// $res_data['companies'] = $companies;
|
||||||
|
|
||||||
|
$corporateEmployee = DB::table('corporate_employees')
|
||||||
|
->leftJoin('corporates', 'corporates.id', '=', 'corporate_employees.corporate_id')
|
||||||
|
->leftJoin('corporate_policies', 'corporate_policies.corporate_id', '=', 'corporates.id')
|
||||||
|
->where('corporate_employees.status', 'ACTIVE')
|
||||||
|
->where('corporates.active', 1)
|
||||||
|
->where('corporate_policies.active', 1)
|
||||||
|
->where('corporate_employees.member_id', $members->id)
|
||||||
->select(
|
->select(
|
||||||
'corporates.id',
|
'corporate_policies.total_premi',
|
||||||
'corporates.name'
|
'corporate_employees.corporate_id'
|
||||||
)
|
)
|
||||||
->get();
|
->first();
|
||||||
|
|
||||||
$res_data['companies'] = $companies;
|
$res_data['total_premi'] = $corporateEmployee->total_premi ?? 0;
|
||||||
|
$res_data['limit_rules'] = DB::table('member_plans')
|
||||||
//company
|
|
||||||
$companies = DB::table('corporates')
|
|
||||||
->where('corporates.active', '=', 1)
|
|
||||||
->select(
|
|
||||||
'corporates.id',
|
|
||||||
'corporates.name'
|
|
||||||
)
|
|
||||||
->get();
|
|
||||||
|
|
||||||
$res_data['companies'] = $companies;
|
|
||||||
|
|
||||||
$corporateEmployeePremi = DB::table('corporate_employees')
|
|
||||||
->leftJoin('corporates', 'corporates.id', '=', 'corporate_employees.corporate_id')
|
|
||||||
->leftJoin('corporate_policies', 'corporate_policies.corporate_id', '=', 'corporates.id')
|
|
||||||
->where('corporate_employees.status', 'ACTIVE')
|
|
||||||
->where('corporates.active', 1)
|
|
||||||
->where('corporate_policies.active', 1)
|
|
||||||
->where('corporate_employees.member_id', $members->id)
|
|
||||||
->value('corporate_policies.total_premi');
|
|
||||||
|
|
||||||
$res_data['total_premi'] = $corporateEmployeePremi ?? 0;
|
|
||||||
|
|
||||||
$limitRules = DB::table('member_plans')
|
|
||||||
->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id')
|
->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id')
|
||||||
->where('member_plans.member_id', $members->id)
|
->where('member_plans.member_id', $members->id)
|
||||||
->where('member_plans.status', 'active')
|
->where('member_plans.status', 'active')
|
||||||
->where('plans.active', 1)
|
->where('plans.active', 1)
|
||||||
->value('plans.limit_rules');
|
->value('plans.limit_rules') ?? 0;
|
||||||
|
|
||||||
$res_data['limit_rules'] = $limitRules ?? 0;
|
$planMember = MemberPlan::where('member_id', $members->id)->get('plan_id');
|
||||||
|
|
||||||
|
$planId = Plan::whereIn('id', $planMember)->where('service_code', 'OP')->first();
|
||||||
|
$benefit = CorporateBenefit::with(['benefit', 'plan'])->where('plan_id', $planId->id)->get()->toArray();
|
||||||
|
$benefitData = [];
|
||||||
|
if (count($benefit)){
|
||||||
|
foreach($benefit as $data){
|
||||||
|
$data['benefit']['plan_id'] = $data['plan_id'];
|
||||||
|
$data['benefit']['limit_amount'] = $data['limit_amount'];
|
||||||
|
$data['benefit']['family_plan'] = $planId->family_plan;
|
||||||
|
$data['benefit']['max_frequency_period'] = $data['max_frequency_period'];
|
||||||
|
$data['benefit']['limit_amount_plan'] = $data['plan']['limit_rules'];
|
||||||
|
$data['benefit']['family_plan_plans'] = $data['plan']['family_plan'];
|
||||||
|
array_push($benefitData, $data['benefit']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$memberUsage = Helper::getUsageMember($corporateEmployee->corporate_id, $members->id, $benefitData);;
|
||||||
|
|
||||||
|
$res_data['used_limit'] = json_decode($memberUsage);
|
||||||
|
// company
|
||||||
|
$companies = DB::table('corporates')
|
||||||
|
->where('corporates.active', 1)
|
||||||
|
->where('corporates.id', $corporateEmployee->corporate_id ?? null)
|
||||||
|
->select(
|
||||||
|
'corporates.id',
|
||||||
|
'corporates.name'
|
||||||
|
)
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$res_data['companies'] = $companies;
|
||||||
|
|
||||||
// specialities
|
// specialities
|
||||||
$specialities = DB::table('specialities')
|
// $specialities = DB::table('specialities')
|
||||||
->select(
|
// ->select(
|
||||||
'specialities.id',
|
// 'specialities.id',
|
||||||
'specialities.name'
|
// 'specialities.name'
|
||||||
)
|
// )
|
||||||
->orderBy('specialities.name','asc')
|
// ->orderBy('specialities.name','asc')
|
||||||
->get();
|
// ->get();
|
||||||
|
|
||||||
$res_data['specialities'] = $specialities;
|
// $res_data['specialities'] = $specialities;
|
||||||
|
|
||||||
|
|
||||||
return ApiResponse::apiResponse("Success", $res_data, trans('Message.success'), 200);
|
return ApiResponse::apiResponse("Success", $res_data, trans('Message.success'), 200);
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ class RequestLogController extends Controller
|
|||||||
'type' => 'hospital',
|
'type' => 'hospital',
|
||||||
'corporate_id_partner' => $request->corporate_id_partner ? implode(',', $request->corporate_id_partner) : null,
|
'corporate_id_partner' => $request->corporate_id_partner ? implode(',', $request->corporate_id_partner) : null,
|
||||||
'created_at' => now(),
|
'created_at' => now(),
|
||||||
'created_by' => auth()->user()->id
|
// 'created_by' => auth()->user()->id
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Insert data ke tabel addresses
|
// Insert data ke tabel addresses
|
||||||
@@ -120,7 +120,7 @@ class RequestLogController extends Controller
|
|||||||
'addressable_id' => $organization_id,
|
'addressable_id' => $organization_id,
|
||||||
'type' => 'hospital',
|
'type' => 'hospital',
|
||||||
'created_at' => now(),
|
'created_at' => now(),
|
||||||
'created_by' => auth()->user()->id
|
// 'created_by' => auth()->user()->id
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Update main_address_id di tabel organizations
|
// Update main_address_id di tabel organizations
|
||||||
@@ -235,7 +235,7 @@ class RequestLogController extends Controller
|
|||||||
'amount_not_approved' => $value['amount_not_approved'],
|
'amount_not_approved' => $value['amount_not_approved'],
|
||||||
'excess_paid' => $value['excess_paid'],
|
'excess_paid' => $value['excess_paid'],
|
||||||
'keterangan' => $value['keterangan'] ?? '',
|
'keterangan' => $value['keterangan'] ?? '',
|
||||||
'created_by' => auth()->user()->id,
|
// 'created_by' => auth()->user()->id,
|
||||||
];
|
];
|
||||||
|
|
||||||
RequestLogBenefit::create($data);
|
RequestLogBenefit::create($data);
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class AuthService
|
|||||||
exec($cmd);
|
exec($cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Issue JWT access token for the given client
|
* Issue JWT access token for the given client
|
||||||
*/
|
*/
|
||||||
@@ -90,23 +90,30 @@ class AuthService
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$parts = explode('.', $token);
|
$parts = explode('.', $token);
|
||||||
|
|
||||||
|
|
||||||
if (count($parts) !== 3) {
|
if (count($parts) !== 3) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$payload = json_decode(base64_decode(strtr($parts[1], '-_', '+/')));
|
// $payload = json_decode(base64_decode(strtr($parts[1], '-_', '+/')));
|
||||||
|
$payloadRaw = $parts[1];
|
||||||
|
$payloadRaw = strtr($payloadRaw, '-_', '+/');
|
||||||
|
$padding = strlen($payloadRaw) % 4;
|
||||||
|
if ($padding) {
|
||||||
|
$payloadRaw .= str_repeat('=', 4 - $padding);
|
||||||
|
}
|
||||||
|
$payload = json_decode(base64_decode($payloadRaw));
|
||||||
$clientId = $payload->sub ?? null;
|
$clientId = $payload->sub ?? null;
|
||||||
|
|
||||||
if (!$clientId) {
|
if (!$clientId) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$clients = config('api_clients.clients');
|
$clients = config('api_clients.clients');
|
||||||
$client = collect($clients)->where('api_key', $clientId)->first();
|
|
||||||
|
|
||||||
|
$client = collect($clients)->where('api_key', $clientId)->first();
|
||||||
if (!$client || !isset($client['api_secret'])) {
|
if (!$client || !isset($client['api_secret'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return \Firebase\JWT\JWT::decode($token, new \Firebase\JWT\Key($client['api_secret'], 'HS256'));
|
return \Firebase\JWT\JWT::decode($token, new \Firebase\JWT\Key($client['api_secret'], 'HS256'));
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user