Files
cheerstothe_season_2.0/app/Exports/DashboardSelectedExportUser.php
2024-07-11 16:05:22 +05:30

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',
];
}
}