74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Exports;
 | |
| 
 | |
| use Illuminate\Support\Collection;
 | |
| use Maatwebsite\Excel\Concerns\FromCollection;
 | |
| use Maatwebsite\Excel\Concerns\WithHeadings;
 | |
| use Maatwebsite\Excel\Concerns\WithStyles;
 | |
| use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
 | |
| 
 | |
| class RingkasanExport implements FromCollection, WithHeadings, WithStyles
 | |
| {
 | |
|     private $data;
 | |
| 
 | |
|     public function __construct(iterable $data)
 | |
|     {
 | |
|         $this->data = $data;
 | |
|     }
 | |
| 
 | |
|     public function collection(): Collection
 | |
|     {
 | |
|         $rows = collect();
 | |
| 
 | |
|         foreach ($this->data as $item) {
 | |
|             $tanggal = $item['tanggal'] ?? '-';
 | |
|             $totalItem = $item['total_item'] ?? 0;
 | |
|             $totalBerat = $item['total_berat'] ?? '0 g';
 | |
|             $totalPendapatan = $item['total_pendapatan'] ?? 'Rp 0';
 | |
| 
 | |
|             // Tambahkan detail sales per baris
 | |
|             foreach ($item['sales'] ?? [] as $sale) {
 | |
|                 $rows->push([
 | |
|                     'Tanggal'       => $tanggal,
 | |
|                     'Nama Sales'    => $sale['nama'] ?? 'Sales Tidak Dikenal',
 | |
|                     'Item Terjual'  => $sale['item_terjual'] ?? 0,
 | |
|                     'Berat'         => $sale['berat'] ?? '-',
 | |
|                     'Pendapatan'    => $sale['pendapatan'] ?? '-',
 | |
|                 ]);
 | |
|             }
 | |
| 
 | |
|             // Tambahkan baris total
 | |
|             $rows->push([
 | |
|                 'Tanggal'       => $tanggal,
 | |
|                 'Nama Sales'    => 'TOTAL',
 | |
|                 'Item Terjual'  => $totalItem,
 | |
|                 'Berat'         => $totalBerat,
 | |
|                 'Pendapatan'    => $totalPendapatan,
 | |
|             ]);
 | |
| 
 | |
|             $rows->push(['Tanggal' => '', 'Nama Sales' => '', 'Item Terjual' => '', 'Berat' => '', 'Pendapatan' => '']);
 | |
|         }
 | |
| 
 | |
|         return $rows;
 | |
|     }
 | |
| 
 | |
|     public function headings(): array
 | |
|     {
 | |
|         return [
 | |
|             'Tanggal',
 | |
|             'Nama Sales',
 | |
|             'Item Terjual',
 | |
|             'Berat',
 | |
|             'Pendapatan',
 | |
|         ];
 | |
|     }
 | |
| 
 | |
|     public function styles(Worksheet $sheet)
 | |
|     {
 | |
|         return [
 | |
|             1 => ['font' => ['bold' => true]],
 | |
|         ];
 | |
|     }
 | |
| }
 |