diff --git a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php index 52af40fb..e3ff0be7 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php @@ -98,6 +98,7 @@ class MemberController extends Controller // Provider $providers = DB::table('organizations') + ->where('organizations.type', '=', 'hospital') ->select( 'organizations.id', 'organizations.name' diff --git a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php index a7f796ad..a684ca66 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php @@ -26,7 +26,7 @@ class RequestLogController extends Controller 'service_code' => $request->service_code, 'id_provider' => $request->id_provider, 'name_provider' => $request->name_provider, - 'adress_provider' => $request->address_provider + 'address_provider' => $request->address_provider ]; $validator = Validator::make($request->all(), [ 'member_id' => 'required', @@ -53,17 +53,72 @@ class RequestLogController extends Controller } else { - - $requestLogControllerInstance = new PrimeCenterRequestLog(); - $response = $requestLogControllerInstance->createNew($request); + //insert data to organization + try { + if(!$request->id_provider) + { + // Memulai transaksi + DB::beginTransaction(); - if($response->original['statusCode'] == 200) - { - return ApiResponse::apiResponse("Success", $data, trans('Message.success'), 200); - } - else - { - return ApiResponse::apiResponse('Server Error', $data, trans('Message.server_error'), 500); + // Membuat singkatan dari nama rumah sakit + $singkatan = ""; + $words = explode(' ', $request->name_provider); + + foreach ($words as $word) { + $singkatan .= strtoupper(substr($word, 0, 1)); + } + + // Membuat kode organisasi + $kodeOrganisasi = "ORG000" . $singkatan; + + // Insert data ke tabel organizations + $organization_id = DB::table('organizations') + ->insertGetId([ + 'name' => $request->name_provider, + 'code' => $kodeOrganisasi, + 'type' => 'hospital', + 'created_at' => now(), + 'created_by' => auth()->user()->id + ]); + + // Insert data ke tabel addresses + $address_id = DB::table('addresses') + ->insertGetId([ + 'text'=> $request->address_provider, + 'addressable_type' => 'App\Models\Organization', + 'addressable_id' => $organization_id, + 'type' => 'hospital', + 'created_at' => now(), + 'created_by' => auth()->user()->id + ]); + + // Update main_address_id di tabel organizations + DB::table('organizations') + ->where('organizations.id', '=', $organization_id) + ->update(['main_address_id' => $address_id]); + + // Commit transaksi + DB::commit(); + $request->merge(['organization_id' => $organization_id]); + } + + $requestLogControllerInstance = new PrimeCenterRequestLog(); + $response = $requestLogControllerInstance->createNew($request); + + if($response->original['statusCode'] == 200) + { + return ApiResponse::apiResponse("Success", $data, trans('Message.success'), 200); + } + else + { + return ApiResponse::apiResponse('Server Error', $data, trans('Message.server_error'), 500); + } + } catch (\Exception $e) { + // Rollback transaksi jika terjadi kesalahan + DB::rollBack(); + + // Handle error, bisa di-log atau dikembalikan sebagai response + return ApiResponse::apiResponse('Server Error', $data, $e->getMessage(), 500); } } } @@ -308,6 +363,7 @@ class RequestLogController extends Controller $dataMember = DB::table('members') ->where('members.id', '=', $dataRequestLog->member_id) ->select( + 'members.id', 'members.principal_id', 'members.name', 'members.birth_date', @@ -321,9 +377,9 @@ class RequestLogController extends Controller '), DB::raw(' (Select corporates.name FROM corporates - INNER JOIN corporate_employees ON corporate_employees.corporate_id = corporates.id + LEFT JOIN corporate_employees ON corporate_employees.corporate_id = corporates.id WHERE corporate_employees.member_id = members.id LIMIT 1) AS nama_perusahaan - '), + '), DB::raw(' (Select services.name FROM services WHERE services.code = "'.$dataRequestLog->service_code.'" LIMIT 1) AS jenis_perwatan @@ -336,12 +392,12 @@ class RequestLogController extends Controller '), DB::raw(' (Select plans.code FROM member_plans - INNER JOIN plans ON plans.id = member_plans.plan_id + LEFT JOIN plans ON plans.id = member_plans.plan_id WHERE member_plans.member_id = members.id LIMIT 1) AS code_plan '), DB::raw(' (Select plans.limit_rules FROM member_plans - INNER JOIN plans ON plans.id = member_plans.plan_id + LEFT JOIN plans ON plans.id = member_plans.plan_id WHERE member_plans.member_id = members.id LIMIT 1) AS limit_rules '), DB::raw(' @@ -357,7 +413,6 @@ class RequestLogController extends Controller $dataNamaKaryawan = DB::table('members') ->where('members.member_id', '=', $dataMember->principal_id) ->select('members.name') - ->limit(1) ->first(); $data['namaKaryawan'] = $dataNamaKaryawan->name; } @@ -369,24 +424,26 @@ class RequestLogController extends Controller $data['request_logs'] = $dataRequestLog; - $dataRumahSakit = DB::table('users') - ->where('users.id', '=', $dataRequestLog->created_by) - ->select( - '*', - DB::raw(' - (Select organizations.name FROM organizations - WHERE organizations.id = users.organization_id LIMIT 1) AS nama_rumahsakit - '), - DB::raw(' - (Select addresses.text FROM organizations - INNER JOIN addresses ON addresses.id = organizations.main_address_id - WHERE organizations.id = users.organization_id LIMIT 1) AS alamat_rumahsakit - ') - ) + $dataRumahSakit = DB::table('organizations') + ->leftJoin('addresses', 'addresses.addressable_id', '=', 'organizations.id') + ->where('organizations.id', '=', $dataRequestLog->organization_id) + ->where('addresses.addressable_type', '=', 'App\Models\Organization') + ->select('organizations.name AS nama_rumahsakit', 'addresses.text AS alamat_rumahsakit') ->first(); $data['rumahSakit'] = $dataRumahSakit; + $logoPerusahaan = DB::table('files') + ->leftJoin('corporate_employees', 'corporate_employees.corporate_id', '=', 'files.fileable_id') + ->leftJoin('corporates', 'corporate_employees.corporate_id', '=', 'corporates.id') + ->where('corporate_employees.member_id', '=', $dataMember->id) + ->where('files.fileable_type', '=', 'App\Models\Corporate') + ->select('files.path', 'corporates.code', 'corporates.name') + ->orderBy('files.id', 'desc') + ->first(); + + $data['logoPerusahaan'] = $logoPerusahaan; + $pdf = new Dompdf(); $options = new Options(); @@ -426,6 +483,7 @@ class RequestLogController extends Controller $dataMember = DB::table('members') ->where('members.id', '=', $dataRequestLog->member_id) ->select( + 'members.id', 'members.principal_id', 'members.name', 'members.birth_date', @@ -439,7 +497,7 @@ class RequestLogController extends Controller '), DB::raw(' (Select corporates.name FROM corporates - INNER JOIN corporate_employees ON corporate_employees.corporate_id = corporates.id + LEFT JOIN corporate_employees ON corporate_employees.corporate_id = corporates.id WHERE corporate_employees.member_id = members.id LIMIT 1) AS nama_perusahaan '), DB::raw(' @@ -454,12 +512,12 @@ class RequestLogController extends Controller '), DB::raw(' (Select plans.code FROM member_plans - INNER JOIN plans ON plans.id = member_plans.plan_id + LEFT JOIN plans ON plans.id = member_plans.plan_id WHERE member_plans.member_id = members.id LIMIT 1) AS code_plan '), DB::raw(' (Select plans.limit_rules FROM member_plans - INNER JOIN plans ON plans.id = member_plans.plan_id + LEFT JOIN plans ON plans.id = member_plans.plan_id WHERE member_plans.member_id = members.id LIMIT 1) AS limit_rules '), DB::raw(' @@ -500,24 +558,27 @@ class RequestLogController extends Controller $data['dataClaimLog'] = $dataClaimLog; - $dataRumahSakit = DB::table('users') - ->where('users.id', '=', $dataRequestLog->created_by) - ->select( - '*', - DB::raw(' - (Select organizations.name FROM organizations - WHERE organizations.id = users.organization_id LIMIT 1) AS nama_rumahsakit - '), - DB::raw(' - (Select addresses.text FROM organizations - INNER JOIN addresses ON addresses.id = organizations.main_address_id - WHERE organizations.id = users.organization_id LIMIT 1) AS alamat_rumahsakit - ') - ) + + $dataRumahSakit = DB::table('organizations') + ->leftJoin('addresses', 'addresses.addressable_id', '=', 'organizations.id') + ->where('organizations.id', '=', $dataRequestLog->organization_id) + ->where('addresses.addressable_type', '=', 'App\Models\Organization') + ->select('organizations.name AS nama_rumahsakit', 'addresses.text AS alamat_rumahsakit') ->first(); $data['rumahSakit'] = $dataRumahSakit; + $logoPerusahaan = DB::table('files') + ->leftJoin('corporate_employees', 'corporate_employees.corporate_id', '=', 'files.fileable_id') + ->leftJoin('corporates', 'corporate_employees.corporate_id', '=', 'corporates.id') + ->where('corporate_employees.member_id', '=', $dataMember->id) + ->where('files.fileable_type', '=', 'App\Models\Corporate') + ->select('files.path', 'corporates.code', 'corporates.name') + ->orderBy('files.id', 'desc') + ->first(); + + $data['logoPerusahaan'] = $logoPerusahaan; + $pdf = new Dompdf(); $options = new Options(); diff --git a/Modules/Internal/Http/Controllers/Api/AuthController.php b/Modules/Internal/Http/Controllers/Api/AuthController.php index 88e9ea54..36ee7e4c 100644 --- a/Modules/Internal/Http/Controllers/Api/AuthController.php +++ b/Modules/Internal/Http/Controllers/Api/AuthController.php @@ -11,19 +11,25 @@ use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Mail; use Modules\Internal\Emails\SendVerifyEmail; use Modules\Internal\Events\ForgetPassword; +use App\Helpers\Helper; +use Validator; class AuthController extends Controller { public function login(Request $request) { $request->validate([ - 'email' => 'required|email', + 'email' => 'required', 'password' => 'required' ]); $user = User::query() - ->where('email', $request->email) - ->first(); + ->where(function ($query) use ($request) { + $query->where('email', $request->email) + ->orWhere('username', $request->email); + }) + ->first(); + if (!$user) { return response(['message' => 'User Tidak Ditemukan'], 404); @@ -124,4 +130,36 @@ class AuthController extends Controller ]); return response()->json($user); } + + public function register(Request $request) + { + $validator = Validator::make($request->all(), [ + 'email' => 'required|email|unique:users,email', + 'username' => 'required|unique:users,username', + 'password' => [ + 'required', + 'min:5', + // 'regex:/.*[0-9].*/', + // 'regex:/.*[a-z].*/', + // 'regex:/.*[A-Z].*/', + ] + ], [ + // 'password.regex' => "Password harus minimal 8 karakter, kombinasi huruf besar kecil dan angka" + ])->validate(); + + try { + $user = User::create([ + 'email' => $request->email, + 'username' => $request->username, + 'password' => Hash::make($request->password), + ]); + + return response()->json($user); + } catch (\Exception $e) { + return response()->json([ + 'message' => 'Terjadi masalah ketika mendaftar' + ]); + } + } + } diff --git a/Modules/Internal/Http/Controllers/Api/DailyMonitoringController.php b/Modules/Internal/Http/Controllers/Api/DailyMonitoringController.php index d5da9d0f..dbb941ee 100644 --- a/Modules/Internal/Http/Controllers/Api/DailyMonitoringController.php +++ b/Modules/Internal/Http/Controllers/Api/DailyMonitoringController.php @@ -260,6 +260,7 @@ class DailyMonitoringController extends Controller 'lab_date' => $request->lab_date, 'provider' => $request->provider, 'examination' => $request->examination, + 'created_by' => auth()->user()->id, ]); @@ -387,7 +388,11 @@ class DailyMonitoringController extends Controller // get claim request $request_log = DB::table('request_logs') ->where('code', $request_code) - ->update(['discharge_date' => now()]); + ->update([ + 'discharge_date' => now(), + 'updated_by' => auth()->user()->id, + 'updated_at' => now() + ]); if ($request_log) { return response()->json([ 'error' => false, diff --git a/Modules/Internal/Http/Controllers/Api/RequestLogBenefitController.php b/Modules/Internal/Http/Controllers/Api/RequestLogBenefitController.php index 97788e6f..928c690b 100644 --- a/Modules/Internal/Http/Controllers/Api/RequestLogBenefitController.php +++ b/Modules/Internal/Http/Controllers/Api/RequestLogBenefitController.php @@ -8,6 +8,7 @@ use Illuminate\Http\Request; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\DB; +use Carbon\Carbon; class RequestLogBenefitController extends Controller @@ -72,6 +73,7 @@ class RequestLogBenefitController extends Controller 'amount_not_approved' => $value['amount_not_approved'], 'excess_paid' => $value['excess_paid'], 'keterangan' => $value['keterangan'], + 'created_by' => auth()->user()->id, ]; // Insert Data @@ -117,6 +119,8 @@ class RequestLogBenefitController extends Controller $requestLogBenefit->amount_not_approved = $request->amount_not_approved; $requestLogBenefit->excess_paid = $request->excess_paid; $requestLogBenefit->keterangan = $request->keterangan; + $requestLogBenefit->updated_by = auth()->user()->id; + $requestLogBenefit->updated_at = Carbon::now(); $requestLogBenefit->save(); diff --git a/Modules/Internal/Http/Controllers/Api/RequestLogController.php b/Modules/Internal/Http/Controllers/Api/RequestLogController.php index ba8e088f..1dcc8e55 100644 --- a/Modules/Internal/Http/Controllers/Api/RequestLogController.php +++ b/Modules/Internal/Http/Controllers/Api/RequestLogController.php @@ -16,6 +16,7 @@ use Illuminate\Support\Facades\Storage; use App\Services\RequestLogService; use App\Exceptions\ImportRowException; use App\Events\RequestLoged; +use Carbon\Carbon; use Maatwebsite\Excel\Facades\Excel; use Box\Spout\Reader\Common\Creator\ReaderEntityFactory; @@ -198,6 +199,8 @@ class RequestLogController extends Controller { $requestLog = RequestLog::findOrFail($id); $requestLog->status = $request->status; + $requestLog->approved_by = auth()->user()->id; + $requestLog->approved_at = Carbon::now(); $requestLog->save(); return response()->json([ @@ -312,6 +315,8 @@ class RequestLogController extends Controller // Update Request LOG untuk lanjut ke Final LOG $requestLog->final_log = 1; $requestLog->status_final_log = $status; + $requestLog->approved_final_log_by = auth()->user()->id; + $requestLog->approved_final_log_at = Carbon::now(); $requestLog->save(); diff --git a/Modules/Internal/Http/Controllers/Api/UserManagementController.php b/Modules/Internal/Http/Controllers/Api/UserManagementController.php new file mode 100644 index 00000000..1486b251 --- /dev/null +++ b/Modules/Internal/Http/Controllers/Api/UserManagementController.php @@ -0,0 +1,17 @@ +group(function () { Route::post('login', [AuthController::class, 'login'])->name('login'); + Route::post('register', [AuthController::class, 'register'])->name('register'); Route::post('forget-password', [AuthController::class, 'forgetPassword'])->name('forget-password'); Route::post('verify-email', [AuthController::class, 'verifyEmail'])->name('verify-email'); diff --git a/Modules/Internal/Services/MemberEnrollmentService.php b/Modules/Internal/Services/MemberEnrollmentService.php index c38f4133..a4f25ac7 100644 --- a/Modules/Internal/Services/MemberEnrollmentService.php +++ b/Modules/Internal/Services/MemberEnrollmentService.php @@ -601,7 +601,9 @@ class MemberEnrollmentService "telephone_office" => $row['telephone_office'] ?? null, "suspended" => $row['member_suspended'] ?? null, - "active" => $row['employment_status'] == 'INACTIVE' ? 0 : 1 + "active" => $row['employment_status'] == 'INACTIVE' ? 0 : 1, + + "employee_status" => $row['employment_status'] ]; // $this->validateRow($row); if (!isset($corporate->currentPolicy) || $corporate->currentPolicy->code != $row['policy_number']) { @@ -869,7 +871,7 @@ class MemberEnrollmentService break; case "2": // Member Information Update (Without Replacement Card) - // $this->validateRow($row); + $this->validateRow($row); $member = Member::query() ->where('member_id', $row['member_id']) ->first(); @@ -898,6 +900,13 @@ class MemberEnrollmentService ); $member->person_id = $person->id; + + $member->name = $row['name']; + $member->employee_status = $row['employment_status']; + $member->gender = Helper::genderPerson($row['sex']); + $member->relation_with_principal = $row['relationship_with_principal']; + $member->marital_status = $row['marital_status']; + $member->save(); try { $memberPolicy = MemberPolicy::query() @@ -929,52 +938,50 @@ class MemberEnrollmentService // $memberPlan->save(); // } - // Update plan - // $plans = explode(",",$row['plan_id']); - // if (count($plans) > 0) { - // foreach($plans as $d){ - // $plan = Plan::query() - // ->where('code', $d) - // ->where('corporate_id', $corporate->id) - // ->first(); - // if (!$plan) { - // throw new ImportRowException(__('enrollment.PLAN_NOT_FOUND'), 0, null, $row); - // } - // $member->memberPlans()->updateOrCreate([ - // 'member_id' => $member->id, - // 'plan_id' => $plan->id, - // ], - // [ - // 'plan_id' => $plan->id, - // 'status' => 'active', - // 'start' => $this->dateParser($row['member_effective_date']), - // 'end' => $this->dateParser($row['member_expiry_date']), - // ]); - // } - // } else { - // $plan = Plan::query() - // ->where('code', $row['plan_id']) - // ->where('corporate_id', $corporate->id) - // ->first(); - // if (!$plan) { - // throw new ImportRowException(__('enrollment.PLAN_NOT_FOUND'), 0, null, $row); - // } - // $member->memberPlans()->updateOrCreate([ - // 'member_id' => $member->id, - // 'plan_id' => $plan->id, - // ], - // [ - // 'plan_id' => $plan->id, - // 'status' => 'active', - // 'start' => $this->dateParser($row['member_effective_date']), - // 'end' => $this->dateParser($row['member_expiry_date']), - // ]); - // } - - + //Update plan + $plans = explode(",",$row['plan_id']); + if (count($plans) > 0) { + foreach($plans as $d){ + $plan = Plan::query() + ->where('code', $d) + ->where('corporate_id', $corporate->id) + ->first(); + if (!$plan) { + throw new ImportRowException(__('enrollment.PLAN_NOT_FOUND'), 0, null, $row); + } + $member->memberPlans()->updateOrCreate([ + 'member_id' => $member->id, + 'plan_id' => $plan->id, + ], + [ + 'plan_id' => $plan->id, + 'status' => 'active', + 'start' => $this->dateParser($row['member_effective_date']), + 'end' => $this->dateParser($row['member_expiry_date']), + ]); + } + } else { + $plan = Plan::query() + ->where('code', $row['plan_id']) + ->where('corporate_id', $corporate->id) + ->first(); + if (!$plan) { + throw new ImportRowException(__('enrollment.PLAN_NOT_FOUND'), 0, null, $row); + } + $member->memberPlans()->updateOrCreate([ + 'member_id' => $member->id, + 'plan_id' => $plan->id, + ], + [ + 'plan_id' => $plan->id, + 'status' => 'active', + 'start' => $this->dateParser($row['member_effective_date']), + 'end' => $this->dateParser($row['member_expiry_date']), + ]); + } // end update plan - // Update jika ada perubahaan di ASO maka akan teriflek ke LMS juga\ + // Update jika ada perubahaan di ASO maka akan teriflek ke LMS juga $userInsuranceLms = UserInsurance::query() ->where('sNoPolis', $row['member_id']) ->first(); diff --git a/app/Models/Member.php b/app/Models/Member.php index 2d415983..8c5c775c 100644 --- a/app/Models/Member.php +++ b/app/Models/Member.php @@ -57,6 +57,7 @@ class Member extends Model "endorsement_date", "members_effective_date", "members_expire_date", + "employee_status", "activation_date", "terminated_date", "remarks", diff --git a/app/Models/RequestDailyMonitoring.php b/app/Models/RequestDailyMonitoring.php index 6eb1aa77..64999411 100644 --- a/app/Models/RequestDailyMonitoring.php +++ b/app/Models/RequestDailyMonitoring.php @@ -23,6 +23,9 @@ class RequestDailyMonitoring extends Model 'lab_date', 'provider', 'examination', + 'created_by', + 'updated_by', + 'deleted_by', ]; protected $appends = ['medical_plan', 'non_medikamentosa_plan', 'document', 'discharge_date']; diff --git a/app/Models/RequestLog.php b/app/Models/RequestLog.php index 8f93fd52..9204e8f4 100644 --- a/app/Models/RequestLog.php +++ b/app/Models/RequestLog.php @@ -30,7 +30,11 @@ class RequestLog extends Model 'source', 'claim_id', 'organization_id', - 'code' + 'code', + 'approved_by', + 'approved_at', + 'approved_final_log_by', + 'approved_final_log_at', ]; protected $hidden = [ diff --git a/app/Models/RequestLogBenefit.php b/app/Models/RequestLogBenefit.php index 331227f1..1b42c6d2 100644 --- a/app/Models/RequestLogBenefit.php +++ b/app/Models/RequestLogBenefit.php @@ -19,6 +19,9 @@ class RequestLogBenefit extends Model 'amount_not_approved', 'excess_paid', 'keterangan', + 'created_by', + 'updated_by', + 'deleted_by', ]; public function benefit(){ diff --git a/app/Models/RequestLogMedicine.php b/app/Models/RequestLogMedicine.php index 2cd1cec8..d571a97c 100644 --- a/app/Models/RequestLogMedicine.php +++ b/app/Models/RequestLogMedicine.php @@ -13,6 +13,9 @@ class RequestLogMedicine extends Model 'request_log_id', 'medicine', 'price', + 'created_by', + 'updated_by', + 'deleted_by', ]; protected $hidden = [ diff --git a/app/Models/User.php b/app/Models/User.php index 22b1bee4..64263dd5 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -24,6 +24,7 @@ class User extends Authenticatable 'person_id', 'name', 'email', + 'username', 'password', 'phone', 'otp', diff --git a/database/migrations/2024_01_02_154340_add_role_id_to_users_table.php b/database/migrations/2024_01_02_154340_add_role_id_to_users_table.php new file mode 100644 index 00000000..d9155129 --- /dev/null +++ b/database/migrations/2024_01_02_154340_add_role_id_to_users_table.php @@ -0,0 +1,32 @@ +foreignId('role_id')->after('person_id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('role_id'); + }); + } +}; diff --git a/database/migrations/2024_01_02_155831_create_fiture_has_permissions.php b/database/migrations/2024_01_02_155831_create_fiture_has_permissions.php new file mode 100644 index 00000000..df4df9cd --- /dev/null +++ b/database/migrations/2024_01_02_155831_create_fiture_has_permissions.php @@ -0,0 +1,35 @@ +id(); + $table->string('fitur_name'); + $table->timestamps(); + $table->unsignedBigInteger('created_by')->nullable()->index(); + $table->unsignedBigInteger('updated_by')->nullable()->index(); + $table->unsignedBigInteger('deleted_by')->nullable()->index(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('fiture_has_permissions'); + } +}; diff --git a/database/migrations/2024_01_02_160639_add_recode_action.php b/database/migrations/2024_01_02_160639_add_recode_action.php new file mode 100644 index 00000000..970839de --- /dev/null +++ b/database/migrations/2024_01_02_160639_add_recode_action.php @@ -0,0 +1,100 @@ +unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + + $table->foreign('created_by')->references('id')->on('users')->onDelete('set null'); + $table->foreign('updated_by')->references('id')->on('users')->onDelete('set null'); + $table->foreign('deleted_by')->references('id')->on('users')->onDelete('set null'); + + }); + + Schema::table('request_log_daily_monitorings', function (Blueprint $table) { + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + + $table->foreign('created_by')->references('id')->on('users')->onDelete('set null'); + $table->foreign('updated_by')->references('id')->on('users')->onDelete('set null'); + $table->foreign('deleted_by')->references('id')->on('users')->onDelete('set null'); + + }); + + Schema::table('request_log_medical_plan', function (Blueprint $table) { + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + + $table->foreign('created_by')->references('id')->on('users')->onDelete('set null'); + $table->foreign('updated_by')->references('id')->on('users')->onDelete('set null'); + $table->foreign('deleted_by')->references('id')->on('users')->onDelete('set null'); + + }); + + Schema::table('request_log_medicines', function (Blueprint $table) { + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + + $table->foreign('created_by')->references('id')->on('users')->onDelete('set null'); + $table->foreign('updated_by')->references('id')->on('users')->onDelete('set null'); + $table->foreign('deleted_by')->references('id')->on('users')->onDelete('set null'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('request_log_benefits', function (Blueprint $table) { + $table->dropForeign(['created_by']); + $table->dropForeign(['updated_by']); + $table->dropForeign(['deleted_by']); + + $table->dropColumn(['created_by', 'updated_by', 'deleted_by']); + }); + + Schema::table('request_log_daily_monitorings', function (Blueprint $table) { + $table->dropForeign(['created_by']); + $table->dropForeign(['updated_by']); + $table->dropForeign(['deleted_by']); + + $table->dropColumn(['created_by', 'updated_by', 'deleted_by']); + }); + + Schema::table('request_log_medical_plan', function (Blueprint $table) { + $table->dropForeign(['created_by']); + $table->dropForeign(['updated_by']); + $table->dropForeign(['deleted_by']); + + $table->dropColumn(['created_by', 'updated_by', 'deleted_by']); + }); + + Schema::table('request_log_medicines', function (Blueprint $table) { + $table->dropForeign(['created_by']); + $table->dropForeign(['updated_by']); + $table->dropForeign(['deleted_by']); + + $table->dropColumn(['created_by', 'updated_by', 'deleted_by']); + }); + } +}; diff --git a/database/migrations/2024_01_05_091735_add_column_user_id_to_users_table.php b/database/migrations/2024_01_05_091735_add_column_user_id_to_users_table.php new file mode 100644 index 00000000..8bb92664 --- /dev/null +++ b/database/migrations/2024_01_05_091735_add_column_user_id_to_users_table.php @@ -0,0 +1,32 @@ +string('username')->after('email')->default(null); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('username'); + }); + } +}; diff --git a/database/migrations/2024_01_05_095007_add_column_approved_by_to_request_logs_table.php b/database/migrations/2024_01_05_095007_add_column_approved_by_to_request_logs_table.php new file mode 100644 index 00000000..c0851d54 --- /dev/null +++ b/database/migrations/2024_01_05_095007_add_column_approved_by_to_request_logs_table.php @@ -0,0 +1,36 @@ +integer('approved_by')->nullable()->after('created_by'); + $table->dateTime('approved_at')->nullable()->after('approved_by'); + $table->integer('approved_final_log_by')->nullable()->after('approved_at'); + $table->dateTime('approved_final_log_at')->nullable()->after('approved_final_log_by'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('request_logs', function (Blueprint $table) { + $table->dropColumn(['approved_by', 'invoice_date', 'approved_final_log_by', 'approved_final_log_at']); + }); + } +}; diff --git a/database/migrations/2024_01_05_160811_add_column_employee_status_to_members_tables.php b/database/migrations/2024_01_05_160811_add_column_employee_status_to_members_tables.php new file mode 100644 index 00000000..e1a62b57 --- /dev/null +++ b/database/migrations/2024_01_05_160811_add_column_employee_status_to_members_tables.php @@ -0,0 +1,32 @@ +string('employee_status')->after('terminated_date')->default(null); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('members', function (Blueprint $table) { + $table->dropColumn('employee_status'); + }); + } +}; diff --git a/frontend/dashboard/src/@types/member.ts b/frontend/dashboard/src/@types/member.ts index 45bfc833..5abd8a7e 100644 --- a/frontend/dashboard/src/@types/member.ts +++ b/frontend/dashboard/src/@types/member.ts @@ -1,9 +1,9 @@ // ---------------------------------------------------------------------- -import { Corporate, Plan } from "./corporates"; +import { Corporate, Plan, Policy } from "./corporates"; export type Member = { - id: string, + id: number, member_id: string, record_type: string, payor_id: string, @@ -19,8 +19,15 @@ export type Member = { principal_id: string, relation_with_principal: string, bpjs_class: string, - active: string, + active: number, current_plans: Plan, current_corporate: Corporate, full_name: string, + members_effective_date: string, + activation_date: string, + current_policy: Policy, + nric: string, + employee_status: string, + email: string, + // person: , }; diff --git a/frontend/dashboard/src/contexts/LaravelAuthContext.tsx b/frontend/dashboard/src/contexts/LaravelAuthContext.tsx index ae1b19e1..4abe6322 100644 --- a/frontend/dashboard/src/contexts/LaravelAuthContext.tsx +++ b/frontend/dashboard/src/contexts/LaravelAuthContext.tsx @@ -81,17 +81,19 @@ type AuthProviderProps = { function AuthProvider({ children }: AuthProviderProps) { const [state, dispatch] = useReducer(JWTReducer, initialState); let location = useLocation(); + const accessToken = getSession(); useEffect(() => { - const initialize = async () => { + (async () => { try { - const accessToken = getSession(); + // const accessToken = getSession(); + if (accessToken) { setSession(accessToken); const response = await axios.get('/user'); const user = response.data; - + dispatch({ type: Types.Initial, payload: { @@ -117,11 +119,10 @@ function AuthProvider({ children }: AuthProviderProps) { }, }); } - }; - - initialize(); - }, []); + })(); + }, [accessToken]); + const login = async (email: string, password: string) => axios .post('/login', { email, password }) .then((response) => { diff --git a/frontend/dashboard/src/layouts/dashboard/header/AccountPopover.tsx b/frontend/dashboard/src/layouts/dashboard/header/AccountPopover.tsx index 519a9c3d..df027caa 100644 --- a/frontend/dashboard/src/layouts/dashboard/header/AccountPopover.tsx +++ b/frontend/dashboard/src/layouts/dashboard/header/AccountPopover.tsx @@ -30,8 +30,9 @@ const MENU_OPTIONS = [ export default function AccountPopover() { const [open, setOpen] = useState(null); const navigate = useNavigate(); - const { logout } = useAuth(); + const { logout, user } = useAuth(); + console.log(user?.email) const handleOpen = (event: React.MouseEvent) => { setOpen(event.currentTarget); }; @@ -65,7 +66,7 @@ export default function AccountPopover() { }} > @@ -86,10 +87,10 @@ export default function AccountPopover() { > - Rayan Moran + {user?.full_name ? user?.full_name : ''} - rayan.moran@gmail.com + {user?.email} diff --git a/frontend/dashboard/src/layouts/dashboard/header/index.tsx b/frontend/dashboard/src/layouts/dashboard/header/index.tsx index f39781e7..b924ae48 100644 --- a/frontend/dashboard/src/layouts/dashboard/header/index.tsx +++ b/frontend/dashboard/src/layouts/dashboard/header/index.tsx @@ -92,9 +92,9 @@ export default function DashboardHeader({ - + {/* - + */} diff --git a/frontend/dashboard/src/layouts/dashboard/navbar/NavConfig.tsx b/frontend/dashboard/src/layouts/dashboard/navbar/NavConfig.tsx index 0827cd38..687e7a3a 100644 --- a/frontend/dashboard/src/layouts/dashboard/navbar/NavConfig.tsx +++ b/frontend/dashboard/src/layouts/dashboard/navbar/NavConfig.tsx @@ -108,7 +108,10 @@ const navConfig = [ }, { title: 'USER MANAGEMENT', - path: '/users', + children: [ + { title: 'User Access', path: '/master/diagnosis' }, + { title: 'User Role', path: '/master/diagnosis' }, + ], }, { title: 'LINKING TOOLS', diff --git a/frontend/dashboard/src/layouts/dashboard/navbar/NavbarAccount.tsx b/frontend/dashboard/src/layouts/dashboard/navbar/NavbarAccount.tsx index 8e72ad90..d5b2fbe8 100644 --- a/frontend/dashboard/src/layouts/dashboard/navbar/NavbarAccount.tsx +++ b/frontend/dashboard/src/layouts/dashboard/navbar/NavbarAccount.tsx @@ -1,6 +1,7 @@ // @mui import { styled } from '@mui/material/styles'; import { Box, Link, Typography, Avatar } from '@mui/material'; +import useAuth from '../../../hooks/useAuth'; // ---------------------------------------------------------------------- @@ -22,6 +23,8 @@ type Props = { }; export default function NavbarAccount({ isCollapse }: Props) { + +const { logout, user } = useAuth(); return ( @@ -50,10 +53,10 @@ export default function NavbarAccount({ isCollapse }: Props) { }} > - Rayan Moran + - user + Hi {user?.full_name} diff --git a/frontend/dashboard/src/pages/Corporates/Member/List.tsx b/frontend/dashboard/src/pages/Corporates/Member/List.tsx index b6030f4f..5c30fb60 100644 --- a/frontend/dashboard/src/pages/Corporates/Member/List.tsx +++ b/frontend/dashboard/src/pages/Corporates/Member/List.tsx @@ -612,16 +612,22 @@ export default function CorporatePlanList({handleSubmitSuccess}) { {row.language ? row.language : '-'} - Email: - {row.email ? row.email : '-'} + Employee Status: + {row.employee_status ? row.employee_status: '-'} Race: {row.race ? row.race : '-'} + + + + Email: + {row.email ? row.email : '-'} + Relationship: + {row.relation_with_principal ? row.relation_with_principal : '-'} Phone Number: {row.person?.phone ? row.person?.phone : '-'} - Relationship: - {row.relation_with_principal ? row.relation_with_principal : '-'} + Claim History diff --git a/frontend/dashboard/src/pages/CustomerService/Components/CardBenefit.tsx b/frontend/dashboard/src/pages/CustomerService/Components/CardBenefit.tsx index 65addbfe..a4654bb8 100644 --- a/frontend/dashboard/src/pages/CustomerService/Components/CardBenefit.tsx +++ b/frontend/dashboard/src/pages/CustomerService/Components/CardBenefit.tsx @@ -16,7 +16,7 @@ import { fNumber } from "@/utils/formatNumber"; import palette from "@/theme/palette"; import DialogBenefit from "../FinalLog/Components/DialogBenefit"; import DialogEditBenefit from "../FinalLog/Components/DialogEditBenefit"; -import DialogDelete from "../FinalLog/Components/DialogDelete"; +import DialogDeleteBenefit from "../FinalLog/Components/DialogDeleteBenefit"; @@ -202,7 +202,7 @@ export default function CardBenefit({requestLog} : CardDetail ) { {/* Dialog Delete */} - - Files History + Files {requestLog?.files?.map((documentType, index) => ( diff --git a/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDelete.tsx b/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDeleteBenefit.tsx similarity index 55% rename from frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDelete.tsx rename to frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDeleteBenefit.tsx index 59669585..1705cdb3 100644 --- a/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDelete.tsx +++ b/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDeleteBenefit.tsx @@ -17,7 +17,7 @@ type DialogDeleteType = { id: number|undefined; } -export default function DialogDelete({id, setOpenDialog, openDialog,onSubmit} : DialogDeleteType ) { +export default function DialogDeleteBenefit({id, setOpenDialog, openDialog,onSubmit} : DialogDeleteType ) { const handleSubmit = () => { axios .delete(`customer-service/request/benefit_data/${id}`) @@ -67,54 +67,3 @@ export default function DialogDelete({id, setOpenDialog, openDialog,onSubmit} : /> ); } - -export function DialogDeleteMedicine({id, setOpenDialog, openDialog,onSubmit} : DialogDeleteType ) { - const handleSubmit = () => { - axios - .delete(`customer-service/request/medicine-data/${id}`) - .then((response) => { - enqueueSnackbar('Benefit Data has Deleted', { variant: 'success' }); - setOpenDialog(false); - window.location.reload() - }) - .catch(({ response }) => { - enqueueSnackbar(response.data.message ?? 'Something went wrong!', { variant: 'error' }); - }); - } - - const style1 = { - color: '#919EAB', - width: '30%' - } - const style2 = { - width: '70%' - } - const marginBottom1 = { - marginBottom: 1, - } - - const handleCloseDialog = () => { - setOpenDialog(false); - } - - const getContent = () => ( - - Are you sure to delete this detail medicine ? - - - - - - ); - - - return ( - - ); -} \ No newline at end of file diff --git a/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDeleteMedicine.tsx b/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDeleteMedicine.tsx index bd98ba42..c8c04e92 100644 --- a/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDeleteMedicine.tsx +++ b/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogDeleteMedicine.tsx @@ -22,7 +22,7 @@ export default function DialogDeleteMedicine({id, setOpenDialog, openDialog,onSu axios .delete(`customer-service/request/medicine-data/${id}`) .then((response) => { - enqueueSnackbar('Benefit Data has Deleted', { variant: 'success' }); + enqueueSnackbar('Medicine Data has Deleted', { variant: 'success' }); setOpenDialog(false); window.location.reload() }) diff --git a/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx b/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx index 480fd05a..080a8885 100644 --- a/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx +++ b/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx @@ -44,9 +44,9 @@ import CardBenefit from '../Components/CardBenefit'; import DialogHospitalCare from './Components/DialogHospitalCare'; import DialogBenefit from './Components/DialogBenefit'; import DialogMedicine from './Components/DialogMedicine'; -import DialogDelete from './Components/DialogDelete'; +import DialogDeleteBenfit from './Components/DialogDeleteBenefit'; import DialogEditBenefit from './Components/DialogEditBenefit'; -import { DialogDeleteMedicine } from './Components/DialogDelete'; +import DialogDeleteMedicine from './Components/DialogDeleteMedicine' import MoreMenu from '@/components/MoreMenu'; import { MenuItem } from '@mui/material'; @@ -102,6 +102,9 @@ export default function Detail() { // Handel Delete Detail Benefit const [idBenefitData, setIdBenefitData] = useState(); const [openDialogDeleteBenefit, setDialogDeleteBenefit] = useState(false) + + const [idMedicineData, setIdMedicineData] = useState(); + const [openDialogDeleteMedicine, setDialogDeleteMedicine] = useState(false) const [approve, setApprove] = useState('') @@ -327,7 +330,7 @@ export default function Detail() { {/* Dialog Delete */} - {item.medicine} Rp. {fNumber(item.price)} { - setIdBenefitData(item.id) - setDialogDeleteBenefit(true) + setIdMedicineData(item.id) + setDialogDeleteMedicine(true) }}> @@ -371,10 +374,10 @@ export default function Detail() { openDialog={openDialogMedicine} setOpenDialog={setDialogMedicine} /> - diff --git a/frontend/dashboard/src/sections/auth/login/LoginForm.tsx b/frontend/dashboard/src/sections/auth/login/LoginForm.tsx index 929d871d..19e320b5 100644 --- a/frontend/dashboard/src/sections/auth/login/LoginForm.tsx +++ b/frontend/dashboard/src/sections/auth/login/LoginForm.tsx @@ -34,19 +34,19 @@ export default function LoginForm() { const [showPassword, setShowPassword] = useState(false); const LoginSchema = Yup.object().shape({ - email: Yup.string().email('Email must be a valid email address').required('Email is required'), + email: Yup.string().required('Email is required'), password: Yup.string().required('Password is required'), }); const defaultValues = { - email: 'admin@linksehat.dev', - password: 'password', + email: '', + password: '', remember: true, }; const methods = useForm({ resolver: yupResolver(LoginSchema), - defaultValues, + // defaultValues, }); const { @@ -75,10 +75,10 @@ export default function LoginForm() { return ( - Email : admin@linksehat.dev & Password : password + Masukan Email atau Username dan Password {!!errors.afterSubmit && {errors.afterSubmit.message}} - + diff --git a/frontend/hospital-portal/src/layouts/dashboard/header/index.tsx b/frontend/hospital-portal/src/layouts/dashboard/header/index.tsx index 98f0f6c8..aacb7331 100644 --- a/frontend/hospital-portal/src/layouts/dashboard/header/index.tsx +++ b/frontend/hospital-portal/src/layouts/dashboard/header/index.tsx @@ -88,7 +88,7 @@ export default function DashboardHeader({ )} - + {/* */} diff --git a/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx index 2aa3b990..c6b2804c 100644 --- a/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx +++ b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx @@ -6,6 +6,9 @@ import { DocIllustration } from '@/assets'; // ---------------------------------------------------------------------- export default function NavbarDocs() { + const handleClick = () => { + window.location.href = 'https://wa.me/6285890008500'; + }; return ( <> Need help? -
Please check our docs +
Please contact Us at
- - Hak Cipta © 2023 - 2024 Link Sehat + + Hak Cipta © 2023 - 2024 LinkSehat
); diff --git a/frontend/hospital-portal/src/sections/auth/login/LoginForm.tsx b/frontend/hospital-portal/src/sections/auth/login/LoginForm.tsx index b19f8aa3..a2383267 100644 --- a/frontend/hospital-portal/src/sections/auth/login/LoginForm.tsx +++ b/frontend/hospital-portal/src/sections/auth/login/LoginForm.tsx @@ -41,8 +41,8 @@ export default function LoginForm() { }); const defaultValues = { - email: 'hospitaladmin@gmail.com', - password: 'password', + email: '', + password: '', remember: true, }; diff --git a/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx b/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx index 43b6204f..c8959478 100644 --- a/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx +++ b/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx @@ -58,8 +58,12 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe .post('/request-log', formData) .then((response) => { if (response && response.data && response.data.meta) { + setTimeout(() => { + window.location.reload(); + }, 1500); enqueueSnackbar(response.data.meta.message, { variant: 'success' }); handleSubmitSuccess(); + } }) .catch(({ response }) => { @@ -176,7 +180,7 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe diff --git a/public/images/vale_logo.png b/public/images/vale_logo.png index 2c8c5274..00ab0c54 100644 Binary files a/public/images/vale_logo.png and b/public/images/vale_logo.png differ diff --git a/resources/views/pdf/ecard-lms.blade.php b/resources/views/pdf/ecard-lms.blade.php index b1794525..d9bc30a2 100644 --- a/resources/views/pdf/ecard-lms.blade.php +++ b/resources/views/pdf/ecard-lms.blade.php @@ -1,20 +1,18 @@ - - + {{-- --}} - -

-
- -
-
-
- Member Name -

{{ $member->fullName }}

- - Member ID -

{{ $member->member_id }}

- - Policy Holder -

{{ $member->currentCorporate->name }}

- - Policy Number -

{{ $member->currentPolicy->code }}

- - Date of Birth -

{{ $member->birthDateeCard }}

- - Gender -

{{ $member->gender }}

- - Start Date -

{{ $member->startDate }}

- -
+



+ @if($member->currentCorporate->files && count($member->currentCorporate->files) > 0) +
+ {{ asset($member->currentCorporate->files[0]->path)}}
- - - - - - 08114123962 - - - Valid until: {{ $member->endDate }} -
+ @endif -
+
+
+ Member Name +

{{ $member->fullName }}

+ + Member ID +

{{ $member->member_id }}

+ + Policy Holder +

{{ $member->currentCorporate->name }}

+ + Policy Number +

{{ $member->currentPolicy->code }}

+ + Date of Birth +

{{ $member->birthDateeCard }}

+ + Gender +

{{ $member->gender }}

+ + Start Date +

{{ $member->startDate }}

+ +
+ +
+ + + + + + 08114123962 + + + Valid until: {{ $member->endDate }} +
+ +
- diff --git a/resources/views/pdf/ecard.blade.php b/resources/views/pdf/ecard.blade.php index 0df3b388..b10641d3 100644 --- a/resources/views/pdf/ecard.blade.php +++ b/resources/views/pdf/ecard.blade.php @@ -24,11 +24,9 @@ font-family: 'Public Sans'; color: #404040; font-size: 20px; - margin: 0; - /* Reset default margin */ - padding: 0; - /* Reset default padding */ - background-image: url("{{ public_path('images/background-vale.png') }}"); + margin: 0; /* Reset default margin */ + padding: 0; /* Reset default padding */ + background-image: url("{{public_path('images/background-vale.png')}}"); background-repeat: no-repeat; background-size: cover; /* Adjust as needed */ @@ -90,11 +88,11 @@ -



-
-
- Member Name -

{{ $member->fullName }}

+



+
+
+ Member Name +

{{ $member->fullName }}

Member ID

{{ $member->member_id }}

diff --git a/resources/views/pdf/final_log_page_1.blade.php b/resources/views/pdf/final_log_page_1.blade.php index 7ac8c90a..3eab161a 100644 --- a/resources/views/pdf/final_log_page_1.blade.php +++ b/resources/views/pdf/final_log_page_1.blade.php @@ -178,12 +178,12 @@ right: 10px; text-align: left; } - .logo_vale-timestamp; ?> { + .logo_company-timestamp; ?> { position: absolute; top: -35.12px; left: -35.91px; width: 10%; - max-width: 400px; /* batasan lebar maksimum gambar */ + max-width: 40px; /* batasan lebar maksimum gambar */ margin-top: 1px; /* jarak antara segitiga dan gambar */ margin-bottom: 5px; } @@ -192,7 +192,12 @@
- + @php + if(!empty($logoPerusahaan->path)) { + $imgSrc = 'data:image/png;base64,' . base64_encode(file_get_contents(storage_path('app/public/' . $logoPerusahaan->path))); + echo ''; + } + @endphp
The Future Of Healthcare At Your Fingertips @@ -219,7 +224,7 @@ Kepada : - {{ $rumahSakit->nama_rumahsakit }} + {{ !empty($rumahSakit->nama_rumahsakit) ? $rumahSakit->nama_rumahsakit : '' }} Plan Polis : {{ $dataMember->code_plan }} @@ -302,7 +307,7 @@ Alamat Provider : - {{ $rumahSakit->alamat_rumahsakit }} + {{ !empty($rumahSakit->alamat_rumahsakit) ? $rumahSakit->alamat_rumahsakit : '' }} No. Rekam Medis @@ -374,9 +379,33 @@
- Alarm Center Vale MKS (LinkSehat) Office
- PT. Vale Indonesia Tbk. Makassar Representative Office
- Lt. 1, Jalan Somba Opu 281, Ujung Pandang, Losari,
Kec. Makassar, Kota Makassar, Sulawesi Selatan 90113 + @php + if (!empty($logoPerusahaan->code) === 'VALEIND') { + @endphp + + Alarm Center Vale MKS (LinkSehat) Office
+ {{ !empty($logoPerusahaan->name) ? $logoPerusahaan->name : '' }}
+ Lt. 1, Jalan Somba Opu 281, Ujung Pandang, Losari,
Kec. Makassar, Kota Makassar, Sulawesi Selatan 90113 + + @php + } else if(!empty($logoPerusahaan->code) === 'PETROLAB') { + @endphp + + Alarm Center Vale MKS (LinkSehat) Office
+ {{ !empty($logoPerusahaan->name) ? $logoPerusahaan->name : '' }}
+ Jalan Pisangan Lama 3 Nomor 28 Jatinegara, RT.9/RW.3,
Pisangan Tim., Kec. Pulo Gadung, Kota Jakarta Timur, Daerah Khusus Ibukota Jakarta 13230 + + @php + } else { + @endphp + + Alarm Center Vale MKS (LinkSehat) Office
+ {{ !empty($logoPerusahaan->name) ? $logoPerusahaan->name : '' }}
+ + + @php + } + @endphp
PT Link Medis Sehat
diff --git a/resources/views/pdf/final_log_page_2.blade.php b/resources/views/pdf/final_log_page_2.blade.php index a3660d82..fa731fe8 100644 --- a/resources/views/pdf/final_log_page_2.blade.php +++ b/resources/views/pdf/final_log_page_2.blade.php @@ -244,10 +244,10 @@
Hormat Kami,
- PT. Vale Indonesia Tbk + {{ $dataMember->nama_perusahaan }}
- Dr. Hery Hermas, M.Kes
+ (.......................................)
Offsite Medical Treatment
@@ -255,7 +255,7 @@ Petugas Alarm Center
- (Nama Petugas)
+ (.......................................)
Customer Service Team
@@ -265,9 +265,33 @@ {{ $dataMember->name }}
- Alarm Center Vale MKS (LinkSehat) Office
- PT. Vale Indonesia Tbk. Makassar Representative Office
- Lt. 1, Jalan Somba Opu 281, Ujung Pandang, Losari,
Kec. Makassar, Kota Makassar, Sulawesi Selatan 90113 + @php + if (!empty($logoPerusahaan->code) === 'VALEIND') { + @endphp + + Alarm Center Vale MKS (LinkSehat) Office
+ {{ !empty($logoPerusahaan->name) ? $logoPerusahaan->name : '' }}
+ Lt. 1, Jalan Somba Opu 281, Ujung Pandang, Losari,
Kec. Makassar, Kota Makassar, Sulawesi Selatan 90113 + + @php + } else if(!empty($logoPerusahaan->code) === 'PETROLAB') { + @endphp + + Alarm Center Vale MKS (LinkSehat) Office
+ {{ !empty($logoPerusahaan->name) ? $logoPerusahaan->name : '' }}
+ Jalan Pisangan Lama 3 Nomor 28 Jatinegara, RT.9/RW.3,
Pisangan Tim., Kec. Pulo Gadung, Kota Jakarta Timur, Daerah Khusus Ibukota Jakarta 13230 + + @php + } else { + @endphp + + Alarm Center Vale MKS (LinkSehat) Office
+ {{ !empty($logoPerusahaan->name) ? $logoPerusahaan->name : '' }}
+ + + @php + } + @endphp
PT Link Medis Sehat
diff --git a/resources/views/pdf/req_log_page_1.blade.php b/resources/views/pdf/req_log_page_1.blade.php index a553964f..230d4a1a 100644 --- a/resources/views/pdf/req_log_page_1.blade.php +++ b/resources/views/pdf/req_log_page_1.blade.php @@ -183,12 +183,12 @@ right: 10px; text-align: left; } - .logo_vale-timestamp; ?> { + .logo_company-timestamp; ?> { position: absolute; top: -35.12px; left: -35.91px; width: 10%; - max-width: 400px; /* batasan lebar maksimum gambar */ + max-width: 40px; /* batasan lebar maksimum gambar */ margin-top: 1px; /* jarak antara segitiga dan gambar */ margin-bottom: 5px; } @@ -198,7 +198,12 @@
- + @php + if(!empty($logoPerusahaan->path)) { + $imgSrc = 'data:image/png;base64,' . base64_encode(file_get_contents(storage_path('app/public/' . $logoPerusahaan->path))); + echo ''; + } + @endphp
The Future Of Healthcare At Your Fingertips @@ -226,7 +231,7 @@ Kepada : - {{ $rumahSakit->nama_rumahsakit }} + {{ !empty($rumahSakit->nama_rumahsakit) ? $rumahSakit->nama_rumahsakit : '' }} Plan Polis : {{ $dataMember->code_plan }} @@ -309,7 +314,7 @@ Alamat Provider : - {{ $rumahSakit->alamat_rumahsakit }} + {{ !empty($rumahSakit->alamat_rumahsakit) ? $rumahSakit->alamat_rumahsakit : '' }} No. Rekam Medis @@ -374,10 +379,10 @@
Hormat Kami,
- PT. Vale Indonesia Tbk + {{ $dataMember->nama_perusahaan }}
- Dr. Hery Hermas, M.Kes
+ (.......................................)
Offsite Medical Treatment
@@ -385,16 +390,40 @@ Petugas Alarm Center
- (Nama Petugas)
+ (.......................................)
Customer Service Team
{{ $dataMember->name }}
- Alarm Center Vale MKS (LinkSehat) Office
- PT. Vale Indonesia Tbk. Makassar Representative Office
- Lt. 1, Jalan Somba Opu 281, Ujung Pandang, Losari,
Kec. Makassar, Kota Makassar, Sulawesi Selatan 90113 + @php + if (!empty($logoPerusahaan->code) === 'VALEIND') { + @endphp + + Alarm Center Vale MKS (LinkSehat) Office
+ {{ !empty($logoPerusahaan->name) ? $logoPerusahaan->name : '' }}
+ Lt. 1, Jalan Somba Opu 281, Ujung Pandang, Losari,
Kec. Makassar, Kota Makassar, Sulawesi Selatan 90113 + + @php + } else if(!empty($logoPerusahaan->code) === 'PETROLAB') { + @endphp + + Alarm Center Vale MKS (LinkSehat) Office
+ {{ !empty($logoPerusahaan->name) ? $logoPerusahaan->name : ''}}
+ Jalan Pisangan Lama 3 Nomor 28 Jatinegara, RT.9/RW.3,
Pisangan Tim., Kec. Pulo Gadung, Kota Jakarta Timur, Daerah Khusus Ibukota Jakarta 13230 + + @php + } else { + @endphp + + Alarm Center Vale MKS (LinkSehat) Office
+ {{ !empty($logoPerusahaan->name) ? $logoPerusahaan->name : '' }}
+ + + @php + } + @endphp
PT Link Medis Sehat