menambahkan style swall alert pada step 3 & menambahkan kolom jenis menu dan ruangan pada tarikan excel verifikasi makanan
This commit is contained in:
parent
9a1d59f608
commit
f94a689c18
@ -398,18 +398,18 @@ class PesananController extends Controller
|
|||||||
$sheet = $spreadsheet->getActiveSheet();
|
$sheet = $spreadsheet->getActiveSheet();
|
||||||
|
|
||||||
$sheet->setCellValue('A1', "Menu Pesanan dari {$startDateFormatted} sampai {$endDateFormatted}");
|
$sheet->setCellValue('A1', "Menu Pesanan dari {$startDateFormatted} sampai {$endDateFormatted}");
|
||||||
$sheet->mergeCells('A1:L1');
|
$sheet->mergeCells('A1:O1');
|
||||||
$sheet->getStyle('A1')->getFont()->setBold(true)->setSize(14);
|
$sheet->getStyle('A1')->getFont()->setBold(true)->setSize(14);
|
||||||
$sheet->getStyle('A1')->getAlignment()->setHorizontal('center');
|
$sheet->getStyle('A1')->getAlignment()->setHorizontal('center');
|
||||||
|
|
||||||
$sheet->setCellValue('A2', "Waktu Cetak: {$waktu_cetak}");
|
$sheet->setCellValue('A2', "Waktu Cetak: {$waktu_cetak}");
|
||||||
$sheet->mergeCells('A2:L2');
|
$sheet->mergeCells('A2:O2');
|
||||||
$sheet->getStyle('A2')->getAlignment()->setHorizontal('center');
|
$sheet->getStyle('A2')->getAlignment()->setHorizontal('center');
|
||||||
|
|
||||||
// Header tabel
|
// Header tabel
|
||||||
$headers = ["No", "Nomor Order", "Nama Pemesan", "Jenis Customer", "Status Pesanan", "Menu Pesanan", "Karbohidrat", "Total Kalori (kal)", "Jumlah", "Tanggal Antar", "Waktu Makan / Jam Layanan", "Catatan"];
|
$headers = ["No", "Nomor Order", "Nama Pemesan", "Jenis Customer", "Ruangan", "Status Pesanan", "Jenis Menu", "Menu Pesanan", "Karbohidrat", "Total Kalori (kal)", "Jumlah", "Tanggal Antar", "Waktu Makan / Jam Layanan", "Harga Total", "Catatan"];
|
||||||
$sheet->fromArray($headers, null, 'A4');
|
$sheet->fromArray($headers, null, 'A4');
|
||||||
$sheet->getStyle('A4:L4')->applyFromArray([
|
$sheet->getStyle('A4:O4')->applyFromArray([
|
||||||
'font' => ['bold' => true],
|
'font' => ['bold' => true],
|
||||||
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER],
|
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER],
|
||||||
'borders' => [
|
'borders' => [
|
||||||
@ -418,37 +418,57 @@ class PesananController extends Controller
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
$sheet->getStyle('A4:L4')->getFont()->setBold(true);
|
$sheet->getStyle('A4:O4')->getFont()->setBold(true);
|
||||||
$sheet->getStyle('A4:L4')->getAlignment()->setHorizontal('center');
|
$sheet->getStyle('A4:O4')->getAlignment()->setHorizontal('center');
|
||||||
$sheet->getStyle('A4:L4')->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
$sheet->getStyle('A4:O4')->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||||
// Isi data
|
// Isi data
|
||||||
$row = 5;
|
$row = 5;
|
||||||
|
$totalPendapatan = 0;
|
||||||
foreach ($orderDetail as $index => $item) {
|
foreach ($orderDetail as $index => $item) {
|
||||||
$sheet->setCellValue("A{$row}", $index + 1);
|
$sheet->setCellValue("A{$row}", $index + 1);
|
||||||
$sheet->setCellValue("B{$row}", $item?->order?->no_order);
|
$sheet->setCellValue("B{$row}", $item?->order?->no_order);
|
||||||
$sheet->setCellValue("C{$row}", $item?->order?->nama_pemesan);
|
$sheet->setCellValue("C{$row}", $item?->order?->nama_pemesan);
|
||||||
$sheet->setCellValue("D{$row}", $item?->order?->jenis_customer === "MCU" ? $item?->order?->nama_institusi . '- MCU' : $item?->order?->jenis_customer);
|
$sheet->setCellValue("D{$row}", $item?->order?->jenis_customer === "MCU" ? $item?->order?->nama_institusi . '- MCU' : $item?->order?->jenis_customer);
|
||||||
$sheet->setCellValue("E{$row}", $item?->status_order ?? "-");
|
if($item->order?->jenis_customer === "Keluarga Pasien / Penunggu Pasien"){
|
||||||
$sheet->setCellValue("F{$row}", $item?->menu?->nama_menu ?? $item?->masterMcu?->nama_mcu);
|
$sheet->setCellValue("E{$row}", $item?->order?->kelas_perawatan . '/' . $item?->order?->no_kamar_perawatan . '/' . $item?->order?->ruang_perawatan);
|
||||||
|
}else if($item->order?->jenis_customer === "Karyawan RSAB Harapan Kita"){
|
||||||
|
$sheet->setCellValue("E{$row}", $item?->order?->bagian_instalasi ?? '-');
|
||||||
|
}else{
|
||||||
|
$sheet->setCellValue("E{$row}", '-');
|
||||||
|
}
|
||||||
|
$sheet->setCellValue("F{$row}", $item?->status_order ?? "-");
|
||||||
|
if($item->menu?->masterMcu){
|
||||||
|
$sheet->setCellValue("G{$row}", 'Menu MCU');
|
||||||
|
}else{
|
||||||
|
$sheet->setCellValue("G{$row}", $item?->menu?->apakah_someday ? "Menu Someday" : "Menu Normal");
|
||||||
|
}
|
||||||
|
$sheet->setCellValue("H{$row}", $item?->menu?->nama_menu ?? $item?->masterMcu?->nama_mcu);
|
||||||
$karbohidratNama = $item?->karbohidrat?->nama_karbohidrat ?? '-';
|
$karbohidratNama = $item?->karbohidrat?->nama_karbohidrat ?? '-';
|
||||||
$karbohidratNilai = $item?->karbohidrat?->nilai_kalori ?? '-';
|
$karbohidratNilai = $item?->karbohidrat?->nilai_kalori ?? '-';
|
||||||
$sheet->setCellValue("G{$row}", $karbohidratNama . ($karbohidratNilai !== '-' ? " ({$karbohidratNilai} kal)" : ''));
|
$sheet->setCellValue("I{$row}", $karbohidratNama . ($karbohidratNilai !== '-' ? " ({$karbohidratNilai} kal)" : ''));
|
||||||
$sheet->setCellValue("H{$row}", $item?->total_kalori ?? '-');
|
$sheet->setCellValue("J{$row}", $item?->total_kalori ?? '-');
|
||||||
$sheet->setCellValue("I{$row}", $item?->jumlah ?? '-');
|
$sheet->setCellValue("K{$row}", $item?->jumlah ?? '-');
|
||||||
$sheet->setCellValue("J{$row}", $item?->tgl_antar ? Carbon::parse($item->tgl_antar)->translatedFormat('d F Y') : "Tanggal Antar");
|
$sheet->setCellValue("L{$row}", $item?->tgl_antar ? Carbon::parse($item->tgl_antar)->translatedFormat('d F Y') : "Tanggal Antar");
|
||||||
$sheet->setCellValue("K{$row}", $item?->type ?? $item->jam_layanan);
|
$sheet->setCellValue("M{$row}", $item?->type ?? $item->jam_layanan);
|
||||||
$sheet->setCellValue("L{$row}", $item?->catatan ?? "-");
|
$sheet->setCellValue("N{$row}", $item?->order?->total_harga);
|
||||||
|
$sheet->setCellValue("O{$row}", $item?->catatan ?? "-");
|
||||||
// Border tiap baris
|
// Border tiap baris
|
||||||
$sheet->getStyle("A{$row}:L{$row}")->getBorders()->getAllBorders()
|
$sheet->getStyle("A{$row}:O{$row}")->getBorders()->getAllBorders()
|
||||||
->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||||
|
$totalPendapatan += $item?->order?->total_harga;
|
||||||
$row++;
|
$row++;
|
||||||
}
|
}
|
||||||
|
$sheet->getStyle("L{$row}:N{$row}")->getFont()->setBold(true);
|
||||||
|
$sheet->getStyle("L{$row}:N{$row}")->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||||
|
$sheet->setCellValue("L{$row}", 'Total Pendapatan');
|
||||||
|
$sheet->setCellValue("N{$row}", $totalPendapatan);
|
||||||
|
|
||||||
// Auto size kolom
|
// Auto size kolom
|
||||||
foreach(range('A', 'L') as $col){
|
foreach(range('A', 'O') as $col){
|
||||||
$sheet->getColumnDimension($col)->setAutoSize(true);
|
$sheet->getColumnDimension($col)->setAutoSize(true);
|
||||||
}
|
}
|
||||||
$lastRow = $row - 1;
|
$lastRow = $row - 1;
|
||||||
$sheet->setAutoFilter("A4:L{$lastRow}");
|
$sheet->setAutoFilter("A4:O{$lastRow}");
|
||||||
// Download file
|
// Download file
|
||||||
$fileName = 'menu-pesanan' . now()->format('Ymd-His') . '.xlsx';
|
$fileName = 'menu-pesanan' . now()->format('Ymd-His') . '.xlsx';
|
||||||
$writer = new Xlsx($spreadsheet);
|
$writer = new Xlsx($spreadsheet);
|
||||||
|
|||||||
@ -69,16 +69,21 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
let cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
|
let cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
|
||||||
for (const item of cart) {
|
// for (const item of cart) {
|
||||||
for (const p of item.pesanan) {
|
// for (const p of item.pesanan) {
|
||||||
const result = validateTanggalPemesanan(item, p.tgl);
|
// const result = validateTanggalPemesanan(item, p.tgl);
|
||||||
|
|
||||||
if (!result.valid) {
|
// if (!result.valid) {
|
||||||
alert(result.message);
|
// Swal.fire({
|
||||||
return; // hentikan di sini, tidak lanjut
|
// title: 'Perhatian!',
|
||||||
}
|
// text: `${result.message}`,
|
||||||
}
|
// icon: 'warning',
|
||||||
}
|
// confirmButtonText: 'Oke'
|
||||||
|
// })
|
||||||
|
// return; // hentikan di sini, tidak lanjut
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
if (!sessionStorage.getItem('order_id')) {
|
if (!sessionStorage.getItem('order_id')) {
|
||||||
@ -96,7 +101,6 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
renderCartSummary()
|
renderCartSummary()
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
|
||||||
Swal.fire('Error', 'Terjadi kesalahan, silakan coba lagi.', 'error');
|
Swal.fire('Error', 'Terjadi kesalahan, silakan coba lagi.', 'error');
|
||||||
}finally{
|
}finally{
|
||||||
btnLoad.disabled = false;
|
btnLoad.disabled = false;
|
||||||
@ -945,10 +949,12 @@ function validateTanggalPemesanan(item, tglDipilih) {
|
|||||||
const batasWaktu = 13 * 60;
|
const batasWaktu = 13 * 60;
|
||||||
const tglSekarang = now.toISOString().split("T")[0];
|
const tglSekarang = now.toISOString().split("T")[0];
|
||||||
|
|
||||||
|
// console.log(totalMenit, batasWaktu);
|
||||||
|
|
||||||
if (item.apakah_someday && totalMenit >= batasWaktu && tglDipilih === tglSekarang) {
|
if (item.apakah_someday && totalMenit >= batasWaktu && tglDipilih === tglSekarang) {
|
||||||
return {
|
return {
|
||||||
valid: false,
|
valid: false,
|
||||||
message: `Maaf, Anda tidak bisa memilih hari ini (${tglDipilih}) untuk menu sameday karena sudah lewat jam 13:00`
|
message: `Maaf, Anda tidak bisa memilih ini (${tglDipilih}) untuk menu sameday karena sudah lewat dari batas jam pemesanan`
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user