55 lines
1.8 KiB
PHP
55 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Exports;
|
|
|
|
use Maatwebsite\Excel\Concerns\FromCollection;
|
|
use Maatwebsite\Excel\Concerns\WithHeadings;
|
|
use Illuminate\Support\Collection;
|
|
|
|
class DashboardExportUser implements FromCollection, WithHeadings
|
|
{
|
|
protected $recentTransactions;
|
|
|
|
public function __construct(array $recentTransactions)
|
|
{
|
|
$this->recentTransactions = $recentTransactions;
|
|
}
|
|
|
|
public function collection()
|
|
{
|
|
$serial = 1;
|
|
$mappedTransactions = collect($this->recentTransactions)->map(function ($transaction) use (&$serial) {
|
|
return [
|
|
'Sr No.' => $serial++, // Increment serial number
|
|
'Full Name' => $transaction['subscription']['first_name'] . ' ' . $transaction['subscription']['last_name'],
|
|
'Customer Id' => $transaction['subscription']['id'],
|
|
'Amount' => '$ ' . $transaction['amount'],
|
|
'Subscription ID' => $transaction['subscription_id'],
|
|
'Stripe Customer Id' => $transaction['stripe_customer_id'],
|
|
'Subscription Status' => $transaction['subscription_status'],
|
|
'Current Start Period' => $transaction['current_period_start'],
|
|
'Current End Period' => $transaction['current_period_end'],
|
|
'Next Period Date' => $transaction['next_payment_date'],
|
|
];
|
|
});
|
|
|
|
return new Collection($mappedTransactions);
|
|
}
|
|
|
|
public function headings(): array
|
|
{
|
|
return [
|
|
'Sr No.',
|
|
'Full Name',
|
|
'Customer Id',
|
|
'Amount',
|
|
'Subscription ID',
|
|
'Stripe Customer Id',
|
|
'Subscription Status',
|
|
'Current Start Period',
|
|
'Current End Period',
|
|
'Next Period Date',
|
|
];
|
|
}
|
|
}
|