<?php
namespace App\Exports;
use Carbon\Carbon;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\WithStyles;
use Modules\OrgSubscription\Entities\OrgSubscriptionCheckout;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
class OrgSubscriptionEnrollmentCheckoutExport implements FromView, WithStyles
{
public $request;
public function __construct($request)
{
$this->request = $request;
}
public function view(): View
{
$request = $this->request;
$query = OrgSubscriptionCheckout:: with('plan', 'user');
if (!empty($request->position)) {
$query->whereHas('user', function ($query2) use ($request) {
$query2->where('org_position_code', $request->position);
});
}
if (!empty($request->type)) {
$query->where('type', $request->type);
}
if (!empty($request->branch)) {
$query->whereHas('user', function ($query3) use ($request) {
$query3->where('org_chart_code', $request->branch);
});
}
if (!empty($request->start_date)) {
$query->whereDate('created_at', '>=', Carbon::parse($request->start_date));
}
if (!empty($request->end_date)) {
$query->whereDate('created_at', '<=', Carbon::parse($request->end_date));
}
$students = $query->with('user')->latest()->get();
return view('orgsubscription::enrollment.export', compact('students'));
}
public function styles(Worksheet $sheet)
{
return [
1 => ['font' => ['bold' => true]],
];
}
}