Work on products, first completed broadband

This commit is contained in:
Deon George
2021-12-24 12:14:01 +11:00
parent 8f5293662e
commit 1e9f15b40f
62 changed files with 2139 additions and 894 deletions

View File

@@ -14,16 +14,19 @@ use App\Models\{Account,Product,Service,User};
class OrderController extends Controller
{
// @todo To check
public function __construct()
{
$this->middleware('auth');
}
// @todo To check
public function index()
{
return view('order.home');
}
// @todo To check
public function product_order(Product $o)
{
Theme::set('metronic-fe');
@@ -31,6 +34,7 @@ class OrderController extends Controller
return view('order.widget.order',['o'=>$o]);
}
// @todo To check
public function product_info(Product $o)
{
Theme::set('metronic-fe');
@@ -38,9 +42,10 @@ class OrderController extends Controller
return view('order.widget.info',['o'=>$o]);
}
// @todo To check
public function submit(Request $request)
{
Validator::make($request->all(),['product_id'=>'required|exists:ab_product,id'])
Validator::make($request->all(),['product_id'=>'required|exists:products,id'])
// Reseller
->sometimes('account_id','required|email',function($input) use ($request) {
return is_null($input->account_id) AND is_null($input->order_email_manual);
@@ -59,7 +64,7 @@ class OrderController extends Controller
$po = Product::findOrFail($request->input('product_id'));
// Check we have the custom attributes for the product
$options = $po->orderValidation($request);
$order = $po->orderValidation($request);
if ($request->input('order_email_manual')) {
$uo = User::firstOrNew(['email'=>$request->input('order_email_manual')]);
@@ -101,24 +106,24 @@ class OrderController extends Controller
$so->product_id = $request->input('product_id');
$so->order_status = 'ORDER-SUBMIT';
$so->orderby_id = Auth::id();
$so->model = get_class($options);
$so->model = get_class($order);
if ($options->order_info) {
$so->order_info = $options->order_info;
if ($order->order_info) {
$so->order_info = $order->order_info;
unset($options->order_info);
unset($order->order_info);
}
$so = $ao->services()->save($so);
if ($options instanceOf Model) {
$options->service_id = $so->id;
$options->save();
if ($order instanceOf Model) {
$order->service_id = $so->id;
$order->save();
}
Mail::to('help@graytech.net.au')
->queue((new OrderRequest($so,$request->input('options.notes','')))->onQueue('email')); //@todo Get email from DB.
->queue((new OrderRequest($so,$request->input('options.notes') ?: ''))->onQueue('email')); //@todo Get email from DB.
return view('order_received',['o'=>$so]);
}
}
}