Kasir/app/Exports/RingkasanExport.php
2025-09-08 18:28:49 +07:00

69 lines
2.1 KiB
PHP

<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
class RingkasanExport implements FromArray, WithHeadings, ShouldAutoSize
{
protected $data;
public function __construct(iterable $data)
{
$this->data = $data;
}
public function array(): array
{
$rows = [];
// Iterasi setiap hari/bulan
foreach ($this->data as $item) {
// Baris pertama untuk entri sales pertama
if (count($item['sales']) > 0) {
foreach ($item['sales'] as $index => $sales) {
$rows[] = [
'Tanggal' => $item['tanggal'],
'Nama Sales' => $sales['nama'],
'Item Terjual' => $sales['item_terjual'],
'Berat Terjual' => $sales['berat_terjual'],
'Pendapatan' => $sales['pendapatan'],
];
}
} else {
// Baris jika tidak ada sales hari itu
$rows[] = [
'Tanggal' => $item['tanggal'],
'Nama Sales' => 'N/A',
'Item Terjual' => 0,
'Berat Terjual' => 0,
'Pendapatan' => 0,
];
}
// Baris Total Harian/Bulanan
$rows[] = [
'Tanggal' => $item['tanggal'],
'Nama Sales' => '** TOTAL **', // Tandai sebagai baris total
'Item Terjual' => $item['total_item_terjual'],
'Berat Terjual' => $item['total_berat'],
'Pendapatan' => $item['total_pendapatan'],
];
}
return $rows;
}
public function headings(): array
{
return [
'Periode',
'Nama Sales/Keterangan',
'Item Terjual',
'Total Berat Terjual',
'Total Pendapatan',
];
}
}