From 9fb530c28e6a6a372b8ac55f9bc0942a2beab6cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna-Sara=20S=C3=A9lea?= Date: Fri, 28 Feb 2025 07:59:14 +0100 Subject: [PATCH] Mail will be sent and reservation and delivery --- app/Filament/Pages/Reserve.php | 2 + app/Filament/Resources/ItemResource.php | 12 +++- .../Pages/EditReserveditem.php | 10 +++ app/Mail/Delivered.php | 61 +++++++++++++++++++ app/Mail/ReservationCreated.php | 60 ++++++++++++++++++ app/Mail/ReservationCreatedUser.php | 58 ++++++++++++++++++ .../emails/admin/reservationcreated.blade.php | 11 ++++ .../views/emails/user/delivered.blade.php | 11 ++++ .../emails/user/reservationcreated.blade.php | 11 ++++ 9 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 app/Mail/Delivered.php create mode 100644 app/Mail/ReservationCreated.php create mode 100644 app/Mail/ReservationCreatedUser.php create mode 100644 resources/views/emails/admin/reservationcreated.blade.php create mode 100644 resources/views/emails/user/delivered.blade.php create mode 100644 resources/views/emails/user/reservationcreated.blade.php diff --git a/app/Filament/Pages/Reserve.php b/app/Filament/Pages/Reserve.php index ba60d61..f8c6091 100644 --- a/app/Filament/Pages/Reserve.php +++ b/app/Filament/Pages/Reserve.php @@ -30,6 +30,7 @@ use Filament\Infolists\Components\TextEntry; use Filament\Infolists\Components\Section; use Filament\Tables\Contracts\HasTable; use Filament\Tables\Concerns\InteractsWithTable; +use Filament\Infolists\Components\ImageEntry; class Reserve extends BasePage implements HasTable { @@ -86,6 +87,7 @@ class Reserve extends BasePage implements HasTable ->infolist([ Section::make('Game') ->schema([ + ImageEntry::make('image'), TextEntry::make('desc'), TextEntry::make('acquisition_date'), TextEntry::make('category.name'), diff --git a/app/Filament/Resources/ItemResource.php b/app/Filament/Resources/ItemResource.php index 57aa8ba..c497e01 100644 --- a/app/Filament/Resources/ItemResource.php +++ b/app/Filament/Resources/ItemResource.php @@ -25,7 +25,11 @@ use Filament\Forms\Components\TextInput; use Carbon\Carbon; use Filament\Support\Enums\IconPosition; use Filament\Infolists\Components\TextEntry; +use Filament\Infolists\Components\ImageEntry; use Filament\Infolists\Components\Section; +use Illuminate\Support\Facades\Mail; +use App\Mail\ReservationCreatedUser; +use App\Mail\ReservationCreated; class ItemResource extends Resource @@ -159,6 +163,7 @@ class ItemResource extends Resource ->infolist([ Section::make('Game') ->schema([ + ImageEntry::make('image'), TextEntry::make('desc'), TextEntry::make('acquisition_date'), TextEntry::make('category.name'), @@ -171,6 +176,7 @@ class ItemResource extends Resource ->hidden(fn ($record) => $record->type === "item"), Section::make('Item') ->schema([ + ImageEntry::make('image'), TextEntry::make('desc'), TextEntry::make('acquisition_date'), TextEntry::make('category.name'), @@ -198,13 +204,17 @@ class ItemResource extends Resource ->required(), ]) ->action(function (array $data, Item $record): void { - Reserveditem::create([ + $reservation = Reserveditem::create([ 'item_id' => $record->id, 'reserved_date' => Carbon::now(), 'username' => $data['username'], 'email' => $data['email'] ]); Item::where('id', $record->id)->update(['reserved' => true]); + Mail::to($data['email']) + ->send(new ReservationCreatedUser($reservation)); + Mail::to(env('MAIL_FROM_ADDRESS')) + ->send(new ReservationCreated($reservation)); }) ->hidden(fn ($record) => $record->reserved) ]) diff --git a/app/Filament/Resources/ReserveditemResource/Pages/EditReserveditem.php b/app/Filament/Resources/ReserveditemResource/Pages/EditReserveditem.php index 8ce743e..22e543e 100644 --- a/app/Filament/Resources/ReserveditemResource/Pages/EditReserveditem.php +++ b/app/Filament/Resources/ReserveditemResource/Pages/EditReserveditem.php @@ -8,6 +8,8 @@ use Filament\Resources\Pages\EditRecord; use Carbon\Carbon; use App\Models\Item; use App\Models\Reserveditem; +use Illuminate\Support\Facades\Mail; +use App\Mail\Delivered; class EditReserveditem extends EditRecord { @@ -44,6 +46,14 @@ class EditReserveditem extends EditRecord Item::where('id', $record->item_id)->update(['reserved' => false]); Reserveditem::where('id', $record->id)->delete(); } + + if ($record->delivered && !$record->returned) + { + Mail::to($record->email) + ->send(new Delivered($record)); + } + + } diff --git a/app/Mail/Delivered.php b/app/Mail/Delivered.php new file mode 100644 index 0000000..7e1209f --- /dev/null +++ b/app/Mail/Delivered.php @@ -0,0 +1,61 @@ + $this->reservation->username, + 'reservationDesc' => Item::where('id', $this->reservation->item_id)->pluck('desc')->first(), + 'reservationEmail' => $this->reservation->email, + 'reservationReturnDate' => $this->reservation->return_date, + ], + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/app/Mail/ReservationCreated.php b/app/Mail/ReservationCreated.php new file mode 100644 index 0000000..12c28c6 --- /dev/null +++ b/app/Mail/ReservationCreated.php @@ -0,0 +1,60 @@ + $this->reservation->username, + 'reservationDesc' => Item::where('id', $this->reservation->item_id)->pluck('desc')->first(), + 'reservationEmail' => $this->reservation->email, + ], + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/app/Mail/ReservationCreatedUser.php b/app/Mail/ReservationCreatedUser.php new file mode 100644 index 0000000..5c55839 --- /dev/null +++ b/app/Mail/ReservationCreatedUser.php @@ -0,0 +1,58 @@ + $this->reservation->username, + 'reservationDesc' => Item::where('id', $this->reservation->item_id)->pluck('desc')->first(), + 'reservationEmail' => $this->reservation->email, + ], + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/emails/admin/reservationcreated.blade.php b/resources/views/emails/admin/reservationcreated.blade.php new file mode 100644 index 0000000..452eadc --- /dev/null +++ b/resources/views/emails/admin/reservationcreated.blade.php @@ -0,0 +1,11 @@ + + + + Reservation Created + + +

Reservation Created

+

{{ $reservationName }} har reserverat {{ $reservationDesc }}

+

Mail: {{ $reservationEmail }}

+ + \ No newline at end of file diff --git a/resources/views/emails/user/delivered.blade.php b/resources/views/emails/user/delivered.blade.php new file mode 100644 index 0000000..3802802 --- /dev/null +++ b/resources/views/emails/user/delivered.blade.php @@ -0,0 +1,11 @@ + + + + Reservation Levererad + + +

Reservation Levererad

+

Du har fått {{ $reservationDesc }} levererad

+

Du ska återlämna varan {{ $reservationReturnDate }}

+ + \ No newline at end of file diff --git a/resources/views/emails/user/reservationcreated.blade.php b/resources/views/emails/user/reservationcreated.blade.php new file mode 100644 index 0000000..59ccace --- /dev/null +++ b/resources/views/emails/user/reservationcreated.blade.php @@ -0,0 +1,11 @@ + + + + Reservation Skapad + + +

Reservation Skapad

+

Du har reserverat {{ $reservationDesc }}

+

Admin kommer att ta kontakt med dig för att bestämma tid för överlämning av spel.

+ + \ No newline at end of file