show overdue assignments today
This commit is contained in:
parent
7bc7ad207b
commit
93d2f4ebd6
7 changed files with 77 additions and 13 deletions
|
|
@ -249,6 +249,8 @@ class ScheduleController extends Controller
|
|||
|
||||
return [
|
||||
'id' => $assignment->getId(),
|
||||
'scheduledDate' => $assignment->getScheduledDate()
|
||||
->format('Y-m-d'),
|
||||
'schedule' => [
|
||||
'id' => $assignmentForDate->getScheduleId(),
|
||||
'set' => [
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ class EloquentScheduleRepository implements ScheduleRepository
|
|||
return $schedules;
|
||||
}
|
||||
|
||||
public function findAssignmentsForUserOnDate(
|
||||
public function findIncompleteAssignmentsForUserDueOnOrBefore(
|
||||
User $user,
|
||||
DateTimeImmutable $date,
|
||||
): array {
|
||||
|
|
@ -76,11 +76,14 @@ class EloquentScheduleRepository implements ScheduleRepository
|
|||
'schedule_assignments.schedule_id',
|
||||
)
|
||||
->where('schedules.user_id', $user->getId())
|
||||
->where('schedule_assignments.scheduled_date', $date->format(
|
||||
'Y-m-d',
|
||||
))
|
||||
->where(
|
||||
'schedule_assignments.scheduled_date',
|
||||
'<=',
|
||||
$date->format('Y-m-d'),
|
||||
)
|
||||
->whereNull('schedule_assignments.completed_at')
|
||||
->with('schedule')
|
||||
->orderBy('schedule_assignments.scheduled_date')
|
||||
->orderByDesc('schedules.id')
|
||||
->orderBy('schedule_assignments.position')
|
||||
->orderBy('schedule_assignments.id')
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ interface ScheduleRepository
|
|||
/**
|
||||
* @return list<AssignmentForDate>
|
||||
*/
|
||||
public function findAssignmentsForUserOnDate(
|
||||
public function findIncompleteAssignmentsForUserDueOnOrBefore(
|
||||
User $user,
|
||||
DateTimeImmutable $date,
|
||||
): array;
|
||||
|
|
|
|||
|
|
@ -22,10 +22,11 @@ class ListAssignmentsForDate
|
|||
{
|
||||
$date = $this->parseDate($request->date);
|
||||
|
||||
return $this->scheduleRepository->findAssignmentsForUserOnDate(
|
||||
$request->user,
|
||||
$date,
|
||||
);
|
||||
return $this->scheduleRepository
|
||||
->findIncompleteAssignmentsForUserDueOnOrBefore(
|
||||
$request->user,
|
||||
$date,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ class FakeScheduleRepository implements ScheduleRepository
|
|||
}, array_values($schedules));
|
||||
}
|
||||
|
||||
public function findAssignmentsForUserOnDate(
|
||||
public function findIncompleteAssignmentsForUserDueOnOrBefore(
|
||||
User $user,
|
||||
DateTimeImmutable $date,
|
||||
): array {
|
||||
|
|
@ -86,8 +86,7 @@ class FakeScheduleRepository implements ScheduleRepository
|
|||
|
||||
foreach ($this->findAllForUser($user) as $schedule) {
|
||||
foreach ($schedule->getAssignments() as $assignment) {
|
||||
if ($assignment->getScheduledDate()->format('Y-m-d')
|
||||
!== $date->format('Y-m-d')
|
||||
if ($assignment->getScheduledDate() > $date
|
||||
|| $assignment->getCompletedAt() !== null
|
||||
) {
|
||||
continue;
|
||||
|
|
@ -101,6 +100,37 @@ class FakeScheduleRepository implements ScheduleRepository
|
|||
}
|
||||
}
|
||||
|
||||
usort(
|
||||
$assignments,
|
||||
function (
|
||||
AssignmentForDate $first,
|
||||
AssignmentForDate $second,
|
||||
): int {
|
||||
$firstAssignment = $first->getAssignment();
|
||||
$secondAssignment = $second->getAssignment();
|
||||
$dateComparison = $firstAssignment->getScheduledDate()
|
||||
<=> $secondAssignment->getScheduledDate();
|
||||
if ($dateComparison !== 0) {
|
||||
return $dateComparison;
|
||||
}
|
||||
|
||||
$scheduleComparison = $second->getScheduleId()
|
||||
<=> $first->getScheduleId();
|
||||
if ($scheduleComparison !== 0) {
|
||||
return $scheduleComparison;
|
||||
}
|
||||
|
||||
$positionComparison = $firstAssignment->getPosition()
|
||||
<=> $secondAssignment->getPosition();
|
||||
if ($positionComparison !== 0) {
|
||||
return $positionComparison;
|
||||
}
|
||||
|
||||
return $firstAssignment->getId()
|
||||
<=> $secondAssignment->getId();
|
||||
},
|
||||
);
|
||||
|
||||
return $assignments;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue