style updates
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Commerce\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -9,15 +11,43 @@ use Modules\Commerce\Models\Customer;
|
||||
use Modules\Commerce\Models\Order;
|
||||
use Modules\Commerce\Models\Product;
|
||||
use Modules\Commerce\Models\Promotion;
|
||||
|
||||
final class CommerceController extends Controller
|
||||
{
|
||||
public function index(): View { return view('commerce::admin.index',['products'=>Product::latest()->paginate(20),'orders'=>Order::latest()->limit(10)->get(),'revenue'=>Order::where('payment_status','paid')->sum('grand_total'),'lowStock'=>Product::where('track_inventory',true)->whereColumn('stock_quantity','<=','low_stock_threshold')->count(),'customers'=>Customer::count(),'promotions'=>Promotion::where('is_active',true)->count()]); }
|
||||
public function index(): View
|
||||
{
|
||||
return view('commerce::admin.index', ['products' => Product::latest()->paginate(20), 'orders' => Order::latest()->limit(10)->get(), 'revenue' => Order::where('payment_status', 'paid')->sum('grand_total'), 'lowStock' => Product::where('track_inventory', true)->whereColumn('stock_quantity', '<=', 'low_stock_threshold')->count(), 'customers' => Customer::count(), 'promotions' => Promotion::where('is_active', true)->count()]);
|
||||
}
|
||||
|
||||
public function storeProduct(Request $request): RedirectResponse
|
||||
{
|
||||
$data=$request->validate(['name'=>['required','string','max:255'],'slug'=>['nullable','string','max:255','unique:commerce_products,slug'],'sku'=>['nullable','string','max:120','unique:commerce_products,sku'],'type'=>['required','in:physical,digital,service,bundle'],'summary'=>['nullable','string'],'description'=>['nullable','string'],'price'=>['required','numeric','min:0'],'stock_quantity'=>['required','integer'],'status'=>['required','in:draft,active,archived']]);
|
||||
$data['slug']=$data['slug'] ?: Str::slug($data['name']); $data['currency']=config('commerce.currency','GBP'); $data['published_at']=$data['status']==='active'?now():null; Product::create($data); return back()->with('status','Product created.');
|
||||
$data = $request->validate(['name' => ['required', 'string', 'max:255'], 'slug' => ['nullable', 'string', 'max:255', 'unique:commerce_products,slug'], 'sku' => ['nullable', 'string', 'max:120', 'unique:commerce_products,sku'], 'type' => ['required', 'in:physical,digital,service,bundle'], 'summary' => ['nullable', 'string'], 'description' => ['nullable', 'string'], 'price' => ['required', 'numeric', 'min:0'], 'stock_quantity' => ['required', 'integer'], 'status' => ['required', 'in:draft,active,archived']]);
|
||||
$data['slug'] = $data['slug'] ?: Str::slug($data['name']);
|
||||
$data['currency'] = config('commerce.currency', 'GBP');
|
||||
$data['published_at'] = $data['status'] === 'active' ? now() : null;
|
||||
Product::create($data);
|
||||
|
||||
return back()->with('status', 'Product created.');
|
||||
}
|
||||
|
||||
public function updateProduct(Request $request, Product $product): RedirectResponse
|
||||
{
|
||||
$product->update($request->validate(['name' => ['required', 'string', 'max:255'], 'price' => ['required', 'numeric', 'min:0'], 'stock_quantity' => ['required', 'integer'], 'status' => ['required', 'in:draft,active,archived']]));
|
||||
|
||||
return back()->with('status', 'Product updated.');
|
||||
}
|
||||
|
||||
public function destroyProduct(Product $product): RedirectResponse
|
||||
{
|
||||
$product->delete();
|
||||
|
||||
return back()->with('status', 'Product deleted.');
|
||||
}
|
||||
|
||||
public function updateOrder(Request $request, Order $order): RedirectResponse
|
||||
{
|
||||
$order->update($request->validate(['status' => ['required', 'in:pending,processing,completed,cancelled,refunded'], 'payment_status' => ['required', 'in:unpaid,authorised,paid,partially_refunded,refunded,failed'], 'fulfilment_status' => ['required', 'in:unfulfilled,partial,fulfilled,returned']]));
|
||||
|
||||
return back()->with('status', 'Order updated.');
|
||||
}
|
||||
public function updateProduct(Request $request, Product $product): RedirectResponse { $product->update($request->validate(['name'=>['required','string','max:255'],'price'=>['required','numeric','min:0'],'stock_quantity'=>['required','integer'],'status'=>['required','in:draft,active,archived']])); return back()->with('status','Product updated.'); }
|
||||
public function destroyProduct(Product $product): RedirectResponse { $product->delete(); return back()->with('status','Product deleted.'); }
|
||||
public function updateOrder(Request $request, Order $order): RedirectResponse { $order->update($request->validate(['status'=>['required','in:pending,processing,completed,cancelled,refunded'],'payment_status'=>['required','in:unpaid,authorised,paid,partially_refunded,refunded,failed'],'fulfilment_status'=>['required','in:unfulfilled,partial,fulfilled,returned']])); return back()->with('status','Order updated.'); }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user