feat: Implement order management with datatable display and updated forms
This commit is contained in:
@@ -34,6 +34,7 @@ use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
|
||||
|
||||
class OrderController extends Controller
|
||||
@@ -55,11 +56,9 @@ class OrderController extends Controller
|
||||
) {}
|
||||
public function index(Request $request)
|
||||
{
|
||||
$orders = $this->orderRepository->filter($request->merge(['page' => $request->get('page', 1)])->all(), ['payment', 'customer', 'invoice']);
|
||||
|
||||
$title = 'List all orders';
|
||||
|
||||
return view('administrator.pages.order.index', compact('title', 'orders'));
|
||||
return view('administrator.pages.order.index', compact('title'));
|
||||
}
|
||||
|
||||
// Tính billing
|
||||
@@ -261,12 +260,12 @@ class OrderController extends Controller
|
||||
public function create()
|
||||
{
|
||||
$title = 'Add new Order for Customer';
|
||||
$customer = Customer::select('id', 'firstname', 'lastname')->where('status', 1)->get();
|
||||
$customer = Customer::select('id', 'fullname')->where('status', 1)->get();
|
||||
$payment = Payment::select('id', 'name')->where('status', 1)->get();
|
||||
$discount = Discount::select('id', 'code', 'save', 'type')->where('status', 1)->get();
|
||||
$type = Type::select('id', 'name')->where('status', 1)->get();
|
||||
// $type = Type::select('id', 'name')->where('status', 1)->get();
|
||||
|
||||
return view('administrator.pages.order.add', compact('title', 'customer', 'payment', 'discount', 'type'));
|
||||
return view('administrator.pages.order.add', compact('title', 'customer', 'payment', 'discount'));
|
||||
}
|
||||
|
||||
public function edit(int $id = 0)
|
||||
@@ -407,4 +406,43 @@ class OrderController extends Controller
|
||||
|
||||
return back()->with('success', 'Delete Success');
|
||||
}
|
||||
|
||||
public function datatable(Request $request)
|
||||
{
|
||||
$query = $this->orderRepository->filter(
|
||||
$request->all(),
|
||||
['payment', 'customer', 'invoice'],
|
||||
[],
|
||||
['*'],
|
||||
true
|
||||
);
|
||||
|
||||
return DataTables::eloquent($query)
|
||||
->addColumn('order_num', function ($d) {
|
||||
return view('administrator.pages.order.datatable.order_num', ['row' => $d])->render();
|
||||
})
|
||||
->addColumn('date', function ($d) {
|
||||
return view('administrator.pages.order.datatable.date', ['row' => $d])->render();
|
||||
})
|
||||
->addColumn('customer', function ($d) {
|
||||
return view('administrator.pages.order.datatable.customer', ['row' => $d])->render();
|
||||
})
|
||||
->addColumn('payment', function ($d) {
|
||||
return view('administrator.pages.order.datatable.payment', ['row' => $d])->render();
|
||||
})
|
||||
->addColumn('amount', function ($d) {
|
||||
return view('administrator.pages.order.datatable.amount', ['row' => $d])->render();
|
||||
})
|
||||
->addColumn('invoice_status', function ($d) {
|
||||
return view('administrator.pages.order.datatable.invoice_status', ['row' => $d])->render();
|
||||
})
|
||||
->addColumn('status', function ($d) {
|
||||
return view('administrator.pages.order.datatable.status', ['row' => $d])->render();
|
||||
})
|
||||
->addColumn('action', function ($d) {
|
||||
return view('administrator.pages.order.datatable.action', ['row' => $d])->render();
|
||||
})
|
||||
->rawColumns(['order_num', 'date', 'customer', 'payment', 'amount', 'invoice_status', 'status', 'action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user