Пример #1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     $route = new Route();
     if ($route->validate(Input::all(), Route::$rules)) {
         $origin_Id = Input::get("origin_location_id");
         $destination_Id = Input::get("destination_location_id");
         $origin_on_db = Route::where('origin_location_id', '=', $origin_Id)->where('destination_location_id', '=', $destination_Id)->first() !== null;
         if (!$origin_on_db) {
             $route = new Route(Input::except('_token'));
             $route->save();
             if (Input::get('reverse') != null) {
                 $destination_on_db = Route::where('origin_location_id', '=', $destination_Id)->where('destination_location_id', '=', $origin_Id)->first() !== null;
                 if (!$destination_on_db) {
                     $reverse_route = new Route();
                     $reverse_route->origin_location_id = $destination_Id;
                     $reverse_route->destination_location_id = $origin_Id;
                     $reverse_route->distance = Input::get("distance");
                     $reverse_route->save();
                 }
             }
             Notification::success('Ruta #' . $route->id . ' añadida correctamente');
             return redirect('routes');
         } else {
             Notification::error('La ruta ya se encuentra registrada en el sistema');
             return redirect()->back()->withInput();
         }
     } else {
         $errors = $route->errors();
         return redirect()->back()->withInput()->withErrors($errors);
     }
 }
