62 lines
1.9 KiB
PHP
62 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Exports;
|
|
|
|
use Maatwebsite\Excel\Concerns\FromCollection;
|
|
use App\Models\Subscriptions;
|
|
use Maatwebsite\Excel\Concerns\WithHeadings;
|
|
use Illuminate\Support\Collection;
|
|
|
|
class DashboardSelectedExportUser implements FromCollection, WithHeadings
|
|
{
|
|
protected $ids;
|
|
|
|
public function __construct($ids)
|
|
{
|
|
$this->ids = explode(',', $ids);
|
|
}
|
|
|
|
public function collection()
|
|
{
|
|
$selectedTransactions = Subscriptions::whereIn('id', $this->ids)
|
|
->with('subscription')
|
|
->get()
|
|
->toArray();
|
|
|
|
$serial = 1;
|
|
$mappedTransactions = collect($selectedTransactions)->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',
|
|
];
|
|
}
|
|
}
|