add ruangan, jenis menu, total tagihan, jenis pembayaran
This commit is contained in:
parent
4ab6c690b7
commit
9a1d59f608
@ -508,20 +508,19 @@ class PesananController extends Controller
|
||||
$waktu_cetak = Carbon::now()->locale('id')->translatedFormat('d F Y');
|
||||
$spreadsheet = new Spreadsheet();
|
||||
$sheet = $spreadsheet->getActiveSheet();
|
||||
|
||||
$sheet->setCellValue('A1', "Laporan Pesanan dari {$startDateFormatted} sampai {$endDateFormatted}");
|
||||
$sheet->mergeCells('A1:R1');
|
||||
$sheet->mergeCells('A1:T1');
|
||||
$sheet->getStyle('A1')->getFont()->setBold(true)->setSize(14);
|
||||
$sheet->getStyle('A1')->getAlignment()->setHorizontal('center');
|
||||
|
||||
$sheet->setCellValue('A2', "Waktu Cetak: {$waktu_cetak}");
|
||||
$sheet->mergeCells('A2:R2');
|
||||
$sheet->mergeCells('A2:T2');
|
||||
$sheet->getStyle('A2')->getAlignment()->setHorizontal('center');
|
||||
|
||||
// Header tabel
|
||||
$headers = ["No", "Nomor Order", "Nama Pemesan", "Jenis Customer", "Status Pembayaran", "Jenis Kelamin", "NO.HP/WA", "Email" , "Cara Pembayaran", "Tanggal Pesan", "Harga Total", "Menu Pesanan", "Total Kalori", "Jumlah", "Status Pesanan", "Tanggal Antar", "Waktu Makan / Jam Layanan", "Catatan"];
|
||||
$headers = ["No", "Nomor Order", "Nama Pemesan", "Jenis Customer", "Ruangan", "Status Pembayaran", "Jenis Kelamin", "NO.HP/WA", "Email" , "Jenis Pembayaran", "Tanggal Pesan", "Harga Total", "Jenis Menu", "Menu Pesanan", "Total Kalori", "Jumlah", "Status Pesanan", "Tanggal Antar", "Waktu Makan / Jam Layanan", "Catatan"];
|
||||
$sheet->fromArray($headers, null, 'A4');
|
||||
$sheet->getStyle('A4:R4')->applyFromArray([
|
||||
$sheet->getStyle('A4:T4')->applyFromArray([
|
||||
'font' => ['bold' => true],
|
||||
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER],
|
||||
'borders' => [
|
||||
@ -530,47 +529,64 @@ class PesananController extends Controller
|
||||
]
|
||||
]
|
||||
]);
|
||||
$sheet->getStyle('A4:R4')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A4:R4')->getAlignment()->setHorizontal('center');
|
||||
$sheet->getStyle('A4:R4')->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
|
||||
$sheet->getStyle('A4:T4')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A4:T4')->getAlignment()->setHorizontal('center');
|
||||
$sheet->getStyle('A4:T4')->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
// Isi data
|
||||
$totalPendapatan = 0;
|
||||
$row = 5;
|
||||
foreach ($order as $index => $item) {
|
||||
foreach($item->orderDetail as $detail){
|
||||
|
||||
$sheet->setCellValue("A{$row}", $index + 1);
|
||||
$sheet->setCellValue("B{$row}", $item->no_order);
|
||||
$sheet->setCellValue("C{$row}", $item->nama_pemesan);
|
||||
$sheet->setCellValue("D{$row}", $item->jenis_customer === "MCU" ? $item->nama_institusi . '-' . $item->jenis_customer : $item->jenis_customer);
|
||||
$sheet->setCellValue("E{$row}", $item->status_order);
|
||||
$sheet->setCellValue("F{$row}", $item->jenis_kelamin);
|
||||
$sheet->setCellValue("G{$row}", $item->no_wa);
|
||||
$sheet->setCellValue("H{$row}", $item->email);
|
||||
$sheet->setCellValue("I{$row}", $item->cara_pembayaran);
|
||||
$sheet->setCellValue("J{$row}", Carbon::parse($item->entry_at)->translatedFormat('d F Y H:i'));
|
||||
$sheet->setCellValue("K{$row}", $item->total_harga);
|
||||
|
||||
$sheet->setCellValue("L{$row}", $detail?->menu?->nama_menu ?? $detail?->masterMcu?->nama_mcu);
|
||||
$sheet->setCellValue("M{$row}", $detail?->total_kalori ?? '-');
|
||||
$sheet->setCellValue("N{$row}", $detail?->jumlah ?? '-');
|
||||
$sheet->setCellValue("O{$row}", $detail?->status_order ?? "-");
|
||||
$sheet->setCellValue("P{$row}", $detail?->tgl_antar ? Carbon::parse($item->tgl_antar)->translatedFormat('d F Y') : "Tanggal Antar");
|
||||
$sheet->setCellValue("Q{$row}", $detail?->type ?? $detail->jam_layanan);
|
||||
$sheet->setCellValue("R{$row}", $detail?->catatan ?? "-");
|
||||
if($item->jenis_customer === "Keluarga Pasien / Penunggu Pasien"){
|
||||
$sheet->setCellValue("E{$row}", $item->kelas_perawatan . '/' . $item->no_kamar_perawatan . '/' . $item->ruang_perawatan);
|
||||
}else if($item->jenis_customer === "Karyawan RSAB Harapan Kita"){
|
||||
$sheet->setCellValue("E{$row}", $item->bagian_instalasi ?? '-');
|
||||
}else{
|
||||
$sheet->setCellValue("E{$row}", '-');
|
||||
}
|
||||
$sheet->setCellValue("F{$row}", $item->status_order);
|
||||
$sheet->setCellValue("G{$row}", $item->jenis_kelamin);
|
||||
$sheet->setCellValue("H{$row}", $item->no_wa);
|
||||
$sheet->setCellValue("I{$row}", $item->email);
|
||||
$sheet->setCellValue("J{$row}", $item->cara_pembayaran);
|
||||
$sheet->setCellValue("K{$row}", Carbon::parse($item->entry_at)->translatedFormat('d F Y H:i'));
|
||||
$sheet->setCellValue("L{$row}", $item->total_harga);
|
||||
if($detail?->masterMcu){
|
||||
$sheet->setCellValue("M{$row}", 'Menu MCU');
|
||||
}else{
|
||||
$sheet->setCellValue("M{$row}", $detail?->menu?->apakah_someday ? "Menu Someday" : "Menu Normal");
|
||||
}
|
||||
$sheet->setCellValue("N{$row}", $detail?->menu?->nama_menu ?? $detail?->masterMcu?->nama_mcu);
|
||||
$sheet->setCellValue("O{$row}", $detail?->total_kalori ?? '-');
|
||||
$sheet->setCellValue("P{$row}", $detail?->jumlah ?? '-');
|
||||
$sheet->setCellValue("Q{$row}", $detail?->status_order ?? "-");
|
||||
$sheet->setCellValue("R{$row}", $detail?->tgl_antar ? Carbon::parse($item->tgl_antar)->translatedFormat('d F Y') : "Tanggal Antar");
|
||||
$sheet->setCellValue("S{$row}", $detail?->type ?? $detail->jam_layanan);
|
||||
$sheet->setCellValue("T{$row}", $detail?->catatan ?? "-");
|
||||
// Border tiap baris
|
||||
$sheet->getStyle("A{$row}:R{$row}")->getBorders()->getAllBorders()
|
||||
$sheet->getStyle("A{$row}:T{$row}")->getBorders()->getAllBorders()
|
||||
->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
|
||||
if($item->status_order === "Lunas"){
|
||||
$totalPendapatan += $item?->total_harga;
|
||||
}
|
||||
$row++;
|
||||
}
|
||||
}
|
||||
|
||||
$sheet->getStyle("K{$row}:L{$row}")->getFont()->setBold(true);
|
||||
$sheet->getStyle("K{$row}:L{$row}")->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
$sheet->setCellValue("K{$row}", 'Total Pendapatan');
|
||||
$sheet->setCellValue("L{$row}", $totalPendapatan);
|
||||
// Auto size kolom
|
||||
foreach(range('A', 'R') as $col){
|
||||
foreach(range('A', 'T') as $col){
|
||||
$sheet->getColumnDimension($col)->setAutoSize(true);
|
||||
}
|
||||
$lastRow = $row - 1;
|
||||
$sheet->setAutoFilter("A4:R{$lastRow}");
|
||||
$sheet->setAutoFilter("A4:T{$lastRow}");
|
||||
// Download file
|
||||
$fileName = $title . now()->format('Ymd-His') . '.xlsx';
|
||||
$writer = new Xlsx($spreadsheet);
|
||||
@ -746,18 +762,18 @@ class PesananController extends Controller
|
||||
$sheet = $spreadsheet->getActiveSheet();
|
||||
|
||||
$sheet->setCellValue('A1', "Laporan Pesanan dari {$startDateFormatted} sampai {$endDateFormatted}");
|
||||
$sheet->mergeCells('A1:Q1');
|
||||
$sheet->mergeCells('A1:R1');
|
||||
$sheet->getStyle('A1')->getFont()->setBold(true)->setSize(14);
|
||||
$sheet->getStyle('A1')->getAlignment()->setHorizontal('center');
|
||||
|
||||
$sheet->setCellValue('A2', "Waktu Cetak: {$waktu_cetak}");
|
||||
$sheet->mergeCells('A2:Q2');
|
||||
$sheet->mergeCells('A2:S2');
|
||||
$sheet->getStyle('A2')->getAlignment()->setHorizontal('center');
|
||||
|
||||
// Header tabel
|
||||
$headers = ["No", "Nomor Order", "Nama Pemesan", "Jenis Customer", "Jenis Kelamin", "NO.HP/WA", "Email" , "Cara Pembayaran", "Tanggal Pesan", "Harga Total", "Menu Pesanan", "Total Kalori (kal)", "Jumlah", "Status Pesanan", "Tanggal Antar", "Waktu Makan / Jam Layanan", "Catatan"];
|
||||
$headers = ["No", "Nomor Order", "Nama Pemesan", "Jenis Customer", "Ruangan", "Jenis Kelamin", "NO.HP/WA", "Email" , "Jenis Pembayaran", "Tanggal Pesan", "Harga Total", "Jenis Menu", "Menu Pesanan", "Total Kalori (kal)", "Jumlah", "Status Pesanan", "Tanggal Antar", "Waktu Makan / Jam Layanan", "Catatan"];
|
||||
$sheet->fromArray($headers, null, 'A4');
|
||||
$sheet->getStyle('A4:Q4')->applyFromArray([
|
||||
$sheet->getStyle('A4:S4')->applyFromArray([
|
||||
'font' => ['bold' => true],
|
||||
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER],
|
||||
'borders' => [
|
||||
@ -766,46 +782,63 @@ class PesananController extends Controller
|
||||
]
|
||||
]
|
||||
]);
|
||||
$sheet->getStyle('A4:Q4')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A4:Q4')->getAlignment()->setHorizontal('center');
|
||||
$sheet->getStyle('A4:Q4')->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
$sheet->getStyle('A4:S4')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A4:S4')->getAlignment()->setHorizontal('center');
|
||||
$sheet->getStyle('A4:S4')->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
|
||||
// Isi data
|
||||
$row = 5;
|
||||
$totalPendapatan = 0;
|
||||
foreach ($order as $index => $item) {
|
||||
foreach($item->orderDetail as $detail){
|
||||
$sheet->setCellValue("A{$row}", $index + 1);
|
||||
$sheet->setCellValue("B{$row}", $item->no_order);
|
||||
$sheet->setCellValue("C{$row}", $item->nama_pemesan);
|
||||
$sheet->setCellValue("D{$row}", $item->jenis_customer === "MCU" ? $item->nama_institusi . '-' . $item->jenis_customer : $item->jenis_customer);
|
||||
$sheet->setCellValue("E{$row}", $item->jenis_kelamin);
|
||||
$sheet->setCellValue("F{$row}", $item->no_wa);
|
||||
$sheet->setCellValue("G{$row}", $item->email);
|
||||
$sheet->setCellValue("H{$row}", $item->cara_pembayaran);
|
||||
$sheet->setCellValue("I{$row}", Carbon::parse($item->entry_at)->translatedFormat('d F Y H:i'));
|
||||
$sheet->setCellValue("J{$row}", $item->total_harga);
|
||||
if($item->jenis_customer === "Keluarga Pasien / Penunggu Pasien"){
|
||||
$sheet->setCellValue("E{$row}", $item->kelas_perawatan . '/' . $item->no_kamar_perawatan . '/' . $item->ruang_perawatan);
|
||||
}else if($item->jenis_customer === "Karyawan RSAB Harapan Kita"){
|
||||
$sheet->setCellValue("E{$row}", $item->bagian_instalasi ?? '-');
|
||||
}else{
|
||||
$sheet->setCellValue("E{$row}", '-');
|
||||
}
|
||||
$sheet->setCellValue("F{$row}", $item->jenis_kelamin);
|
||||
$sheet->setCellValue("G{$row}", $item->no_wa);
|
||||
$sheet->setCellValue("H{$row}", $item->email);
|
||||
$sheet->setCellValue("I{$row}", $item->cara_pembayaran);
|
||||
$sheet->setCellValue("J{$row}", Carbon::parse($item->entry_at)->translatedFormat('d F Y H:i'));
|
||||
$sheet->setCellValue("K{$row}", $item->total_harga);
|
||||
|
||||
$sheet->setCellValue("K{$row}", $detail?->menu?->nama_menu ?? $detail?->masterMcu?->nama_mcu);
|
||||
$sheet->setCellValue("L{$row}", $detail?->total_kalori ?? '-');
|
||||
$sheet->setCellValue("M{$row}", $detail?->jumlah ?? '-');
|
||||
$sheet->setCellValue("N{$row}", $detail?->status_order ?? "-");
|
||||
$sheet->setCellValue("O{$row}", $detail?->tgl_antar ? Carbon::parse($item->tgl_antar)->translatedFormat('d F Y') : "-");
|
||||
$sheet->setCellValue("P{$row}", $detail?->type ?? $detail->jam_layanan);
|
||||
$sheet->setCellValue("Q{$row}", $detail?->catatan ?? "-");
|
||||
if($detail?->masterMcu){
|
||||
$sheet->setCellValue("L{$row}", 'Menu MCU');
|
||||
}else{
|
||||
$sheet->setCellValue("L{$row}", $detail?->menu?->apakah_someday ? "Menu Someday" : "Menu Normal");
|
||||
}
|
||||
$sheet->setCellValue("M{$row}", $detail?->menu?->nama_menu ?? $detail?->masterMcu?->nama_mcu);
|
||||
$sheet->setCellValue("N{$row}", $detail?->total_kalori ?? '-');
|
||||
$sheet->setCellValue("O{$row}", $detail?->jumlah ?? '-');
|
||||
$sheet->setCellValue("P{$row}", $detail?->status_order ?? "-");
|
||||
$sheet->setCellValue("Q{$row}", $detail?->tgl_antar ? Carbon::parse($item->tgl_antar)->translatedFormat('d F Y') : "-");
|
||||
$sheet->setCellValue("R{$row}", $detail?->type ?? $detail->jam_layanan);
|
||||
$sheet->setCellValue("S{$row}", $detail?->catatan ?? "-");
|
||||
// Border tiap baris
|
||||
$sheet->getStyle("A{$row}:Q{$row}")->getBorders()->getAllBorders()
|
||||
$sheet->getStyle("A{$row}:S{$row}")->getBorders()->getAllBorders()
|
||||
->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
|
||||
$totalPendapatan += $item->total_harga;
|
||||
$row++;
|
||||
}
|
||||
}
|
||||
|
||||
$sheet->getStyle("I{$row}:K{$row}")->getFont()->setBold(true);
|
||||
$sheet->getStyle("I{$row}:K{$row}")->getBorders()->getAllBorders()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN);
|
||||
$sheet->setCellValue("I{$row}", 'Total Pendapatan');
|
||||
$sheet->setCellValue("K{$row}", $totalPendapatan);
|
||||
// dd($totalPendapatan);
|
||||
// Auto size kolom
|
||||
foreach(range('A', 'Q') as $col){
|
||||
foreach(range('A', 'S') as $col){
|
||||
$sheet->getColumnDimension($col)->setAutoSize(true);
|
||||
}
|
||||
$lastRow = $row - 1;
|
||||
$sheet->setAutoFilter("A4:Q{$lastRow}");
|
||||
$sheet->setAutoFilter("A4:S{$lastRow}");
|
||||
// Download file
|
||||
$fileName = 'laporan-pesanan-' . now()->format('Ymd-His') . '.xlsx';
|
||||
$writer = new Xlsx($spreadsheet);
|
||||
|
||||
@ -31,7 +31,7 @@ class OrderDetail extends Model
|
||||
|
||||
|
||||
public function menu(){
|
||||
return $this->belongsTo(Menu::class, 'master_menu_id', 'master_menu_id')->select('master_menu_id', 'nama_menu', 'foto');
|
||||
return $this->belongsTo(Menu::class, 'master_menu_id', 'master_menu_id')->select('master_menu_id', 'nama_menu', 'foto', 'apakah_someday', 'apakah_mcu');
|
||||
}
|
||||
public function karbohidrat(){
|
||||
return $this->belongsTo(Karbohidrat::class, 'karbohidrat_id', 'karbohidrat_id')->select('karbohidrat_id', 'nama_karbohidrat', 'nilai_kalori');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user