Viewing file: OrderController.php (7.19 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Back;
use App\{ Models\Order, Models\PromoCode, Models\TrackOrder, Http\Controllers\Controller }; use App\Helpers\SmsHelper; use App\Models\Notification; use Carbon\Carbon; use Illuminate\Http\Request;
class OrderController extends Controller {
/** * Constructor Method. * * Setting Authentication * */ public function __construct() { $this->middleware('auth:admin'); $this->middleware('adminlocalize'); }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { if($request->type){ if($request->start_date && $request->end_date){ $datas = $start_date = Carbon::parse($request->start_date); $end_date = Carbon::parse($request->end_date); $datas = Order::latest('id')->whereOrderStatus($request->type)->whereDate('created_at','>=',$start_date)->whereDate('created_at','<=',$end_date)->get(); }else{ $datas = Order::latest('id')->whereOrderStatus($request->type)->get(); } }else{ if($request->start_date && $request->end_date){ $datas = $start_date = Carbon::parse($request->start_date); $end_date = Carbon::parse($request->end_date); $datas = Order::latest('id')->whereDate('created_at','>=',$start_date)->whereDate('created_at','<=',$end_date)->get(); }else{ $datas = Order::latest('id')->get(); } } return view('back.order.index',compact('datas')); }
public function sellingOrders(Request $request) {
if($request->start_date && $request->end_date){ $datas = $start_date = Carbon::parse($request->start_date); $end_date = Carbon::parse($request->end_date); $datas = Order::orderByDesc('created_at')->where('order_status', 'SELLING')->whereDate('created_at','>=',$start_date)->whereDate('created_at','<=',$end_date)->get(); }else{ $datas = Order::orderByDesc('created_at')->where('order_status', 'SELLING')->get(); }
return view('back.order.selling_orders',compact('datas')); } public function soldOrders(Request $request) {
if($request->start_date && $request->end_date){ $datas = $start_date = Carbon::parse($request->start_date); $end_date = Carbon::parse($request->end_date); $datas = Order::orderByDesc('created_at')->where('order_status', 'SOLD')->whereDate('created_at','>=',$start_date)->whereDate('created_at','<=',$end_date)->get(); }else{ $datas = Order::orderByDesc('created_at')->where('order_status', 'SOLD')->get(); }
return view('back.order.sold_orders',compact('datas')); }
/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function invoice($id) { $order = Order::findOrfail($id); $cart = json_decode($order->cart, true); return view('back.order.invoice',compact('order','cart')); }
/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function printOrder($id) { $order = Order::findOrfail($id); $cart = json_decode($order->cart, true); return view('back.order.print',compact('order','cart')); }
/** * Change the status for editing the specified resource. * * @param int $id * @param string $field * @param string $value * @return \Illuminate\Http\Response */ public function status($id,$field,$value) {
$status=['SOLD', 'CANCELLED'];
if(!in_array($value, $status)){ return redirect()->route('back.selling.orders')->withErrors(__('Invalid status.')); }
$order = Order::where('order_status', 'SELLING')->whereId($id)->firstOrFail();
if($field == 'order_status'){ if($order['order_status'] == 'SOLD'){ return redirect()->route('back.selling.orders')->withErrors(__('Order is already SOLD.')); } } $order->update([$field => $value]);
return redirect()->route('back.selling.orders')->withSuccess(__('Status Updated Successfully.')); }
/** * Custom Function */ public function setTrackOrder($order) {
if($order->order_status == 'In Progress'){ if(!TrackOrder::whereOrderId($order->id)->whereTitle('In Progress')->exists()){ TrackOrder::create([ 'title' => 'In Progress', 'order_id' => $order->id ]); } } if($order->order_status == 'Canceled'){ if(!TrackOrder::whereOrderId($order->id)->whereTitle('Canceled')->exists()){
if(!TrackOrder::whereOrderId($order->id)->whereTitle('In Progress')->exists()){ TrackOrder::create([ 'title' => 'In Progress', 'order_id' => $order->id ]); } if(!TrackOrder::whereOrderId($order->id)->whereTitle('Delivered')->exists()){ TrackOrder::create([ 'title' => 'Delivered', 'order_id' => $order->id ]); }
if(!TrackOrder::whereOrderId($order->id)->whereTitle('Canceled')->exists()){ TrackOrder::create([ 'title' => 'Canceled', 'order_id' => $order->id ]); }
} }
if($order->order_status == 'Delivered'){
if(!TrackOrder::whereOrderId($order->id)->whereTitle('In Progress')->exists()){ TrackOrder::create([ 'title' => 'In Progress', 'order_id' => $order->id ]); }
if(!TrackOrder::whereOrderId($order->id)->whereTitle('Delivered')->exists()){ TrackOrder::create([ 'title' => 'Delivered', 'order_id' => $order->id ]); } } }
public function setPromoCode($order) {
$discount = json_decode($order->discount, true); if($discount != null){ $code = PromoCode::find($discount['code']['id']); $code->no_of_times--; $code->update(); } }
public function delete($id) { $order = Order::findOrFail($id); $order->tranaction->delete(); if(Notification::where('order_id',$id)->exists()){ Notification::where('order_id',$id)->delete(); } if(count($order->tracks_data)>0){ foreach($order->tracks_data as $track){ $track->delete(); } } $order->delete(); return redirect()->back()->withSuccess(__('Order Deleted Successfully.')); }
}
|