Bestellungen können jetzt aus der Mail raus abgehakt werden
This commit is contained in:
parent
b0a05726a2
commit
c8d83dc542
30
app/Http/Controllers/OrderController.php
Normal file
30
app/Http/Controllers/OrderController.php
Normal 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,]));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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,
|
||||
],
|
||||
);
|
||||
|
||||
@ -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,
|
||||
],
|
||||
);
|
||||
|
||||
@ -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));
|
||||
|
||||
28
database/migrations/2026_04_19_183758_add_guid_to_orders.php
Normal file
28
database/migrations/2026_04_19_183758_add_guid_to_orders.php
Normal 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');
|
||||
});
|
||||
}
|
||||
};
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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']);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user