Compare commits

...

2 Commits

10 changed files with 93 additions and 14 deletions

View File

@ -60,7 +60,6 @@ class OrdersTable
->sortable() ->sortable()
->toggleable(isToggledHiddenByDefault: false), ->toggleable(isToggledHiddenByDefault: false),
])->striped() ])->striped()
->selectable()
->groups([ ->groups([
Group::make('orderstatus.name')->label('Bestellstatus'), Group::make('orderstatus.name')->label('Bestellstatus'),
Group::make('user.name')->label('Bestellt von'), Group::make('user.name')->label('Bestellt von'),
@ -80,8 +79,6 @@ class OrdersTable
return $query; return $query;
}), }),
]) ])
->persistFiltersInSession()
->persistColumnsInSession()
->recordActions([ ->recordActions([
Action::make('bestellt_single') Action::make('bestellt_single')
->icon(Heroicon::ShoppingCart)->iconButton()->label("Bestellt")->action(function(Model $record) { ->icon(Heroicon::ShoppingCart)->iconButton()->label("Bestellt")->action(function(Model $record) {

View File

@ -0,0 +1,30 @@
<?php
namespace App\Http\Controllers;
use App\Filament\Resources\Orders\OrderResource;
use App\Models\Order;
use App\Models\Orderstatus;
use Illuminate\Http\Request;
class OrderController extends Controller
{
public function ordered($uuid)
{
$order = Order::where('public_uuid', $uuid)->firstOrFail();
$orderstatus = Orderstatus::where("name", "bestellt")->firstOrFail();
$order->orderstatus_id = $orderstatus->id;
$order->save();
return redirect(OrderResource::getUrl('edit', ['record' => $order->id,]));
}
public function taken($uuid)
{
$order = Order::where('public_uuid', $uuid)->firstOrFail();
$orderstatus = Orderstatus::where("name", "genommen")->firstOrFail();
$order->orderstatus_id = $orderstatus->id;
$order->save();
return redirect(OrderResource::getUrl('edit', ['record' => $order->id,]));
}
}

View File

@ -5,11 +5,11 @@ namespace App\Mail;
use App\Filament\Resources\Orders\OrderResource; use App\Filament\Resources\Orders\OrderResource;
use App\Models\Order; use App\Models\Order;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\URL;
class OrderArrived extends Mailable class OrderArrived extends Mailable
{ {
@ -43,7 +43,8 @@ class OrderArrived extends Mailable
return new Content( return new Content(
markdown: 'mail.order-arrived', markdown: 'mail.order-arrived',
with: [ with: [
'url' => OrderResource::getUrl('edit', ['record' => $this->order]), 'url_order' => OrderResource::getUrl('edit', ['record' => $this->order]),
'url_taken' => URL::to('/updateOrderstatusTaken/'.$this->order->public_uuid),
'order' => $this->order, 'order' => $this->order,
], ],
); );

View File

@ -5,11 +5,11 @@ namespace App\Mail;
use App\Filament\Resources\Orders\OrderResource; use App\Filament\Resources\Orders\OrderResource;
use App\Models\Order; use App\Models\Order;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\URL;
class OrderRegistered extends Mailable class OrderRegistered extends Mailable
{ {
@ -43,7 +43,8 @@ class OrderRegistered extends Mailable
return new Content( return new Content(
markdown: 'mail.order-registered', markdown: 'mail.order-registered',
with: [ with: [
'url' => OrderResource::getUrl('edit', ['record' => $this->order]), 'url_order' => OrderResource::getUrl('edit', ['record' => $this->order]),
'url_ordered' => URL::to('/updateOrderstatusOrdered/'.$this->order->public_uuid),
'order' => $this->order, 'order' => $this->order,
], ],
); );

View File

@ -7,8 +7,7 @@ use App\Mail\OrderRegistered;
use App\Models\Order; use App\Models\Order;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use App\Models\Orderstatus; use Illuminate\Support\Str;
use Carbon\Carbon;
class OrderObserver class OrderObserver
{ {
@ -17,6 +16,8 @@ class OrderObserver
*/ */
public function created(Order $order): void public function created(Order $order): void
{ {
$order->public_uuid = (string) Str::uuid();
$order->save();
$users = User::where("ordermanager", 1)->get(); $users = User::where("ordermanager", 1)->get();
foreach ($users as $user) { foreach ($users as $user) {
Mail::to($user)->send(new OrderRegistered($order)); Mail::to($user)->send(new OrderRegistered($order));

View File

@ -2,6 +2,7 @@
namespace App\Providers; namespace App\Providers;
use Filament\Tables\Table;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
@ -19,6 +20,15 @@ class AppServiceProvider extends ServiceProvider
*/ */
public function boot(): void public function boot(): void
{ {
// Table::configureUsing(function (Table $table): void {
$table
->reorderableColumns()
->persistColumnSearchesInSession()
->persistColumnsInSession()
->persistFiltersInSession()
->persistSearchInSession()
->persistSortInSession()
->selectable();
});
} }
} }

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('orders', function (Blueprint $table) {
$table->uuid('public_uuid')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('orders', function (Blueprint $table) {
$table->dropColumn('public_uuid');
});
}
};

View File

@ -9,8 +9,12 @@ Eine deiner Bestellungen ist angekommen.
Bitte nicht vergessen, die Bestellung "abzuhaken", indem du auf "angenommen" drückst Bitte nicht vergessen, die Bestellung "abzuhaken", indem du auf "angenommen" drückst
<x-mail::button :url="$url"> <x-mail::button :url="$url_taken" color="success">
Zur Bestellung Hab's genommen
</x-mail::button>
<x-mail::button :url="$url_order" color="primary">
Bestellung im Cockpit ansehen
</x-mail::button> </x-mail::button>
Danke,<br> Danke,<br>

View File

@ -9,8 +9,12 @@ es gibt eine neue Bestellung:
* <a href="{{ $order->url }}">URL zum Artikel</a> * <a href="{{ $order->url }}">URL zum Artikel</a>
* Bestellt von: {{ $order->user->name }} * Bestellt von: {{ $order->user->name }}
<x-mail::button :url="$url"> <x-mail::button :url="$url_ordered" color="success">
Zur Bestellung Habe bestellt
</x-mail::button>
<x-mail::button :url="$url_order" color="primary">
Bestellung im Cockpit ansehen
</x-mail::button> </x-mail::button>
Danke,<br> Danke,<br>

View File

@ -1,4 +1,7 @@
<?php <?php
use App\Http\Controllers\OrderController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::get('/updateOrderstatusOrdered/{uuid}', [OrderController::class, 'ordered']);
Route::get('/updateOrderstatusTaken/{uuid}', [OrderController::class, 'taken']);