This commit is contained in:
Adrian Hopek 2022-04-20 12:20:56 +02:00
parent 05002dbc33
commit db70c3885f
6 changed files with 13 additions and 7 deletions

View File

@ -32,7 +32,10 @@ class CreateAction
{ {
$vacationRequest = $this->createVacationRequest($data, $creator); $vacationRequest = $this->createVacationRequest($data, $creator);
$this->handleCreatedVacationRequest($vacationRequest); $this->handleCreatedVacationRequest($vacationRequest);
if ($this->configRetriever->isVacation($vacationRequest->type)) {
$this->notify($vacationRequest); $this->notify($vacationRequest);
}
return $vacationRequest; return $vacationRequest;
} }

View File

@ -23,10 +23,12 @@ class WaitForAdminApprovalAction
{ {
$this->stateManager->waitForAdministrative($vacationRequest); $this->stateManager->waitForAdministrative($vacationRequest);
$this->waitForAdminApprovers($vacationRequest); if ($this->configRetriever->isVacation($vacationRequest->type)) {
$this->notifyAdminApprovers($vacationRequest);
}
} }
protected function waitForAdminApprovers(VacationRequest $vacationRequest): void protected function notifyAdminApprovers(VacationRequest $vacationRequest): void
{ {
$users = User::query() $users = User::query()
->whereIn("role", [Role::AdministrativeApprover, Role::Administrator]) ->whereIn("role", [Role::AdministrativeApprover, Role::Administrator])

View File

@ -23,8 +23,10 @@ class WaitForTechApprovalAction
{ {
$this->stateManager->waitForTechnical($vacationRequest); $this->stateManager->waitForTechnical($vacationRequest);
if ($this->configRetriever->isVacation($vacationRequest->type)) {
$this->notifyTechApprovers($vacationRequest); $this->notifyTechApprovers($vacationRequest);
} }
}
protected function notifyTechApprovers(VacationRequest $vacationRequest): void protected function notifyTechApprovers(VacationRequest $vacationRequest): void
{ {

View File

@ -116,5 +116,4 @@ class UserVacationStatsRetriever
return $types->filter(fn(VacationType $type) => !$this->configRetriever->hasLimit($type)); return $types->filter(fn(VacationType $type) => !$this->configRetriever->hasLimit($type));
} }
} }

View File

@ -152,7 +152,7 @@ class VacationRequestController extends Controller
*/ */
public function download( public function download(
VacationRequest $vacationRequest, VacationRequest $vacationRequest,
VacationTypeConfigRetriever $configRetriever VacationTypeConfigRetriever $configRetriever,
): LaravelResponse { ): LaravelResponse {
if (!$configRetriever->isVacation($vacationRequest->type)) { if (!$configRetriever->isVacation($vacationRequest->type)) {
return abort(SymfonyResponse::HTTP_NOT_FOUND); return abort(SymfonyResponse::HTTP_NOT_FOUND);

View File

@ -8,7 +8,7 @@ import HandHeartOutlineIcon from 'vue-material-design-icons/HandHeartOutline.vue
import CalendarCheckIcon from 'vue-material-design-icons/CalendarCheck.vue' import CalendarCheckIcon from 'vue-material-design-icons/CalendarCheck.vue'
import MedicalBagIcon from 'vue-material-design-icons/MedicalBag.vue' import MedicalBagIcon from 'vue-material-design-icons/MedicalBag.vue'
import CalendarRemoveIcon from 'vue-material-design-icons/CalendarRemove.vue' import CalendarRemoveIcon from 'vue-material-design-icons/CalendarRemove.vue'
import LaptopIcon from 'vue-material-design-icons/Laptop.vue'; import LaptopIcon from 'vue-material-design-icons/Laptop.vue'
const types = [ const types = [
{ {