Changes to field job view and controller
This commit is contained in:
@@ -26,10 +26,13 @@ public function index(Request $request)
|
||||
])->filter()->unique()->values();
|
||||
|
||||
$search = $request->input('search');
|
||||
$searchAssigned = $request->input('search_assigned');
|
||||
$assignedUserId = $request->input('assigned_user_id');
|
||||
$unassignedClientUuids = $request->input('unassigned_client_uuids');
|
||||
$assignedClientUuids = $request->input('assigned_client_uuids');
|
||||
|
||||
$unassignedContracts = Contract::query()
|
||||
->with(['clientCase.person.addresses', 'clientCase.client.person', 'type', 'account'])
|
||||
->with(['clientCase.person.addresses', 'clientCase.client.person:id,uuid,full_name', 'type', 'account'])
|
||||
->when($segmentIds->isNotEmpty(), fn($q) =>
|
||||
$q->whereHas('segments', fn($rq) => $rq->whereIn('segments.id', $segmentIds)),
|
||||
fn($q) => $q->whereRaw('1 = 0')
|
||||
@@ -45,50 +48,83 @@ public function index(Request $request)
|
||||
)
|
||||
)
|
||||
)
|
||||
->when(!empty($unassignedClientUuids) && is_array($unassignedClientUuids), fn ($q) =>
|
||||
$q->whereHas('clientCase.client', fn($cq) =>
|
||||
$cq->whereIn('uuid', $unassignedClientUuids)
|
||||
)
|
||||
)
|
||||
->whereDoesntHave('fieldJobs', fn ($q) =>
|
||||
$q->whereNull('completed_at')
|
||||
->whereNull('cancelled_at')
|
||||
)
|
||||
->latest('id')
|
||||
->paginate(
|
||||
$request->input('per_page_contracts', 10),
|
||||
['*'],
|
||||
'page_contracts',
|
||||
$request->input('page_contracts', 1)
|
||||
);
|
||||
->latest('id');
|
||||
|
||||
$unassignedClients = $unassignedContracts->get()
|
||||
->pluck('clientCase.client')
|
||||
->filter()
|
||||
->unique('id');
|
||||
|
||||
|
||||
$assignedContracts = Contract::query()
|
||||
->with(['clientCase.person.addresses', 'clientCase.client.person', 'type', 'account', 'lastFieldJobs', 'lastFieldJobs.assignedUser', 'lastFieldJobs.user'])
|
||||
->with(['clientCase.person.addresses', 'clientCase.client.person:id,uuid,full_name', 'type', 'account', 'lastFieldJobs', 'lastFieldJobs.assignedUser', 'lastFieldJobs.user'])
|
||||
->when($segmentIds->isNotEmpty(), fn($q) =>
|
||||
$q->whereHas('segments', fn($rq) => $rq->whereIn('segments.id', $segmentIds)),
|
||||
fn($q) => $q->whereRaw('1 = 0')
|
||||
)
|
||||
->when( !empty($searchAssigned), fn ($q) =>
|
||||
$q->where(fn($sq) =>
|
||||
$sq->where('reference', 'like', "%{$searchAssigned}%")
|
||||
->orWhereHas('clientCase.person', fn($psq) =>
|
||||
$psq->where('full_name', 'ilike', "%{$searchAssigned}%")
|
||||
)
|
||||
->orWhereHas('clientCase.person.addresses', fn ($ccpaq) =>
|
||||
$ccpaq->where('address', 'ilike', "%{$searchAssigned}")
|
||||
)
|
||||
)
|
||||
)
|
||||
->when(!empty($assignedClientUuids) && is_array($assignedClientUuids), fn ($q) =>
|
||||
$q->whereHas('clientCase.client', fn($cq) =>
|
||||
$cq->whereIn('uuid', $assignedClientUuids)
|
||||
)
|
||||
)
|
||||
->whereHas('lastFieldJobs', fn ($q) =>
|
||||
$q->whereNull('completed_at')
|
||||
->whereNull('cancelled_at')
|
||||
->when($assignedUserId && $assignedUserId !== 'all', fn ($jq) =>
|
||||
$jq->where('assigned_user_id', $assignedUserId))
|
||||
)
|
||||
->latest('id')
|
||||
->paginate(
|
||||
$request->input('per_page_assignments', 10),
|
||||
['*'],
|
||||
'page_assignments',
|
||||
$request->input('page_assignments', 1)
|
||||
);
|
||||
->latest('id');
|
||||
|
||||
$assignedClients = $assignedContracts->get()
|
||||
->pluck('clientCase.client')
|
||||
->filter()
|
||||
->unique('id');
|
||||
|
||||
$users = User::query()->orderBy('name')->get(['id', 'name']);
|
||||
|
||||
return Inertia::render('FieldJob/Index', [
|
||||
'setting' => $setting,
|
||||
'unassignedContracts' => $unassignedContracts,
|
||||
'assignedContracts' => $assignedContracts,
|
||||
'unassignedContracts' => $unassignedContracts->paginate(
|
||||
$request->input('per_page_contracts', 10),
|
||||
['*'],
|
||||
'page_contracts',
|
||||
$request->input('page_contracts', 1)
|
||||
),
|
||||
'assignedContracts' => $assignedContracts->paginate(
|
||||
$request->input('per_page_assignments', 10),
|
||||
['*'],
|
||||
'page_assignments',
|
||||
$request->input('page_assignments', 1)
|
||||
),
|
||||
'unassignedClients' => $unassignedClients,
|
||||
'assignedClients' => $assignedClients,
|
||||
'users' => $users,
|
||||
'filters' => [
|
||||
'search' => $search,
|
||||
'search_assigned' => $searchAssigned,
|
||||
'assigned_user_id' => $assignedUserId,
|
||||
'unassigned_client_uuids' => $unassignedClientUuids,
|
||||
'assigned_client_uuids' => $assignedClientUuids,
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user