Compare commits

..

2 Commits

10 changed files with 93 additions and 14 deletions

View File

@ -60,7 +60,6 @@ class OrdersTable
->sortable()
->toggleable(isToggledHiddenByDefault: false),
])->striped()
->selectable()
->groups([
Group::make('orderstatus.name')->label('Bestellstatus'),
Group::make('user.name')->label('Bestellt von'),
@ -80,8 +79,6 @@ class OrdersTable
return $query;
}),
])
->persistFiltersInSession()
->persistColumnsInSession()
->recordActions([
Action::make('bestellt_single')
->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\Models\Order;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\URL;
class OrderArrived extends Mailable
{
@ -43,7 +43,8 @@ class OrderArrived extends Mailable
return new Content(
markdown: 'mail.order-arrived',
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,
],
);

View File

@ -5,11 +5,11 @@ namespace App\Mail;
use App\Filament\Resources\Orders\OrderResource;
use App\Models\Order;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\URL;
class OrderRegistered extends Mailable
{
@ -43,7 +43,8 @@ class OrderRegistered extends Mailable
return new Content(
markdown: 'mail.order-registered',
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,
],
);

View File

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

View File

@ -2,6 +2,7 @@
namespace App\Providers;
use Filament\Tables\Table;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
@ -19,6 +20,15 @@ class AppServiceProvider extends ServiceProvider
*/
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
<x-mail::button :url="$url">
Zur Bestellung
<x-mail::button :url="$url_taken" color="success">
Hab's genommen
</x-mail::button>
<x-mail::button :url="$url_order" color="primary">
Bestellung im Cockpit ansehen
</x-mail::button>
Danke,<br>

View File

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

View File

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