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\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,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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));
|
||||||
|
|||||||
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
|
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>
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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']);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user