Files
Kent-logistics-Laravel/app/Http/Controllers/Admin/AdminOrderController.php
2025-11-12 19:44:04 +05:30

79 lines
2.3 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Order;
use App\Models\MarkList; // ✅ Correct model
class AdminOrderController extends Controller
{
public function index()
{
$orders = Order::latest()->get();
$markList = MarkList::where('status', 'active')->get(); // ✅ Correct usage
return view('admin.dashboard', compact('orders', 'markList'));
}
public function store(Request $request)
{
$request->validate([
'mark_no' => 'required',
'description' => 'required',
]);
// ✅ Generate custom order_id like KNT-25-00000001
$year = date('y');
$prefix = "KNT-$year-";
// Get the last order to increment number
$lastOrder = Order::latest('id')->first();
$nextNumber = $lastOrder ? intval(substr($lastOrder->order_id, -8)) + 1 : 1;
// Format number with leading zeros (8 digits)
$newOrderId = $prefix . str_pad($nextNumber, 8, '0', STR_PAD_LEFT);
// ✅ Create order
$order = new Order();
$order->order_id = $newOrderId; // ✅ set this field
$order->mark_no = $request->mark_no;
$order->origin = $request->origin;
$order->destination = $request->destination;
$order->description = $request->description;
$order->ctn = $request->ctn;
$order->qty = $request->qty;
$order->ttl_qty = $request->ttl_qty;
$order->unit = $request->unit;
$order->price = $request->price;
$order->ttl_amount = $request->ttl_amount;
$order->cbm = $request->cbm;
$order->ttl_cbm = $request->ttl_cbm;
$order->kg = $request->kg;
$order->ttl_kg = $request->ttl_kg;
$order->shop_no = $request->shop_no;
$order->status = 'pending';
$order->save();
return redirect()->back()->with('success', 'Order created successfully with ID: ' . $newOrderId);
}
public function show($id)
{
$order = Order::with('markList')->findOrFail($id);
// Get the mark list associated with this order
$markList = $order->markList;
// Fetch the user using the customer_id from mark list
$user = null;
if ($markList && $markList->customer_id) {
$user = \App\Models\User::where('customer_id', $markList->customer_id)->first();
}
return view('admin.orders_show', compact('order', 'markList', 'user'));
}
}