IMMREX7

aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/
File Up :
aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/BusRouteController.php

<?php

namespace App\Http\Controllers\School;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;
use DB;
use Session;

class BusRouteController extends SchoolController {

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index() {
        $routes = \App\Route::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->where('idFinancialYear','=', Session::get('idFinancialYear'))->get();
        return view('schools.buses.routes', compact('routes'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create() {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request) {
        $route = new \App\Route();
        $route->fill($request->all());
        $route->idSchool = Auth::guard('school')->user()->idSchool;
        $route->idFinancialYear = Session::get('idFinancialYear');
        DB::beginTransaction();
        $route->save();
        foreach ($request->routes as $key => $value) {
            $stop = new \App\RouteStop();
            $stop->fill($request->all());
            $stop->idRoute = $route->idRoute;
            $stop->stopName = $value['stopName'];
            $stop->longitude = $value['longitude'];
            $stop->latitude = $value['latitude'];
            $stop->save();
        }
        DB::commit();
        return redirect('school/routes');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id) {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id) {
        $routes = \App\Route::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->where('idFinancialYear','=', Session::get('idFinancialYear'))->get();
        $route = \App\Route::findOrFail($id);
        return view('schools.buses.routes', compact('routes', 'route'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id) {
        // dd($request->all());
        $route = \App\Route::findOrFail($id);
        $route->fill($request->all());
        DB::beginTransaction();
        $route->update();
        $idStop = [];
        foreach ($request->routes as $key => $value) {
            $isNew = 0;
            $stop = \App\RouteStop::where('idRoute', '=', $id)->where('longitude', '=', $value['longitude'])->where('latitude', '=', $value['latitude'])->first();
            if ($stop == null) {
                $stop = new \App\RouteStop();
                $isNew++;
            }
            $stop->fill($request->all());
            $stop->idRoute = $route->idRoute;
            $stop->stopName = $value['stopName'];
            $stop->longitude = $value['longitude'];
            $stop->latitude = $value['latitude'];
            if($isNew > 0)
            $stop->save();
            else $stop->update();
            array_push($idStop,$stop->idStop);
        }
        \App\RouteStop::where('idRoute', '=', $id)->whereNotIn('idStop', $idStop)->delete();
        DB::commit();
        return redirect('school/routes');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id) {
        $busroute = \App\Route::where('idRoute', '=', $id)->first();
        DB::beginTransaction();
        $busroute->stops()->delete();
        $busroute->delete();
        DB::commit();
        return response()->json(['success' => "SUCCESS"], 200, ['app-status' => 'success']);
    }
    
    public function getStops($routeid) {
        $stops = \App\RouteStop::where('idRoute','=',$routeid)->get()->pluck('stopName','idStop')->toArray();
        return json_encode($stops);
    }
    
    public function getBuses($routeid) {
        $buses = DB::table('busroutes')->join('buses','busroutes.idBus','=','buses.idBus')
                ->where('idRoute','=',$routeid)->get()->pluck('busNo','idBus')->toArray();
        return json_encode($buses);
    }

}

Copyright © 2021 - 2025 IMMREX7