diff --git a/app/Architecture/Providers/EventServiceProvider.php b/app/Architecture/Providers/EventServiceProvider.php index 409c95a..14bd1e2 100644 --- a/app/Architecture/Providers/EventServiceProvider.php +++ b/app/Architecture/Providers/EventServiceProvider.php @@ -8,12 +8,14 @@ use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvi use Toby\Domain\Events\VacationRequestAcceptedByAdministrative; use Toby\Domain\Events\VacationRequestAcceptedByTechnical; use Toby\Domain\Events\VacationRequestApproved; +use Toby\Domain\Events\VacationRequestCancelled; use Toby\Domain\Events\VacationRequestCreated; use Toby\Domain\Events\VacationRequestStateChanged; use Toby\Domain\Listeners\CreateVacationRequestActivity; use Toby\Domain\Listeners\HandleAcceptedByAdministrativeVacationRequest; use Toby\Domain\Listeners\HandleAcceptedByTechnicalVacationRequest; use Toby\Domain\Listeners\HandleApprovedVacationRequest; +use Toby\Domain\Listeners\HandleCancelledVacationRequest; use Toby\Domain\Listeners\HandleCreatedVacationRequest; class EventServiceProvider extends ServiceProvider @@ -24,5 +26,6 @@ class EventServiceProvider extends ServiceProvider VacationRequestAcceptedByTechnical::class => [HandleAcceptedByTechnicalVacationRequest::class], VacationRequestAcceptedByAdministrative::class => [HandleAcceptedByAdministrativeVacationRequest::class], VacationRequestApproved::class => [HandleApprovedVacationRequest::class], + VacationRequestCancelled::class => [HandleCancelledVacationRequest::class], ]; } diff --git a/app/Domain/Enums/VacationRequestState.php b/app/Domain/Enums/VacationRequestState.php index 7fcbae5..cde2e2f 100644 --- a/app/Domain/Enums/VacationRequestState.php +++ b/app/Domain/Enums/VacationRequestState.php @@ -7,7 +7,7 @@ namespace Toby\Domain\Enums; enum VacationRequestState: string { case Created = "created"; - case Canceled = "canceled"; + case Cancelled = "cancelled"; case Rejected = "rejected"; case Approved = "approved"; case WaitingForTechnical = "waiting_for_technical"; @@ -40,7 +40,7 @@ enum VacationRequestState: string { return [ self::Rejected, - self::Canceled, + self::Cancelled, ]; } diff --git a/app/Domain/Events/VacationRequestCancelled.php b/app/Domain/Events/VacationRequestCancelled.php new file mode 100644 index 0000000..a25e626 --- /dev/null +++ b/app/Domain/Events/VacationRequestCancelled.php @@ -0,0 +1,20 @@ +vacationRequest); diff --git a/app/Domain/Listeners/HandleCancelledVacationRequest.php b/app/Domain/Listeners/HandleCancelledVacationRequest.php new file mode 100644 index 0000000..87d333d --- /dev/null +++ b/app/Domain/Listeners/HandleCancelledVacationRequest.php @@ -0,0 +1,16 @@ +vacationRequest); + } +} diff --git a/app/Domain/VacationRequestStateManager.php b/app/Domain/VacationRequestStateManager.php index 7de8484..c3e3e2d 100644 --- a/app/Domain/VacationRequestStateManager.php +++ b/app/Domain/VacationRequestStateManager.php @@ -10,6 +10,7 @@ use Toby\Domain\Enums\VacationRequestState; use Toby\Domain\Events\VacationRequestAcceptedByAdministrative; use Toby\Domain\Events\VacationRequestAcceptedByTechnical; use Toby\Domain\Events\VacationRequestApproved; +use Toby\Domain\Events\VacationRequestCancelled; use Toby\Domain\Events\VacationRequestCreated; use Toby\Eloquent\Models\VacationRequest; @@ -42,7 +43,9 @@ class VacationRequestStateManager public function cancel(VacationRequest $vacationRequest): void { - $this->changeState($vacationRequest, VacationRequestState::Canceled); + $this->changeState($vacationRequest, VacationRequestState::Cancelled); + + $this->dispatcher->dispatch(new VacationRequestCancelled($vacationRequest)); } public function acceptAsTechnical(VacationRequest $vacationRequest): void diff --git a/app/Infrastructure/Http/Controllers/VacationRequestController.php b/app/Infrastructure/Http/Controllers/VacationRequestController.php index 060afd6..c24cbe2 100644 --- a/app/Infrastructure/Http/Controllers/VacationRequestController.php +++ b/app/Infrastructure/Http/Controllers/VacationRequestController.php @@ -116,7 +116,7 @@ class VacationRequestController extends Controller $stateManager->cancel($vacationRequest); return redirect()->back() - ->with("success", __("Vacation request has been canceled.")); + ->with("success", __("Vacation request has been cancelled.")); } public function acceptAsTechnical( diff --git a/app/Infrastructure/Jobs/ClearVacationRequestDaysInGoogleCalendar.php b/app/Infrastructure/Jobs/ClearVacationRequestDaysInGoogleCalendar.php new file mode 100644 index 0000000..eb7285b --- /dev/null +++ b/app/Infrastructure/Jobs/ClearVacationRequestDaysInGoogleCalendar.php @@ -0,0 +1,39 @@ +vacationRequest->vacations() + ->whereNotNull("event_id") + ->get(); + + /** @var Vacation $vacation */ + foreach ($vacations as $vacation) { + Event::find($vacation->event_id)->delete(); + + $vacation->update([ + "event_id" => null, + ]); + } + } +} diff --git a/resources/js/Composables/statusInfo.js b/resources/js/Composables/statusInfo.js index 94026d7..6a459ca 100644 --- a/resources/js/Composables/statusInfo.js +++ b/resources/js/Composables/statusInfo.js @@ -110,7 +110,7 @@ const statuses = [ }, { text: 'Anulowany', - value: 'canceled', + value: 'cancelled', outline: { icon: OutlineXIcon, foreground: 'text-white', diff --git a/resources/js/Pages/VacationRequest/Create.vue b/resources/js/Pages/VacationRequest/Create.vue index bb8fb10..aa62200 100644 --- a/resources/js/Pages/VacationRequest/Create.vue +++ b/resources/js/Pages/VacationRequest/Create.vue @@ -62,7 +62,9 @@ as="template" :value="type" > -
  • +
  • {{ type.label }} @@ -137,7 +139,9 @@
    Liczba dni urlopu -
    +
    {{ estimatedDays.length }}
    @@ -179,11 +183,11 @@