Ejemplo n.º 1
0
 /**
  * @param City $city
  * @param Building $building
  * @param Request $request
  * @return $this|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 private function setWorkers(City $city, Building $building, Request $request)
 {
     $workers = $request->input('workers');
     // validate the request's number
     if ($workers > $building->level * 10 || $workers < 0) {
         return redirect($request->url())->withErrors(["no_more_worker" => "Az épületben nem dolgozhat ennyi munkás"]);
     }
     // check if the user want to add or remove workers.
     $diff = $workers - $building->workers;
     if ($city->hasEnoughHumanResources(['workers' => $diff])) {
         $city->human_resources->subtract(['workers' => $diff]);
         $building->workers = $workers;
         $building->save();
         return redirect()->back();
     }
     return redirect()->back()->withErrors(['not_enough_worker' => "Nincs elég munkás"]);
 }