Пример #2
0
 public function createRoute(Request $request)
 {
     $user = Auth::user();
     //Save Route
     $route = new Route();
     $route->rname = $request->input('rname');
     $waypoints = explode(";", $request->input('waypoints'));
     array_pop($waypoints);
     $route->user_id = $user->id;
     $route->save();
     //Save Waypoints
     foreach ($waypoints as $key => $waypoint) {
         $newWaypoint = new Waypoint();
         $newWaypoint->route_id = $route->id;
         $newWaypoint->index = $key;
         $newWaypoint->addr = $waypoint;
         $newWaypoint->save();
     }
     return Redirect::action('PagesController@dashboard');
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     //
     $validator = Validator::make($request->all(), ['name' => 'required|min:2', 'short_name' => 'required|min:2']);
     if ($validator->fails()) {
         if ($request->ajax()) {
             return response()->json($validator->messages());
         } else {
             return \Redirect::back()->withErrors($validator)->withInput();
         }
     }
     $all_request = $request->all();
     array_forget($all_request, "_token");
     $route = new Route();
     foreach ($all_request as $key => $value) {
         $route->{$key} = $value;
     }
     if ($route->save()) {
         return response()->json("record saved successfully");
     }
     return View("routes.index", ["routes" => Route::all(), "title" => "Route Listings"]);
 }
 public function run()
 {
     DB::table('routes')->delete();
     $faker = Faker\Factory::create();
     $data = \Rome2RioData::call('cebu', 'manila');
     foreach ($data->routes as $route) {
         $new_route = new App\Route();
         $new_route->name = $route->name;
         $new_route->distance = $route->distance;
         $new_route->duration = $route->duration;
         $new_route->price = \Rome2RioData::getRome2RioPrice($route);
         //ctrl + p and look for rome2riodata in facades folder
         $new_route->save();
         $i = 1;
         foreach ($route->stops as $stop) {
             $stopObj = new Stop();
             $stopObj->name = $stop->name;
             $stopObj->kind = $stop->kind;
             $stopObj->pos = $stop->pos;
             $stopObj->tips = $faker->text(20);
             $stopObj->timezone = property_exists($stop, "timeZone") ? $stop->timeZone : "";
             $stopObj->region_code = property_exists($stop, "regionCode") ? $stop->regionCode : "";
             $stopObj->save();
             unset($stopObj);
         }
         /**
          * Loop here kay each routes naay segments
          *  
          */
         foreach ($route->segments as $segment) {
             //check if the segment is flight then passes it to the
             //converting function
             //the function then returns a generic segment object
             if ($segment->kind == "flight") {
                 $segment = \Rome2RioData::convertToFlightSegment($route, $segment);
             }
             $new_segment = new App\Segment();
             $new_segment->mode = $segment->kind;
             $new_segment->route_id = $new_route->id;
             $new_segment->sequence = $i;
             $new_segment->origin_name = $segment->sName;
             $new_segment->destination_name = $segment->tName;
             $new_segment->origin_pos = $segment->sPos;
             $new_segment->destination_pos = $segment->tPos;
             $new_segment->price = \Rome2RioData::getRome2RioPrice($segment);
             //ctrl + p and look for rome2riodata in facades folder
             $new_segment->path = property_exists($segment, 'path') ? $segment->path : '';
             $new_segment->distance = $segment->distance;
             $new_segment->duration = $segment->duration;
             $new_segment->save();
             $new_segment->route()->associate($new_segment);
             // $new_segment->save() sad diay
             $fi = new FlightIterinary();
             $fi->days = $new_segment->itineraties;
             unset($new_segment);
             $i++;
         }
         //unset variables kada human loop
         unset($new_route, $i);
     }
 }
 /**
  * @param $token
  * @param $origin_name
  * @param $lng
  * @param $lat
  * @param $mode
  * @return \Illuminate\Http\JsonResponse
  */
 public static function addSegment($token, $origin_name, $lng, $lat, $mode)
 {
     //todo
     $segment = new Segment();
     $segment->origin_name = $origin_name;
     $segment->origin_pos = $lat . ',' . $lng;
     $segment->mode = $mode;
     $iterinary = self::getUserCurrentIterinary($token);
     $route = $iterinary->route()->first();
     //        dd($route->segments()->count());
     $segment->sequence = $route->segments()->count() + 1;
     $user = self::getByToken($token);
     //dd($route->count());
     //dd($route);
     if ($route->count() < 1) {
         $route = new Route();
         $route->name = $iterinary->origin . ' to ' . $iterinary->desination;
         try {
             $route->save();
             $iterinary->route()->associate($route);
             $iterinary->save();
         } catch (\Exception $e) {
             //dd($iterinary,$route);
             return response()->json('error saving route', 400);
         }
     }
     $route = $iterinary->route()->first();
     // activity
     $activity = new Activity();
     $activity->iterinary_id = $iterinary->id;
     $activity->day = self::getDiffInDays($token, $iterinary->id);
     $activity->start_time = Carbon::now()->toTimeString();
     // end activity
     $route->segments()->save($segment);
     $segment->activity()->save($activity);
     $iterinary = Iterinary::findOrFail($iterinary->id)->with('activities.typable')->first();
     //self::newUserActivity('transport', $segment->getAttribute('id'), $token);
     return response()->json($iterinary, 200);
 }
 /**
  * Show the form for creating a new resource.
  *
  * @return Response
  */
 public function populateRoutes()
 {
     $inputs = ['origin' => rawurlencode(Input::get('origin')), 'destination' => rawurlencode(Input::get('destination')), 'pax' => Input::get('pax')];
     $airports = [];
     $user_id = Input::get('user_id');
     $contributor = User::find($user_id);
     $now = Carbon::now();
     if ($contributor == null) {
         return response()->json('user not found.', 404);
     }
     $data = Rome2Rio::call($inputs['origin'], $inputs['destination']);
     if (isset($data->airports)) {
         foreach ($data->airports as $airport) {
             $airports[$airport->code] = $airport->pos;
         }
     }
     foreach ($data->routes as $route) {
         $iterinary = new Iterinary();
         $iterinary->origin = $data->places[0]->name;
         $iterinary->destination = $data->places[1]->name;
         $iterinary->creator_id = $contributor->id;
         $iterinary->duration = $route->duration;
         $iterinary->distance = $route->distance;
         $iterinary->price = Rome2Rio::getRome2RioPrice($route);
         $new_route = new Route();
         $new_route->name = $route->name;
         $new_route->distance = $route->distance;
         $new_route->duration = $route->duration;
         $new_route->price = Rome2Rio::getRome2RioPrice($route);
         $new_route->save();
         $iterinary->route()->associate($new_route);
         $iterinary->save();
         $contributor->iterinaries()->attach($iterinary->id, ['date_start' => $now]);
         $i = 1;
         foreach ($route->segments as $segment) {
             $new_segment = new Segment();
             if ($segment->kind == "flight") {
                 $segment = Rome2Rio::convertToFlightSegment($segment, $data);
             }
             $new_segment->mode = !isset($segment->subkind) ? $segment->kind : $segment->subkind;
             $new_segment->sequence = $i;
             $new_segment->origin_name = !isset($segment->sName) ? "" : $segment->sName;
             $new_segment->destination_name = !isset($segment->tName) ? "" : $segment->tName;
             $new_segment->origin_pos = $segment->sPos;
             $new_segment->destination_pos = $segment->tPos;
             $new_segment->price = Rome2Rio::getRome2RioPrice($segment);
             $new_segment->path = $segment->kind == "flight" ? Rome2Rio::getFlightPath($airports[$segment->sCode], $airports[$segment->tCode]) : $segment->path;
             $new_segment->distance = $segment->distance;
             $new_segment->duration = $segment->duration;
             $new_route->segments()->save($new_segment);
             $activity = new Activity();
             $activity->iterinary_id = $iterinary->id;
             $activity->day = 1;
             $activity->start_time = Carbon::now()->toTimeString();
             $activity->end_time = Carbon::now()->addMinute($segment->duration)->toTimeString();
             $new_segment->activity()->save($activity);
             $i++;
         }
         unset($i);
         // unset index for segments sequence
     }
     //dd($data);
 }
 /**
  * contributor new iterinary
  * @param $request
  * @route 'plot/iterinary/new'
  * @return Response
  */
 public function newIterinaryTest(Request $request)
 {
     $token = Input::get('token');
     $withSegment = Input::get('withSegment');
     $error_bag = array();
     if ($token == null) {
         return response()->json('token is empty', 200);
     }
     $user = userSessionHandler::user($token);
     if ($user == null) {
         return response()->json('user not found.', 404);
     }
     $lng = Input::get('lng');
     $lat = Input::get('lat');
     $origin = Input::get('origin');
     $destination = Input::get('destination');
     $origin_pos = $lat . ',' . $lng;
     $pax = Input::get('pax');
     $date_start = Carbon::now();
     $input_bag = ['origin' => $origin, 'destination' => $destination, 'pax' => $pax, 'longitude' => $lng, 'latitude' => $lat, 'date_start' => $date_start];
     $i = 0;
     foreach ($input_bag as $key => $value) {
         $value = trim($value);
         if (empty($value)) {
             $error_bag[$i] = "{$key} empty";
             $i++;
         } else {
             //
         }
     }
     //filter of false or null values
     if (array_filter($error_bag)) {
         return response()->json($error_bag, 400);
     }
     $iterinary = new Iterinary();
     $iterinary->creator_id = $user->id;
     $iterinary->origin = $origin;
     $iterinary->destination = $destination;
     if ($user->iterinaries()->save($iterinary)) {
         //$user->iterinaries()->attach($iterinary->id);
         $pivot = $user->iterinaries()->wherePivot('iterinary_id', '=', $iterinary->id)->first();
         $pivot->pivot->date_start = $date_start;
         $pivot->pivot->save();
         $route = new Route();
         $route->name = $iterinary->origin . ' to ' . $iterinary->destination;
         $route->save();
         $iterinary->route()->associate($route);
         if ($withSegment == true) {
             $segment = new Segment();
             $input_bag = ['origin name' => $origin, 'origin position' => $destination, 'user id' => $user->id, 'origin position' => $origin_pos];
             $i = 0;
             foreach ($input_bag as $key => $value) {
                 $value = trim($value);
                 if (empty($value)) {
                     $error_bag[$i] = "{$key} empty";
                     $i++;
                 } else {
                     //
                 }
             }
             //filter of false or null values
             if (array_filter($error_bag)) {
                 return response()->json($error_bag, 400);
             }
             $segment->origin_pos = Input::get('origin_pos');
             $segment->sequence = Input::get('sequence');
             $segment->mode = Input::get('mode');
             $segment->origin_name = Input::get('origin_name');
             $route->segments()->save($segment);
         }
         return response()->json('success', 200);
     } else {
         return response()->json('error saving', 401);
     }
 }