data = $data; $this->page = $page; } public function collection() { $collection = collect(); $items = method_exists($this->data, 'items') ? $this->data->items() : $this->data; foreach ($items as $item) { $collection->push([ 'Tanggal' => $item['tanggal'] ?? '-', 'Total Item Terjual' => $item['total_item_terjual'] ?? 0, 'Total Berat' => $item['total_berat'] ?? 0, 'Total Pendapatan' => $item['total_pendapatan'] ?? 0, 'Detail Sales' => $this->formatSalesData($item['sales'] ?? []), ]); } return $collection; } public function headings(): array { return [ 'Tanggal', 'Total Item Terjual', 'Total Berat', 'Total Pendapatan', 'Detail Sales' ]; } public function title(): string { return "Ringkasan Halaman {$this->page}"; } public function styles(Worksheet $sheet) { return [ 1 => ['font' => ['bold' => true]], ]; } private function formatSalesData($sales): string { if (empty($sales)) { return '-'; } $formatted = []; foreach ($sales as $sale) { $nama = $sale['nama'] ?? 'Sales Tidak Dikenal'; $itemTerjual = $sale['item_terjual'] ?? 0; $pendapatan = $sale['pendapatan'] ?? '-'; $formatted[] = "{$nama}: {$itemTerjual} item, {$pendapatan}"; } return implode('; ', $formatted); } }