<?php
namespace App\View\Components;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\Component;
use Modules\CourseSetting\Entities\Course;
use Modules\OrgSubscription\Entities\OrgCourseSubscription;
use Modules\OrgSubscription\Entities\OrgSubscriptionCheckout;
class MyOrgSubscriptionPlanSection extends Component
{
public $request;
public function __construct($request)
{
$this->request = $request;
}
public function render()
{
$query = OrgSubscriptionCheckout::where('user_id', Auth::user()->id)->with('plan', 'plan.assign');
$search = $this->request->search;
if (!empty($search)) {
$query->whereHas('plan', function ($q) use ($search) {
$q->where('title', 'LIKE', "%{$search}%");
});
}
$order = $this->request->order;
if ($order == 'title') {
$query->orderBy(
OrgCourseSubscription::select('title')
->whereColumn('plan_id', 'org_course_subscriptions.id')
->orderBy('title')
->limit(1)
);
} elseif ($order == 'start_date') {
$query->orderBy('start_date');
} elseif ($order == 'end_date') {
$query->orderBy('end_date');
}
$plans = $query->get();
return view(theme('components.my-org-subscription-plan-section'), compact('plans'));
}
}