69 lines
2.1 KiB
PHP
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',
|
|
];
|
|
}
|
|
} |