Merge remote-tracking branch 'origin/staging' into origin/production
This commit is contained in:
@@ -404,10 +404,11 @@ class CorporateController extends Controller
|
||||
$file_name = now()->getPreciseTimestamp(3) . '-' . $request->file('file')->getClientOriginalName();
|
||||
$file = $request->file('file')->storeAs('temp', $file_name);
|
||||
$corporate = Corporate::with(['plans'])->findOrFail($corporate_id);
|
||||
|
||||
$fileWrite = Storage::disk('public')->path('temp/result-' . $file_name);
|
||||
$fileRead = Storage::path('temp/' . $file_name);
|
||||
$import = new ImportService();
|
||||
$import->read(Storage::path('temp/' . $file_name));
|
||||
$import->write(Storage::disk('public')->path('temp/result-' . $file_name), 'xsls');
|
||||
$import->read($fileRead);
|
||||
$import->write($fileWrite, 'xsls');
|
||||
|
||||
foreach ($import->sheetsIterator() as $sheetIndex => $sheet) {
|
||||
if (!in_array($sheet->getName(), ['Plan', 'Benefit'])) {
|
||||
@@ -430,9 +431,11 @@ class CorporateController extends Controller
|
||||
// Write Header to File
|
||||
$result_headers = array_keys($headers_map_to_table_fields);
|
||||
$result_headers = array_merge($result_headers, ['Ingest Code', 'Ingest Note']);
|
||||
|
||||
// $import->read($fileRead);
|
||||
// $import->write($fileWrite, 'xsls');
|
||||
$import->addArrayToRow($result_headers);
|
||||
}
|
||||
|
||||
$doc_headers_indexes = [];
|
||||
foreach ($sheet->getRowIterator() as $index => $row) {
|
||||
if ($index == 1) { // First Row Must be Header
|
||||
@@ -447,12 +450,10 @@ class CorporateController extends Controller
|
||||
// TODO Validate if First Row not Header
|
||||
} else { // Next Row Should be Data
|
||||
$row_data = [];
|
||||
|
||||
foreach ($row->getCells() as $header_index => $cell) {
|
||||
if (isset($headers_map_to_table_fields[$doc_headers_indexes[$header_index]]))
|
||||
$row_data[$headers_map_to_table_fields[$doc_headers_indexes[$header_index]]] = $cell->getValue();
|
||||
}
|
||||
|
||||
try { // Process the Row Data
|
||||
$corporateService = new CorporateService();
|
||||
if ($sheet->getName() == 'Plan') {
|
||||
@@ -461,12 +462,16 @@ class CorporateController extends Controller
|
||||
$corporateService->handleBenefitRow($corporate, $row_data);
|
||||
}
|
||||
// Write Success Result to File
|
||||
$import->addArrayToRow(array_merge($row_data, [
|
||||
'Ingest Code' => 200,
|
||||
'Ingest Note' => 'Success',
|
||||
]), $sheet->getName());
|
||||
// $import->read($fileRead);
|
||||
// $import->write($fileWrite, 'xsls');
|
||||
$result_headers = array_merge($row_data, ['Ingest Code' =>200, 'Ingest Note' => 'Success']);
|
||||
|
||||
$import->addArrayToRow($result_headers, $sheet->getName());
|
||||
|
||||
} catch (ImportRowException $e) {
|
||||
// Write Data Validation Error to File
|
||||
// $import->read($fileRead);
|
||||
// $import->write($fileWrite, 'xsls');
|
||||
$import->addArrayToRow(array_merge($row_data, [
|
||||
'Ingest Code' => $e->getCode(),
|
||||
'Ingest Note' => $e->getMessage(),
|
||||
@@ -474,6 +479,8 @@ class CorporateController extends Controller
|
||||
} catch (\Exception $e) {
|
||||
// throw new \Exception($e);
|
||||
// Write Server Error to File
|
||||
// $import->read($fileRead);
|
||||
// $import->write($fileWrite, 'xsls');
|
||||
$import->addArrayToRow(array_merge($row_data, [
|
||||
'Ingest Code' => 500,
|
||||
'Ingest Note' => env('APP_DEBUG') ? $e->getMessage() : 'Server Error',
|
||||
|
||||
@@ -92,7 +92,7 @@ class DivisionController extends Controller
|
||||
'code' => [
|
||||
'required',
|
||||
// Rule::unique('corporate_plans')->where('corporate_id', $corporate_id)->ignore($corporatePlan->id)
|
||||
Rule::unique('corporate_divisions')->where('corporate_id', $corporate_id)
|
||||
// Rule::unique('corporate_divisions')->where('corporate_id', $corporate_id)
|
||||
],
|
||||
'name' => 'required'
|
||||
]);
|
||||
|
||||
103
Modules/Internal/Http/Controllers/Api/DoctorRatingController.php
Normal file
103
Modules/Internal/Http/Controllers/Api/DoctorRatingController.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Internal\Http\Controllers\Api;
|
||||
|
||||
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Routing\Controller;
|
||||
use App\Models\OLDLMS\DoctorRating;
|
||||
|
||||
class DoctorRatingController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
* @param int|null $id
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function index($id = null)
|
||||
{
|
||||
$query = DoctorRating::query();
|
||||
if ($id !== null) {
|
||||
$query->where('nID', $id);
|
||||
}
|
||||
|
||||
$doctorRatings = $query->with([
|
||||
'user' => function ($query) {
|
||||
$query->select('nID', 'sFirstName'); // Select only necessary columns
|
||||
}
|
||||
])
|
||||
->select('nIDUser', 'nIDDokter', 'nRating', 'sNotes', 'dCreateOn')
|
||||
->get();
|
||||
|
||||
|
||||
// $prescriptions->toArray();
|
||||
// dd($prescriptions);
|
||||
|
||||
return response()->json($doctorRatings);
|
||||
// return response()->json(Helper::paginateResources(LivechatResource::collection($livechat)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
* @return Renderable
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('internal::create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
* @param Request $request
|
||||
* @return Renderable
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
return view('internal::edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
* @param Request $request
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -5,9 +5,14 @@ namespace Modules\Internal\Http\Controllers\Api;
|
||||
use App\Helpers\Helper;
|
||||
use App\Models\OLDLMS\Livechat;
|
||||
use Illuminate\Contracts\Support\Renderable;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Modules\Internal\Transformers\LivechatResource;
|
||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
||||
|
||||
class LivechatController extends Controller
|
||||
{
|
||||
@@ -15,34 +20,29 @@ class LivechatController extends Controller
|
||||
* Display a listing of the resource.
|
||||
* @return Renderable
|
||||
*/
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
$startDate = $request->startDate;
|
||||
$endDate = $request->endDate;
|
||||
|
||||
$livechat = Livechat::with('doctor.user', 'doctor.speciality', 'appointment.appointmentDetail', 'healthCare')
|
||||
->where('nIDAppointment', '!=', null)->where('nIDAppointment', '!=', '')
|
||||
->latest()
|
||||
->paginate(15);
|
||||
->where('nIDAppointment', '!=', null)
|
||||
->where('nIDAppointment', '!=', '');
|
||||
|
||||
|
||||
if ($startDate) {
|
||||
$livechat = $livechat->where('dCreateOn', '>=', $startDate);
|
||||
}
|
||||
|
||||
if ($endDate) {
|
||||
$livechat = $livechat->where('dCreateOn', '<=', $endDate);
|
||||
}
|
||||
|
||||
$livechat = $livechat->latest()->paginate(15);
|
||||
|
||||
return response()->json(Helper::paginateResources(LivechatResource::collection($livechat)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
* @return Renderable
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('internal::create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
* @param Request $request
|
||||
* @return Renderable
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
* @param int $id
|
||||
@@ -57,34 +57,95 @@ class LivechatController extends Controller
|
||||
return response()->json(new LivechatResource($livechat));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function edit($id)
|
||||
public function export(Request $request)
|
||||
{
|
||||
return view('internal::edit');
|
||||
}
|
||||
$startDate = $request->has('startDate') ? $request->input('startDate') : '';
|
||||
$endDate = $request->has('endDate') ? $request->input('endDate') : '';
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
* @param Request $request
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
$liveChats = Livechat::with('user:nID,sFirstName,sLastName,sEmail,sPhone', 'doctor:nID,nIDSpesialis,nIDUser', 'doctor.user:nID,sFirstName,sLastName', 'appointment:nID,sPaymentStatus', 'appointment.appointmentDetail:nID,nIDAppointment,dTanggalAppointment,tTimeAppointment', 'healthCare:nID,sHealthCare')
|
||||
->where(function (Builder $query) use ($startDate, $endDate) {
|
||||
// $query->where('nIDAppointment', '!=', null);
|
||||
// $query->where('nIDAppointment', '!=', '');
|
||||
if ($startDate) {
|
||||
$query->where('dCreateOn', '>=', $startDate);
|
||||
}
|
||||
if ($endDate) {
|
||||
$query->where('dCreateOn', '<=', $endDate);
|
||||
}
|
||||
})
|
||||
->get(['nId', 'nIDUser', 'nIDDokter', 'nIDHealthCare', 'nIDAppointment', 'sStatus', 'sMediaDokter', 'sMedia']);
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
$headers = [
|
||||
['value' => 'No', 'cell' => 'A1', 'mergeCell' => true, 'mergeToCell' => 'A2'],
|
||||
['value' => 'Nama Dokter', 'cell' => 'B1', 'mergeCell' => true, 'mergeToCell' => 'B2'],
|
||||
['value' => 'Nama Pasien', 'cell' => 'C1', 'mergeCell' => true, 'mergeToCell' => 'C2'],
|
||||
['value' => 'No Telepon Pasien', 'cell' => 'D1', 'mergeCell' => true, 'mergeToCell' => 'D2'],
|
||||
['value' => 'Email Pasien', 'cell' => 'E1', 'mergeCell' => true, 'mergeToCell' => 'E2'],
|
||||
['value' => 'Faskes', 'cell' => 'F1', 'mergeCell' => true, 'mergeToCell' => 'F2'],
|
||||
['value' => 'Tanggal Appointment', 'cell' => 'G1', 'mergeCell' => true, 'mergeToCell' => 'G2'],
|
||||
['value' => 'Chat Via App/Website', 'cell' => 'H1', 'mergeCell' => true, 'mergeToCell' => 'I1'],
|
||||
['value' => 'Pasien', 'cell' => 'H2', 'mergeCell' => false, 'mergeToCell' => ''],
|
||||
['value' => 'Dokter', 'cell' => 'I2', 'mergeCell' => false, 'mergeToCell' => ''],
|
||||
['value' => 'Status Appointment', 'cell' => 'J1', 'mergeCell' => true, 'mergeToCell' => 'J2'],
|
||||
];
|
||||
|
||||
$spreadsheet = new Spreadsheet();
|
||||
$sheet = $spreadsheet->getActiveSheet();
|
||||
|
||||
foreach ($headers as $header) {
|
||||
$sheet->setCellValue($header['cell'], $header['value']);
|
||||
|
||||
if ($header['mergeCell'] === true) {
|
||||
$sheet->mergeCells($header['cell'] . ':' . $header['mergeToCell']);
|
||||
}
|
||||
|
||||
$sheet->getStyle($header['cell'])->getFont()->setBold(true);
|
||||
$sheet->getStyle($header['cell'])->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER)->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
|
||||
}
|
||||
|
||||
$startFrom = 3;
|
||||
foreach ($liveChats as $indexLiveChat => $liveChat) {
|
||||
$sheet->setCellValue('A' . $startFrom, $indexLiveChat + 1);
|
||||
$sheet->setCellValue('B' . $startFrom, $liveChat->doctor->user->full_name ?? '-');
|
||||
$sheet->setCellValue('C' . $startFrom, $liveChat->user->full_name ?? '-');
|
||||
$sheet->setCellValue('D' . $startFrom, preg_replace('/(\d{3})(\d{4})(\d{3})/', '$1 $2 $3', $liveChat->user->sPhone) ?? '-');
|
||||
$sheet->setCellValue('E' . $startFrom, $liveChat->user->sEmail ?? '-');
|
||||
$sheet->setCellValue('F' . $startFrom, $liveChat->healthCare->sHealthCare ?? '-');
|
||||
$sheet->setCellValue('G' . $startFrom, isset($liveChat->appointment->appointmentDetail) ? Carbon::parse($liveChat->appointment->appointmentDetail->dTanggalAppointment)->format('d-m-Y') . ' ' . $liveChat->appointment->appointmentDetail->tTimeAppointment : '-');
|
||||
$sheet->setCellValue('H' . $startFrom, $liveChat->sMedia ?? '-');
|
||||
$sheet->setCellValue('I' . $startFrom, $liveChat->sMediaDokter ?? '-');
|
||||
$sheet->setCellValue('J' . $startFrom, $liveChat->appointment->paymentStatus ?? '-');
|
||||
$startFrom++;
|
||||
}
|
||||
|
||||
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] as $header) {
|
||||
if ($header === 'A') {
|
||||
$spreadsheet->getActiveSheet()->getColumnDimension($header)->setWidth(35, 'px');
|
||||
} elseif ($header === 'H' || $header === 'I') {
|
||||
$spreadsheet->getActiveSheet()->getColumnDimension($header)->setWidth(100, 'px');
|
||||
} else {
|
||||
$spreadsheet->getActiveSheet()->getColumnDimension($header)->setAutoSize(true);
|
||||
}
|
||||
}
|
||||
|
||||
$spreadsheet->getActiveSheet()->getStyle('A3:A' . $startFrom)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER)->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
|
||||
|
||||
$sheet->getDefaultRowDimension()->setRowHeight(-1);
|
||||
$sheet->setTitle('Live Chat Report');
|
||||
|
||||
$writer = new Xlsx($spreadsheet);
|
||||
ob_start();
|
||||
$writer->save('php://output');
|
||||
$content = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
$fileName = 'result-' . now()->getPreciseTimestamp(3) . '-livechat-report.xlsx';
|
||||
Storage::disk('public')->put('temp/' . $fileName, $content);
|
||||
|
||||
$fileUrl = url('storage/temp/' . $fileName);
|
||||
|
||||
return Helper::responseJson([
|
||||
"file_url" => $fileUrl
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,7 +120,6 @@ class PlanController extends Controller
|
||||
$result_headers = array_keys($headers_map_to_table_fields);
|
||||
array_push($result_headers, ['Ingest Code', 'Ingest Note']);
|
||||
$import->addArrayToRow($result_headers);
|
||||
die('fuck');
|
||||
|
||||
$imported_plan_data = 0;
|
||||
$failed_plan_data = [];
|
||||
|
||||
@@ -19,6 +19,7 @@ use Modules\Internal\Http\Controllers\Api\DiagnosisExclusionController;
|
||||
use Modules\Internal\Http\Controllers\Api\DistrictController;
|
||||
use Modules\Internal\Http\Controllers\Api\DivisionController;
|
||||
use Modules\Internal\Http\Controllers\Api\DoctorController;
|
||||
use Modules\Internal\Http\Controllers\Api\DoctorRatingController;
|
||||
use Modules\Internal\Http\Controllers\Api\DrugController;
|
||||
use Modules\Internal\Http\Controllers\Api\FormulariumController;
|
||||
use Modules\Internal\Http\Controllers\Api\Linksehat\PaymentController;
|
||||
@@ -151,15 +152,18 @@ Route::prefix('internal')->group(function () {
|
||||
Route::get('search-specialities', [SpecialityController::class, 'searchSpeciality']);
|
||||
Route::resource('organizations', OrganizationController::class);
|
||||
Route::resource('appointments', AppointmentController::class);
|
||||
Route::get('live-chat/export', [LivechatController::class, 'export']);
|
||||
Route::resource('live-chat', LivechatController::class);
|
||||
Route::get('prescription', [PrescriptionController::class, 'index']);
|
||||
Route::get('prescription/{id}', [PrescriptionController::class, 'index']);
|
||||
Route::get('doctorrating', [DoctorRatingController::class, 'index']);
|
||||
Route::get('doctorrating/{id}', [PrescriptionController::class, 'index']);
|
||||
|
||||
Route::resource('doctors', DoctorController::class);
|
||||
|
||||
Route::post('generate-log/{member_id}', [CorporateMemberController::class, 'generateLog']);
|
||||
Route::controller(ClaimRequestController::class)->group(function(){
|
||||
Route::post('files-mcu','filesMcu');
|
||||
Route::controller(ClaimRequestController::class)->group(function () {
|
||||
Route::post('files-mcu', 'filesMcu');
|
||||
});
|
||||
Route::get('claim-requests', [ClaimRequestController::class, 'index'])->name('claim-requests.index');
|
||||
Route::post('claim-requests/{id}/approve', [ClaimRequestController::class, 'approve'])->name('claim-requests.approve');
|
||||
|
||||
@@ -229,7 +229,7 @@ class CorporateService
|
||||
public function handleBenefitRow(Corporate $corporate, $row)
|
||||
{
|
||||
try {
|
||||
// $row['limit_free_tc'] = 0;
|
||||
$row['limit_free_tc'] = 0;
|
||||
$benefit_data = $row;
|
||||
$this->validateBenefitRow($benefit_data, $corporate->id);
|
||||
$benefit_data["corporate_id"] = $corporate->id;
|
||||
|
||||
@@ -14,6 +14,10 @@ use App\Models\MemberPolicy;
|
||||
use App\Models\MemberPlan;
|
||||
use App\Models\Person;
|
||||
use App\Models\Plan;
|
||||
use App\Models\OLDLMS\User;
|
||||
use App\Models\OLDLMS\UserDetail;
|
||||
use App\Models\OLDLMS\UserInsurance;
|
||||
use App\Models\OLDLMS\UserInsuranceDetail;
|
||||
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
|
||||
use Box\Spout\Common\Entity\Row;
|
||||
use Carbon\Carbon;
|
||||
@@ -331,7 +335,7 @@ class MemberEnrollmentService
|
||||
|
||||
public function validateDate($dateString, $dateFormat = 'Ymd'){
|
||||
$date = DateTime::createFromFormat($dateFormat, $dateString);
|
||||
if ($date && $date->format($dateFormat) == $dateString) {
|
||||
if ($date && ($date->format($dateFormat) == $dateString)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -433,32 +437,32 @@ class MemberEnrollmentService
|
||||
if (empty($row['member_effective_date'])) {
|
||||
throw new ImportRowException(__('enrollment.MEMBER_EFFECTIVE_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
if(!$this->validateDate($row['member_effective_date'])){
|
||||
throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
'title' => $title['member_effective_date']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
// if(!$this->validateDate($row['member_effective_date'])){
|
||||
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
// 'title' => $title['member_effective_date']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (empty($row['member_expiry_date'])) {
|
||||
throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
if(!$this->validateDate($row['member_expiry_date'])){
|
||||
throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
'title' => $title['member_expiry_date']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
// if(!$this->validateDate($row['member_expiry_date'])){
|
||||
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
// 'title' => $title['member_expiry_date']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
// TODO EFFECTIVE DATE VALIDATION
|
||||
// if (empty($row['activation_date'])) {
|
||||
// throw new ImportRowException(__('enrollment.ACTIVATION_DATE_REQUIRED'), 0, null, $row);
|
||||
// }
|
||||
if(!empty($row['activation_date'])){
|
||||
if(!$this->validateDate($row['activation_date'])){
|
||||
throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
'title' => $title['activation_date']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
}
|
||||
// if(!empty($row['activation_date'])){
|
||||
// if(!$this->validateDate($row['activation_date'])){
|
||||
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
// 'title' => $title['activation_date']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
// }
|
||||
// TODO FKTP VALIDATION
|
||||
// TODO FKRTL VALIDATION
|
||||
|
||||
@@ -491,22 +495,22 @@ class MemberEnrollmentService
|
||||
if (empty($row['date_of_birth'])) {
|
||||
throw new ImportRowException(__('enrollment.DATE_OF_BIRTH_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
if(!$this->validateDate($row['date_of_birth'])){
|
||||
throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
'title' => $title['date_of_birth']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
// if(!$this->validateDate($row['date_of_birth'])){
|
||||
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
// 'title' => $title['date_of_birth']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
// if (empty($row['date_terminated'])) {
|
||||
// throw new ImportRowException(__('enrollment.DATE_OF_TERMINATED'), 0, null, $row);
|
||||
// }
|
||||
if (!empty($row['date_terminated'])) {
|
||||
if(!$this->validateDate($row['date_terminated'])){
|
||||
throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
'title' => $title['date_terminated']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
}
|
||||
// if (!empty($row['date_terminated'])) {
|
||||
// if(!$this->validateDate($row['date_terminated'])){
|
||||
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
|
||||
// 'title' => $title['date_terminated']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
// }
|
||||
// TODO DOB FORMAT VALIDATION
|
||||
|
||||
if (empty($row['sex'])) {
|
||||
@@ -625,6 +629,7 @@ class MemberEnrollmentService
|
||||
'start' => $corporate->currentPolicy->start
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if ($member_effective_date >= $corporate->currentPolicy->end && ($member_effective_date != $corporate->currentPolicy->end)) {
|
||||
throw new ImportRowException(__('enrollment.LESS_THAN', [
|
||||
'date_param' => 'Member Effective Date',
|
||||
@@ -633,6 +638,7 @@ class MemberEnrollmentService
|
||||
'end' => $corporate->currentPolicy->end
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if ($member_effective_date >= $corporate->currentPolicy->end && ($member_effective_date != $corporate->currentPolicy->end)) {
|
||||
throw new ImportRowException(__('enrollment.LESS_THAN', [
|
||||
'date_param' => 'Member Effective Date',
|
||||
@@ -649,7 +655,11 @@ class MemberEnrollmentService
|
||||
'start' => $corporate->currentPolicy->start
|
||||
]), 0, null, $row);
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> origin/staging
|
||||
if ($members_expire_date >= $corporate->currentPolicy->end && ($members_expire_date != $corporate->currentPolicy->end)) {
|
||||
throw new ImportRowException(__('enrollment.LESS_THAN', [
|
||||
'date_param' => 'Member Expired Date',
|
||||
@@ -699,6 +709,7 @@ class MemberEnrollmentService
|
||||
'gender' => Helper::genderPerson($row['sex']),
|
||||
'language' => $row['language'] ?? null,
|
||||
'race' => $row['race'] ?? null,
|
||||
'phone' => $row['telephone_mobile'] ?? null
|
||||
]
|
||||
);
|
||||
$member->person_id = $person->id;
|
||||
@@ -743,6 +754,7 @@ class MemberEnrollmentService
|
||||
'gender' => Helper::genderPerson($row['sex']),
|
||||
'language' => $row['language'] ?? null,
|
||||
'race' => $row['race'] ?? null,
|
||||
'phone' => $row['telephone_mobile'],
|
||||
]);
|
||||
$member->person_id = $person->id;
|
||||
$member->save();
|
||||
@@ -793,19 +805,44 @@ 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();
|
||||
|
||||
<<<<<<< HEAD
|
||||
// Validate If Exist Member
|
||||
=======
|
||||
// // Validate If Exist Member
|
||||
>>>>>>> origin/staging
|
||||
if (!$member) {
|
||||
throw new ImportRowException(__('enrollment.MEMBER_NOT_FOUND', [
|
||||
'member_id' => $row['member_id'],
|
||||
'policy_id' => $row['policy_number']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
|
||||
$person = Person::updateOrCreate(
|
||||
[
|
||||
'id' => $member->person_id
|
||||
],
|
||||
[
|
||||
'name' => $row['name'] ?? null,
|
||||
// 'birth_date' => $this->dateParser($row['date_of_birth']),
|
||||
'birth_date' => $row['date_of_birth'],
|
||||
'gender' => Helper::genderPerson($row['sex']),
|
||||
'language' => $row['language'] ?? null,
|
||||
'race' => $row['race'] ?? null,
|
||||
'phone' => $row['telephone_mobile']
|
||||
]
|
||||
);
|
||||
|
||||
$member->person_id = $person->id;
|
||||
$member->save();
|
||||
try {
|
||||
|
||||
$memberPolicy = MemberPolicy::query()
|
||||
->where('policy_id', $row['policy_number'])
|
||||
->where('member_id', $row['member_id'])
|
||||
@@ -823,6 +860,102 @@ class MemberEnrollmentService
|
||||
$memberPlan->save();
|
||||
}
|
||||
|
||||
// Pengecekan jika ada perubahan di plan
|
||||
$plan = Plan::query()
|
||||
->where('code', $row['plan_id'])
|
||||
->first();
|
||||
if ($plan){
|
||||
$memberPlan = MemberPlan::query()
|
||||
->where('member_id', $member->id)
|
||||
->first();
|
||||
$memberPlan->plan_id = $plan->id;
|
||||
$memberPlan->save();
|
||||
}
|
||||
// Update jika ada perubahaan di ASO maka akan teriflek ke LMS juga\
|
||||
$userInsuranceLms = UserInsurance::query()
|
||||
->where('sNoPolis', $row['member_id'])
|
||||
->first();
|
||||
if ($userInsuranceLms){
|
||||
$userInsuranceLms->sNamaPeserta = $row['name'];
|
||||
$userInsuranceLms->dStartDate = $row['member_effective_date'];
|
||||
$userInsuranceLms->dExpireDate = $row['member_expiry_date'];
|
||||
$nIDUser = $userInsuranceLms->nIDUser;
|
||||
|
||||
UserInsurance::updateOrCreate(
|
||||
['nIDUser' => $nIDUser],
|
||||
[
|
||||
'sNamaPeserta' => $row['name'],
|
||||
'dStartDate' => $row['member_effective_date'],
|
||||
'dExpireDate' => $row['member_expiry_date'],
|
||||
'dTanggalLahir' => $row['date_of_birth'],
|
||||
// 'nNoKTP' => $row['nric'] ?? ,
|
||||
]
|
||||
);
|
||||
/* Lihat ID Marital status di table tm_status_pernikahan Linksehat */
|
||||
if ($row['relationship_with_principal'] == 'H'){
|
||||
$sMartialStatus= 6;
|
||||
$nIDHubunganKeluarga = 3;
|
||||
} else if ($row['relationship_with_principal'] == 'W'){
|
||||
$sMartialStatus = 7;
|
||||
$nIDHubunganKeluarga = 4;
|
||||
} else if ($row['relationship_with_principal'] == 'S'){
|
||||
$sMartialStatus = 4;
|
||||
$nIDHubunganKeluarga = 5;
|
||||
} else if ($row['relationship_with_principal'] == 'D'){
|
||||
$sMartialStatus = 5;
|
||||
$nIDHubunganKeluarga = 5;
|
||||
} else {
|
||||
$sMartialStatus = 0;
|
||||
$nIDHubunganKeluarga = 0;
|
||||
}
|
||||
|
||||
|
||||
if($row['sex'] == 'M'){
|
||||
$nIDJenisKelamin = 1;
|
||||
} else {
|
||||
$nIDJenisKelamin = 2;
|
||||
};
|
||||
// $ip_address = $CI->_prepare_ip($CI->input->ip_address());
|
||||
$name = explode(" ", $row['name']);
|
||||
// First name
|
||||
$first_name = isset($name[0]) ? $name[0] : '';
|
||||
// Middle name
|
||||
$middle_name = isset($name[1]) ? $name[1] : '';
|
||||
// Last name
|
||||
$last_name = '';
|
||||
if (count($name) > 2) {
|
||||
$last_name = implode(" ", array_slice($name, 2));
|
||||
}
|
||||
$userLms = User::updateOrCreate(
|
||||
[
|
||||
'nID' => $nIDUser // Kondisi untuk mencari data dengan 'nID' yang sesuai dengan $nIDUser
|
||||
],
|
||||
[
|
||||
'sFirstName' => $first_name,
|
||||
'sLastName' => $middle_name . ' ' .$last_name, // Ubah ini dengan variabel yang sesuai dengan nama belakang (last name)
|
||||
'sPhone' => $row['telephone_mobile'],
|
||||
'sEmail' => str_replace(' ', '', $row['email']),
|
||||
'nIDHubunganKeluarga' => $nIDHubunganKeluarga !== 0 ? $nIDHubunganKeluarga : null,
|
||||
'dUpdateOn' => date('Y-m-d H:i:s'),
|
||||
]
|
||||
);
|
||||
|
||||
$userLmsDetail = UserDetail::updateOrCreate(
|
||||
[
|
||||
'nIDUser' => $nIDUser
|
||||
],
|
||||
[
|
||||
'nIDUser' => $nIDUser,
|
||||
'dTanggalLahir' => $row['date_of_birth'],
|
||||
'dCreateOn' => date('Y-m-d H:i:s'),
|
||||
'sMartialStatus' => $sMartialStatus != 0 ? $sMartialStatus : null,
|
||||
'nIDJenisKelamin' => $nIDJenisKelamin,
|
||||
'sCreateBy' => $nIDUser,
|
||||
'sKTP' => $row['nric'] ?? null,
|
||||
]
|
||||
);
|
||||
|
||||
}
|
||||
if (!$memberPolicy) {
|
||||
throw new ImportRowException(__('enrollment.MEMBER_NOT_EXISTS', [
|
||||
'member_id' => $row['member_id'],
|
||||
|
||||
@@ -18,11 +18,14 @@ class LivechatResource extends JsonResource
|
||||
$livechat = [
|
||||
'id' => $this->nID,
|
||||
'doctor_name' => isset($this->doctor->user->sFirstName) ? $this->doctor->user->sFirstName . ' ' . $this->doctor->user->sLastName : null,
|
||||
'pasien_name' => isset($this->user->sFirstName) ? $this->user->sFirstName . ' ' . $this->user->sLastName : null,
|
||||
'pasien_phone' => isset($this->user->sPhone) ? $this->user->sPhone : '-',
|
||||
'pasien_email' => isset($this->user->sEmail) ? $this->user->sEmail : '-',
|
||||
'speciality' => $this->doctor->speciality->sKeterangan ?? null,
|
||||
'health_care' => $this->healthCare->sHealthCare ?? null,
|
||||
'date_appointment' => Carbon::parse($this->appointment->appointmentDetail->dTanggalAppointment)->format('d-m-Y')
|
||||
. ' ' . $this->appointment->appointmentDetail->tTimeAppointment ?? null,
|
||||
'status_appointment' => $this->appointment->status_name ?? null,
|
||||
'status_appointment' => $this->appointment->paymentStatus ?? null,
|
||||
'date_created' => Carbon::parse($this->appointment->dCreateOn)->format('d-m-Y H:i:s') ?? null,
|
||||
'patient_media' => $this->sMedia ?? null,
|
||||
'doctor_media' => $this->sMediaDokter ?? null,
|
||||
|
||||
Reference in New Issue
Block a user