Viewing file: DeliveryController.php (13.11 KB) -rwxrwxrwx Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request; use App\Models\Delivery; use App\Models\Order; use App\Models\Vendor; use App\Models\Shop; use App\Models\DeliveryPartner; use App\Models\ReturnRequest;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\DB; use GuzzleHttp\Client;
class DeliveryController extends Controller { function __construct() { $this->middleware('auth'); } function index() { $data=Delivery::get(); $vendors=Shop::select('id','shop_name')->get(); return view('pages.delivery.index',['deliveries'=>$data,'vendors'=>$vendors]); } public function getDeliveries() { // $orders=Order::select('id','customer as customer_name','total_amount as amount','delivery_deadline as delivery_date','total_amount as sales_item','id as payment','id as status')->get(); $orders=Delivery::with('customer')->with('vendor')->with('delivery_partner')->get(); echo json_encode($this->makeData($orders)); } function requestedDeliveries() { $data=Delivery::with(['saleData','statusData'])->where('delivered_by',auth()->user()->id)->where("status",1)->get(); $shops=Shop::select('id','shop_name')->get(); return view('pages.delivery.requested',['deliveries'=>$data,'shops'=>$shops]); } public function filterRequestedDeliveries(Request $req){ $query = Delivery::query(); $query->when($req->input('shop') !== 'all', function ($q) use ($req) { $q->where('shop_id', $req->input('shop')); }); $query->when($req->input('search_input') !== '', function ($q) use ($req) { $q->where('order_id','LIKE',"%{$req->input('search_input')}%"); }); if ($req->input('date_range')) { $date_range=explode("to",$req->input('date_range')); $from_date=date_create($date_range[0]); $from_date= date_format($from_date,"Y-m-d"); $to_date=date_create($date_range[1]); $to_date= date_format($to_date,"Y-m-d"); $to_date = date(date('Y-m-d', strtotime($to_date. ' + 1 days'))); $query->where('created_at','>',$from_date); $query->where('created_at','<',$to_date); } $orders = $query->with(['saleData','statusData'])->where('delivered_by',auth()->user()->id)->where('status',1)->get(); $shops=Shop::select('id','shop_name')->get(); return view('pages.delivery.requested',['deliveries'=>$orders,'shops'=>$shops, 'search_input'=>$req->input('search_input'), 'shop'=>$req->input('shop'), "date_range"=>$req->input('date_range')]); } function pickedUp(Request $req) { try { DB::beginTransaction(); $data=Delivery::find($req->input('delivery_id')); $data->status=2; $data->save(); $client = new Client([ 'auth' => [env('AUTH_USER'), env("AUTH_PASSWORD")] ]); $res = $client->request('post', env("DATA_SERVER_URL").'/sale_status/'.$data->sale_id,["json"=>["sale_status"=>3]]); DB::commit(); return redirect()->back()->with('message', "Delivery Status changed Successfully"); } catch (\Exception $exception) { DB::rollback(); // var_dump($exception->getMessage()); return redirect()->back()->withErrors("Something Went wrong please try again"); } } function pickedDeliveries() { $data=Delivery::with(['saleData','statusData'])->where('delivered_by',auth()->user()->id)->where("status",2)->get(); $shops=Shop::select('id','shop_name')->get(); return view('pages.delivery.picked_up',['deliveries'=>$data,'shops'=>$shops]); } function filterPickedDeliveries(Request $req) { $query = Delivery::query(); $query->when($req->input('shop') !== 'all', function ($q) use ($req) { $q->where('shop_id', $req->input('shop')); }); $query->when($req->input('search_input') !== '', function ($q) use ($req) { $q->where('order_id','LIKE',"%{$req->input('search_input')}%"); }); if ($req->input('date_range')) { $date_range=explode("to",$req->input('date_range')); $from_date=date_create($date_range[0]); $from_date= date_format($from_date,"Y-m-d"); $to_date=date_create($date_range[1]); $to_date= date_format($to_date,"Y-m-d"); $to_date = date(date('Y-m-d', strtotime($to_date. ' + 1 days'))); $query->where('created_at','>',$from_date); $query->where('created_at','<',$to_date); } $orders = $query->with(['saleData','statusData'])->where('delivered_by',auth()->user()->id)->where('status',2)->get(); $shops=Shop::select('id','shop_name')->get(); return view('pages.delivery.picked_up',['deliveries'=>$orders,'shops'=>$shops, 'search_input'=>$req->input('search_input'), 'shop'=>$req->input('shop'), "date_range"=>$req->input('date_range')]); } private function makeData($orders) { $data = array(); $count=0; foreach ($orders as $order) { $count++; $data[] = [ "id"=>$order->id, "invoice"=>$order->invoice_no, "date"=>$order->created_at, "vendor"=>$order->vendor->first_name." ".$order->vendor->last_name, "address"=>$order->address, "customer_name"=>$order->customer->name, "status"=> $order->status, "delivery"=> $order->delivery_partner->name, "delivery_partner"=> $order->delivered_by, "note"=> $order->note, ]; } return $data; } public function filterDeliveries(Request $req){ $query = Delivery::query(); $query->when($req->input('status') !== 'all', function ($q) use ($req) { $q->where('status', $req->input('status')); }); $query->when($req->input('vendor') !== 'all', function ($q) use ($req) { $q->where('page_id', $req->input('vendor')); }); $query->when($req->input('search_input') !== '', function ($q) use ($req) { $q->where('invoice_no','LIKE',"%{$req->input('search_input')}%"); }); if ($req->input('from_date')) { $from_date=date_create($req->input('from_date')); $from_date= date_format($from_date,"Y-m-d"); $to_date=date_create($req->input('to_date')); $to_date= date_format($to_date,"Y-m-d"); $to_date = date(date('Y-m-d', strtotime($to_date. ' + 1 days'))); $query->where('created_at','>',$from_date); $query->where('created_at','<',$to_date); } $orders = $query->with('customer')->with('shop_Data')->with('vendor')->with('delivery_partner')->get(); $vendors=Shop::select('id','shop_name')->get(); $delivery_partners=DeliveryPartner::select('id','name')->where('status',1)->get(); return view('pages.delivery.index',['deliveries'=>$orders,'vendors'=>$vendors,'delivery_partners'=>$delivery_partners, 'search_input'=>$req->input('search_input'), 'vendor'=>$req->input('vendor'), "status"=>$req->input('status'),"date_range"=>$req->input('date_range')]); }
function completeDelivery(Request $req) {
try { DB::beginTransaction(); $data=Delivery::find($req->input('delivery_id')); $data->status=$req->status; $data->received_amount=$req->input("received_amount"); $data->no_of_items=$req->input("no_of_items"); $data->note=$req->input("note"); $data->save(); // if ($req->status ==5 || $req->status ==6 ) { // ReturnRequest::create([ // 'sale_id'=>$data->sale_id, // 'invoice_no'=>$data->invoice_no, // 'no_of_items'=>$req->input("ordered_quantity")-$req->input("no_of_items"), // 'status'=>1, // 'shop_id'=>$data->shop_id, // 'note'=>$req->input("note") // ]); // } $req_body=[ "sale_status"=>4, 'no_of_items'=>$req->input("no_of_items"), 'note'=>$req->input("note") ]; $client = new Client([ 'auth' => [env('AUTH_USER'), env("AUTH_PASSWORD")] ]); $res = $client->request('post', env("DATA_SERVER_URL").'/sale_status/'.$data->sale_id,["json"=>$req_body]); DB::commit(); return redirect()->back()->with('message', "Delivery Status changed Successfully"); } catch (\Exception $exception) { DB::rollback(); // var_dump($exception->getMessage()); return redirect()->back()->withErrors("Something Went wrong please try again"); } } function delivered() { $data=Delivery::where('delivered_by',auth()->user()->id)->whereIn("status",[3,5,6])->get(); // echo $data $shops=Shop::select('id','shop_name')->get(); return view('pages.delivery.completed',['deliveries'=>$data,'shops'=>$shops]); } public function filterDelivered(Request $req){ $query = Delivery::query(); $query->when($req->input('shop') !== 'all', function ($q) use ($req) { $q->where('shop_id', $req->input('shop')); }); $query->when($req->input('search_input') !== '', function ($q) use ($req) { $q->where('order_id','LIKE',"%{$req->input('search_input')}%"); }); if ($req->input('date_range')) { $date_range=explode("to",$req->input('date_range')); $from_date=date_create($date_range[0]); $from_date= date_format($from_date,"Y-m-d"); $to_date=date_create($date_range[1]); $to_date= date_format($to_date,"Y-m-d"); $to_date = date(date('Y-m-d', strtotime($to_date. ' + 1 days'))); $query->where('created_at','>',$from_date); $query->where('created_at','<',$to_date); } $orders = $query->with(['saleData','statusData'])->where('delivered_by',auth()->user()->id)->whereIn("status",[3,5,6])->get(); $shops=Shop::select('id','shop_name')->get(); return view('pages.delivery.completed',['deliveries'=>$orders,'shops'=>$shops, 'search_input'=>$req->input('search_input'), 'shop'=>$req->input('shop'), "date_range"=>$req->input('date_range')]); } // return requested order function returnList() { $data=Delivery::with('saleData','returnData')->where('delivered_by',auth()->user()->id)->whereIn("status",[5,6])->orderBy('id','desc')->get(); $shops=Shop::select('id','shop_name')->get(); // echo $data[0]->returnData->created_at; return view('pages.delivery.returned',['deliveries'=>$data,'shops'=>$shops]); } function filterReturnList(Request $req) { $query = Delivery::query(); $status=$req->input('status'); $query->whereHas('returnData', function ($qu) use ($status) { $qu->when($status !== "all", function ($q) use ($status) { $q->where('status', $status); }); }); // $query=$query->with(['return_requests' => function ($q) use ($req) { // // $query->where('column', 'value'); // // $q->when($req->input('status') !== 'all', function ($qe) { // $q->where('shop_id', 0); // // }); // }]); // $query->when($req->input('status') !== 'all', function ($q) use ($req) { // $q->where('status', $req->input('status')); // }); $query->when($req->input('shop') !== 'all', function ($q) use ($req) { $q->where('shop_id', $req->input('shop')); }); $query->when($req->input('search_input') !== '', function ($q) use ($req) { $q->where('order_id','LIKE',"%{$req->input('search_input')}%"); }); if ($req->input('from_date')) { $from_date=date_create($req->input('from_date')); $from_date= date_format($from_date,"Y-m-d"); $to_date=date_create($req->input('to_date')); $to_date= date_format($to_date,"Y-m-d"); $to_date = date(date('Y-m-d', strtotime($to_date. ' + 1 days'))); $query->where('created_at','>',$from_date); $query->where('created_at','<',$to_date); } $orders = $query->where('delivered_by',auth()->user()->id)->whereIn("status",[5,6])->orderBy('id','desc')->get(); $shops=Shop::select('id','shop_name')->get(); return view('pages.delivery.returned',['deliveries'=>$orders,'shops'=>$shops, 'search_input'=>$req->input('search_input'), 'shop'=>$req->input('shop'), "status"=>$req->input('status'),"date_range"=>$req->input('date_range')]); } function returnDelivery(Request $req) { ReturnRequest::where('id',$req->input('return_id'))->update([ "status"=>2 ]); return redirect()->back()->with('message', "Returned Successfully"); } }
|