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->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')->getAlignment()->setHorizontal('center');
|
||||
|
||||
$sheet->setCellValue('A2', "Waktu Cetak: {$waktu_cetak}");
|
||||
$sheet->mergeCells('A2:L2');
|
||||
$sheet->mergeCells('A2:O2');
|
||||
$sheet->getStyle('A2')->getAlignment()->setHorizontal('center');
|
||||
|
||||
// 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->getStyle('A4:L4')->applyFromArray([
|
||||
$sheet->getStyle('A4:O4')->applyFromArray([
|
||||
'font' => ['bold' => true],
|
||||
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER],
|
||||
'borders' => [
|
||||
@ -418,37 +418,57 @@ class PesananController extends Controller
|
||||
]
|
||||
]
|
||||
]);
|
||||
$sheet->getStyle('A4:L4')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A4:L4')->getAlignment()->setHorizontal('center');
|
||||
$sheet->getStyle('A4:L4')->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
$sheet->getStyle('A4:O4')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A4:O4')->getAlignment()->setHorizontal('center');
|
||||
$sheet->getStyle('A4:O4')->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
// Isi data
|
||||
$row = 5;
|
||||
$totalPendapatan = 0;
|
||||
foreach ($orderDetail as $index => $item) {
|
||||
$sheet->setCellValue("A{$row}", $index + 1);
|
||||
$sheet->setCellValue("B{$row}", $item?->order?->no_order);
|
||||
$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("E{$row}", $item?->status_order ?? "-");
|
||||
$sheet->setCellValue("F{$row}", $item?->menu?->nama_menu ?? $item?->masterMcu?->nama_mcu);
|
||||
if($item->order?->jenis_customer === "Keluarga Pasien / Penunggu Pasien"){
|
||||
$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 ?? '-';
|
||||
$karbohidratNilai = $item?->karbohidrat?->nilai_kalori ?? '-';
|
||||
$sheet->setCellValue("G{$row}", $karbohidratNama . ($karbohidratNilai !== '-' ? " ({$karbohidratNilai} kal)" : ''));
|
||||
$sheet->setCellValue("H{$row}", $item?->total_kalori ?? '-');
|
||||
$sheet->setCellValue("I{$row}", $item?->jumlah ?? '-');
|
||||
$sheet->setCellValue("J{$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("L{$row}", $item?->catatan ?? "-");
|
||||
$sheet->setCellValue("I{$row}", $karbohidratNama . ($karbohidratNilai !== '-' ? " ({$karbohidratNilai} kal)" : ''));
|
||||
$sheet->setCellValue("J{$row}", $item?->total_kalori ?? '-');
|
||||
$sheet->setCellValue("K{$row}", $item?->jumlah ?? '-');
|
||||
$sheet->setCellValue("L{$row}", $item?->tgl_antar ? Carbon::parse($item->tgl_antar)->translatedFormat('d F Y') : "Tanggal Antar");
|
||||
$sheet->setCellValue("M{$row}", $item?->type ?? $item->jam_layanan);
|
||||
$sheet->setCellValue("N{$row}", $item?->order?->total_harga);
|
||||
$sheet->setCellValue("O{$row}", $item?->catatan ?? "-");
|
||||
// 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);
|
||||
$totalPendapatan += $item?->order?->total_harga;
|
||||
$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
|
||||
foreach(range('A', 'L') as $col){
|
||||
foreach(range('A', 'O') as $col){
|
||||
$sheet->getColumnDimension($col)->setAutoSize(true);
|
||||
}
|
||||
$lastRow = $row - 1;
|
||||
$sheet->setAutoFilter("A4:L{$lastRow}");
|
||||
$sheet->setAutoFilter("A4:O{$lastRow}");
|
||||
// Download file
|
||||
$fileName = 'menu-pesanan' . now()->format('Ymd-His') . '.xlsx';
|
||||
$writer = new Xlsx($spreadsheet);
|
||||
|
||||
@ -69,16 +69,21 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
return
|
||||
}
|
||||
let cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
|
||||
for (const item of cart) {
|
||||
for (const p of item.pesanan) {
|
||||
const result = validateTanggalPemesanan(item, p.tgl);
|
||||
// for (const item of cart) {
|
||||
// for (const p of item.pesanan) {
|
||||
// const result = validateTanggalPemesanan(item, p.tgl);
|
||||
|
||||
if (!result.valid) {
|
||||
alert(result.message);
|
||||
return; // hentikan di sini, tidak lanjut
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (!result.valid) {
|
||||
// Swal.fire({
|
||||
// title: 'Perhatian!',
|
||||
// text: `${result.message}`,
|
||||
// icon: 'warning',
|
||||
// confirmButtonText: 'Oke'
|
||||
// })
|
||||
// return; // hentikan di sini, tidak lanjut
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
if (!sessionStorage.getItem('order_id')) {
|
||||
@ -96,7 +101,6 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
renderCartSummary()
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
Swal.fire('Error', 'Terjadi kesalahan, silakan coba lagi.', 'error');
|
||||
}finally{
|
||||
btnLoad.disabled = false;
|
||||
@ -945,10 +949,12 @@ function validateTanggalPemesanan(item, tglDipilih) {
|
||||
const batasWaktu = 13 * 60;
|
||||
const tglSekarang = now.toISOString().split("T")[0];
|
||||
|
||||
// console.log(totalMenit, batasWaktu);
|
||||
|
||||
if (item.apakah_someday && totalMenit >= batasWaktu && tglDipilih === tglSekarang) {
|
||||
return {
|
||||
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