This commit is contained in:
Adrian Hopek
2022-03-07 13:05:49 +01:00
parent 5d64ad9d2a
commit b2f08f61b7
10 changed files with 137 additions and 59 deletions

View File

@@ -8,6 +8,7 @@ use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Inertia\Response;
use Toby\Domain\Enums\Role;
use Toby\Domain\UserVacationStatsRetriever;
use Toby\Domain\VacationRequestStatesRetriever;
use Toby\Eloquent\Models\Holiday;
@@ -35,10 +36,18 @@ class DashboardController extends Controller
)
->get();
$vacationRequests = VacationRequest::query()
->latest("updated_at")
->limit(3)
->get();
if ($user->role !== Role::Employee) {
$vacationRequests = VacationRequest::query()
->states(VacationRequestStatesRetriever::waitingForUserActionStates($user))
->latest("updated_at")
->limit(3)
->get();
} else {
$vacationRequests = $user->vacationRequests()
->latest("updated_at")
->limit(3)
->get();
}
$holidays = Holiday::query()
->whereDate("date", ">=", $now)

View File

@@ -40,7 +40,7 @@ class VacationRequestController extends Controller
->with("vacations")
->where("year_period_id", $yearPeriodRetriever->selected()->id)
->latest()
->states(VacationRequestStatesRetriever::filterByStatusGroup($status))
->states(VacationRequestStatesRetriever::filterByStatusGroup($status, $request->user()))
->paginate();
return inertia("VacationRequest/Index", [
@@ -67,7 +67,7 @@ class VacationRequestController extends Controller
->with(["user", "vacations"])
->where("year_period_id", $yearPeriod->id)
->when($user !== null, fn(Builder $query) => $query->where("user_id", $user))
->when($status !== null, fn(Builder $query) => $query->states([$status]))
->when($status !== null, fn(Builder $query) => $query->states(VacationRequestStatesRetriever::filterByStatusGroup($status, $request->user())))
->latest()
->paginate();

View File

@@ -16,7 +16,8 @@ class UserResource extends JsonResource
"id" => $this->id,
"name" => $this->fullName,
"email" => $this->email,
"role" => $this->role->label(),
"displayRole" => $this->role->label(),
"role" => $this->role,
"position" => $this->position,
"avatar" => $this->getAvatar(),
"deleted" => $this->trashed(),