This commit is contained in:
Server D3 Linksehat
2025-05-06 14:28:17 +07:00
parent 8b06eb77d1
commit 202df9064f

View File

@@ -5,6 +5,7 @@ namespace Modules\Internal\Http\Controllers\Api;
use App\Helpers\Helper; use App\Helpers\Helper;
use App\Models\OLDLMS\Livechat; use App\Models\OLDLMS\Livechat;
use App\Models\OLDLMS\Appointment; use App\Models\OLDLMS\Appointment;
use App\Models\Organization;
use Illuminate\Contracts\Support\Renderable; use Illuminate\Contracts\Support\Renderable;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -25,12 +26,18 @@ class LivechatController extends Controller
{ {
$startDate = $request->startDate; $startDate = $request->startDate;
$endDate = $request->endDate; $endDate = $request->endDate;
$search = $request->search;
$livechat = Livechat::with('doctor.user', 'doctor.speciality', 'appointment.appointmentDetail', 'healthCare'); $livechat = Livechat::with('doctor.user', 'doctor.speciality', 'appointment.appointmentDetail', 'healthCare', 'user');
// ->where('nIDAppointment', '!=', null) // ->where('nIDAppointment', '!=', null)
// ->where('nIDAppointment', '!=', ''); // ->where('nIDAppointment', '!=', '');
if ($search) {
$livechat = $livechat->whereHas('user', function ($query) use ($search) {
$query->where('sFirstName', 'like', '%' . $search . '%')
->orWhere('sLastName', 'like', '%' . $search . '%');
});
}
if ($startDate) { if ($startDate) {
$livechat = $livechat->where('dCreateOn', '>=', $startDate); $livechat = $livechat->where('dCreateOn', '>=', $startDate);
} }
@@ -443,9 +450,10 @@ class LivechatController extends Controller
['value' => 'Poli', 'cell' => 'Y1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Poli', 'cell' => 'Y1', 'mergeCell' => false, 'mergeToCell' => ''],
['value' => 'Total', 'cell' => 'Z1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Total', 'cell' => 'Z1', 'mergeCell' => false, 'mergeToCell' => ''],
['value' => 'Obat', 'cell' => 'AA1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Obat', 'cell' => 'AA1', 'mergeCell' => false, 'mergeToCell' => ''],
['value' => 'Nama Obat', 'cell' => 'AB1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Apotek', 'cell' => 'AB1', 'mergeCell' => false, 'mergeToCell' => ''],
['value' => 'Jumlah Obat', 'cell' => 'AC1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Nama Obat', 'cell' => 'AC1', 'mergeCell' => false, 'mergeToCell' => ''],
['value' => 'By', 'cell' => 'AD1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Jumlah Obat', 'cell' => 'AD1', 'mergeCell' => false, 'mergeToCell' => ''],
['value' => 'By', 'cell' => 'AE1', 'mergeCell' => false, 'mergeToCell' => ''],
]; ];
$spreadsheet = new Spreadsheet(); $spreadsheet = new Spreadsheet();
@@ -472,7 +480,7 @@ class LivechatController extends Controller
$startFromSheet1 = 2; $startFromSheet1 = 2;
$startFromSheet2 = 2; $startFromSheet2 = 2;
foreach ($liveChats as $indexLiveChat => $liveChat) { foreach ($liveChats as $indexLiveChat => $liveChat) {
if (!$liveChat->prescription) { //###################### SHEET 1 ##########
$phone = $liveChat->user->sPhone ?? '-'; $phone = $liveChat->user->sPhone ?? '-';
$status = $liveChat->sStatus; $status = $liveChat->sStatus;
$nIDUser = $liveChat->user->nIDUser ?? 0; // Principal or Dependent $nIDUser = $liveChat->user->nIDUser ?? 0; // Principal or Dependent
@@ -566,6 +574,11 @@ class LivechatController extends Controller
$tebusResep = 'Belum Ditebus'; $tebusResep = 'Belum Ditebus';
$paymentTebus = '-'; $paymentTebus = '-';
$obat = '-';
$obatQty = '-';
$qtyTotal = 0;
// Nama Apotek
$apotek = '-';
if ($liveChat->prescription){ if ($liveChat->prescription){
// Tanggal target (misalnya, dari database atau input) // Tanggal target (misalnya, dari database atau input)
$tanggalResep = Carbon::parse($liveChat->prescription->dTanggalResep); $tanggalResep = Carbon::parse($liveChat->prescription->dTanggalResep);
@@ -584,10 +597,31 @@ class LivechatController extends Controller
} }
if($liveChat->prescription->payment){ if($liveChat->prescription->payment){
$tebusResep = 'Online'; $tebusResep = 'Online';
$apotek = Organization::where('code', $liveChat->prescription->payment->nIDApotek)->first();
if ($apotek){
$apotek = $apotek->name;
} else {
$apotek = '-';
}
if ($liveChat->prescription->payment->sPaymentStatus == 'paid'){ if ($liveChat->prescription->payment->sPaymentStatus == 'paid'){
$paymentTebus = Carbon::parse($liveChat->prescription->payment->dCreateOn)->format('d-m-Y H:i:s'); $paymentTebus = Carbon::parse($liveChat->prescription->payment->dCreateOn)->format('d-m-Y H:i:s');
} }
}; };
if ($liveChat->prescription->items){
$obatArray = [];
$obatQtyArray = [];
foreach($liveChat->prescription->items as $data){
$obatArray[] = $data->sItemName;
$obatQtyArray[] = $data->nQty;
$qtyTotal += $data->nQty;
}
$obat = implode('; ',$obatArray);
$obatQty = implode('; ',$obatQtyArray);
}
} else { } else {
$tebusResep = '-'; $tebusResep = '-';
} }
@@ -614,8 +648,6 @@ class LivechatController extends Controller
$nIDHubunganKeluarga = $liveChat->user->relation->sHubunganKeluarga; $nIDHubunganKeluarga = $liveChat->user->relation->sHubunganKeluarga;
} }
$obat = '-';
$sheet->setCellValue('A' . $startFromSheet1, $liveChat->nID ?? '-'); $sheet->setCellValue('A' . $startFromSheet1, $liveChat->nID ?? '-');
$sheet->setCellValue('B' . $startFromSheet1, $liveChat->sNoSpj ?? '-'); $sheet->setCellValue('B' . $startFromSheet1, $liveChat->sNoSpj ?? '-');
$sheet->setCellValue('C' . $startFromSheet1, (string)($liveChat->userInsurance->sCorporateCode ?? '-')); $sheet->setCellValue('C' . $startFromSheet1, (string)($liveChat->userInsurance->sCorporateCode ?? '-'));
@@ -645,12 +677,13 @@ class LivechatController extends Controller
$sheet->setCellValue('X' . $startFromSheet1, $liveChat->rujukan ? 'Ya' : 'Tidak'); $sheet->setCellValue('X' . $startFromSheet1, $liveChat->rujukan ? 'Ya' : 'Tidak');
$sheet->setCellValue('Y' . $startFromSheet1, $liveChat->rujukan->sDepartement ?? '-' ); $sheet->setCellValue('Y' . $startFromSheet1, $liveChat->rujukan->sDepartement ?? '-' );
$sheet->setCellValue('Z' . $startFromSheet1, '-'); $sheet->setCellValue('Z' . $startFromSheet1, $qtyTotal);
$sheet->setCellValue('AA' . $startFromSheet1, $tebusResep); $sheet->setCellValue('AA' . $startFromSheet1, $tebusResep);
$sheet->setCellValue('AB' . $startFromSheet1, '-'); $sheet->setCellValue('AB' . $startFromSheet1, $apotek);
$sheet->setCellValue('AC' . $startFromSheet1, '-'); $sheet->setCellValue('AC' . $startFromSheet1, $obat);
$sheet->setCellValue('AD' . $startFromSheet1, 'LMS'); $sheet->setCellValue('AD' . $startFromSheet1, $obatQty);
$sheet->setCellValue('AE' . $startFromSheet1, 'LMS');
// $sheet->setCellValue('AC' . $startFrom, $liveChat->prescription->dCreateOn ?? '-'); // $sheet->setCellValue('AC' . $startFrom, $liveChat->prescription->dCreateOn ?? '-');
// $sheet->setCellValue('AD' . $startFrom, $obat); // $sheet->setCellValue('AD' . $startFrom, $obat);
// $sheet->setCellValue('AE' . $startFrom, $tebusResep); // $sheet->setCellValue('AE' . $startFrom, $tebusResep);
@@ -661,8 +694,13 @@ class LivechatController extends Controller
// $sheet->setCellValue('AI' . $startFrom, $liveChat->summary->sSubjective ?? '-'); // $sheet->setCellValue('AI' . $startFrom, $liveChat->summary->sSubjective ?? '-');
// $sheet->setCellValue('AJ' . $startFrom, $liveChat->sNoSpj ?? '-'); // $sheet->setCellValue('AJ' . $startFrom, $liveChat->sNoSpj ?? '-');
$startFromSheet1++; $startFromSheet1++;
//###################### END SHEET 1 ##########
if (!$liveChat->prescription) {
} else { } else {
if ($liveChat->prescription->items){ if ($liveChat->prescription->items){
$obatArray = [];
$obatQtyArray = [];
foreach($liveChat->prescription->items as $data){ foreach($liveChat->prescription->items as $data){
$phone = $liveChat->user->sPhone ?? '-'; $phone = $liveChat->user->sPhone ?? '-';
$status = $liveChat->sStatus; $status = $liveChat->sStatus;
@@ -779,6 +817,13 @@ class LivechatController extends Controller
} }
if($liveChat->prescription->payment){ if($liveChat->prescription->payment){
$tebusResep = 'Online'; $tebusResep = 'Online';
$apotek = Organization::where('id', $liveChat->prescription->payment->nIDApotek)->first();
if ($apotek){
$apotek = $apotek->name;
} else {
$apotek = '-';
}
if ($liveChat->prescription->payment->sPaymentStatus == 'paid'){ if ($liveChat->prescription->payment->sPaymentStatus == 'paid'){
$paymentTebus = Carbon::parse($liveChat->prescription->payment->dCreateOn)->format('d-m-Y H:i:s'); $paymentTebus = Carbon::parse($liveChat->prescription->payment->dCreateOn)->format('d-m-Y H:i:s');
} }
@@ -809,7 +854,10 @@ class LivechatController extends Controller
$nIDHubunganKeluarga = $liveChat->user->relation->sHubunganKeluarga; $nIDHubunganKeluarga = $liveChat->user->relation->sHubunganKeluarga;
} }
$obat = '-'; $obat = $data->sItemName;
$obatQty = $data->nQty;
$sheet2->setCellValue('A' . $startFromSheet2, $liveChat->nID ?? '-'); $sheet2->setCellValue('A' . $startFromSheet2, $liveChat->nID ?? '-');
$sheet2->setCellValue('B' . $startFromSheet2, $liveChat->sNoSpj ?? '-'); $sheet2->setCellValue('B' . $startFromSheet2, $liveChat->sNoSpj ?? '-');
$sheet2->setCellValue('C' . $startFromSheet2, (string)($liveChat->userInsurance->sCorporateCode ?? '-')); $sheet2->setCellValue('C' . $startFromSheet2, (string)($liveChat->userInsurance->sCorporateCode ?? '-'));
@@ -842,9 +890,10 @@ class LivechatController extends Controller
$sheet2->setCellValue('Z' . $startFromSheet2, '-'); $sheet2->setCellValue('Z' . $startFromSheet2, '-');
$sheet2->setCellValue('AA' . $startFromSheet2, $tebusResep); $sheet2->setCellValue('AA' . $startFromSheet2, $tebusResep);
$sheet2->setCellValue('AB' . $startFromSheet2, $data->sItemName); $sheet2->setCellValue('AB' . $startFromSheet2, $apotek );
$sheet2->setCellValue('AC' . $startFromSheet2, $data->nQty); $sheet2->setCellValue('AC' . $startFromSheet2, $obat);
$sheet2->setCellValue('AD' . $startFromSheet2, 'LMS'); $sheet2->setCellValue('AD' . $startFromSheet2, $obatQty);
$sheet2->setCellValue('AE' . $startFromSheet2, 'LMS');
// $sheet->setCellValue('AC' . $startFromSheet2, $liveChat->prescription->dCreateOn ?? '-'); // $sheet->setCellValue('AC' . $startFromSheet2, $liveChat->prescription->dCreateOn ?? '-');
// $sheet->setCellValue('AD' . $startFromSheet2, $obat); // $sheet->setCellValue('AD' . $startFromSheet2, $obat);
// $sheet->setCellValue('AE' . $startFromSheet2, $tebusResep); // $sheet->setCellValue('AE' . $startFromSheet2, $tebusResep);