Merge remote-tracking branch 'origin/staging' into origin/production

This commit is contained in:
Linksehat Staging Server
2024-01-06 09:59:46 +07:00
45 changed files with 785 additions and 319 deletions

View File

@@ -98,6 +98,7 @@ class MemberController extends Controller
// Provider
$providers = DB::table('organizations')
->where('organizations.type', '=', 'hospital')
->select(
'organizations.id',
'organizations.name'

View File

@@ -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();

View File

@@ -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'
]);
}
}
}

View File

@@ -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,

View File

@@ -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();

View File

@@ -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();

View File

@@ -0,0 +1,17 @@
<?php
namespace Modules\Internal\Http\Controllers\Api;
use App\Helpers\Helper;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use App\Models\User;
class UserManagemet extends Controller
{
public function index(Request $request){
$user = User::all();
return Helper::responseJson(data: $user);
}
}

View File

@@ -45,6 +45,7 @@ use Modules\Internal\Http\Controllers\Api\LaboratoriumResultController;
use Modules\Internal\Http\Controllers\Api\CorporateManageController;
use Modules\Internal\Http\Controllers\ClaimEncounterController;
/*
|--------------------------------------------------------------------------
| API Routes
@@ -60,6 +61,7 @@ use Modules\Internal\Http\Controllers\ClaimEncounterController;
Route::prefix('internal')->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');

View File

@@ -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();