Add expenses on airports as well #130 #136

This commit is contained in:
Nabeel Shahzad
2018-03-05 22:10:00 -06:00
parent 88a8fd2bbd
commit db10ebf807
9 changed files with 217 additions and 29 deletions

View File

@@ -4,6 +4,8 @@ namespace App\Http\Controllers\Admin;
use App\Http\Requests\CreateAirportRequest;
use App\Http\Requests\UpdateAirportRequest;
use App\Models\Airport;
use App\Models\Expense;
use App\Repositories\AirportRepository;
use App\Repositories\Criteria\WhereCriteria;
use Flash;
@@ -15,7 +17,7 @@ use Response;
class AirportController extends BaseController
{
/** @var AirportRepository */
private $airportRepository;
private $airportRepo;
/**
* AirportController constructor.
@@ -24,7 +26,7 @@ class AirportController extends BaseController
public function __construct(
AirportRepository $airportRepo
) {
$this->airportRepository = $airportRepo;
$this->airportRepo = $airportRepo;
}
/**
@@ -40,8 +42,8 @@ class AirportController extends BaseController
$where['icao'] = $request->get('icao');
}
$this->airportRepository->pushCriteria(new WhereCriteria($request, $where));
$airports = $this->airportRepository
$this->airportRepo->pushCriteria(new WhereCriteria($request, $where));
$airports = $this->airportRepo
->orderBy('icao', 'asc')
->paginate();
@@ -72,7 +74,7 @@ class AirportController extends BaseController
$input = $request->all();
$input['hub'] = get_truth_state($input['hub']);
$this->airportRepository->create($input);
$this->airportRepo->create($input);
Flash::success('Airport saved successfully.');
return redirect(route('admin.airports.index'));
@@ -85,7 +87,7 @@ class AirportController extends BaseController
*/
public function show($id)
{
$airport = $this->airportRepository->findWithoutFail($id);
$airport = $this->airportRepo->findWithoutFail($id);
if (empty($airport)) {
Flash::error('Airport not found');
@@ -104,7 +106,7 @@ class AirportController extends BaseController
*/
public function edit($id)
{
$airport = $this->airportRepository->findWithoutFail($id);
$airport = $this->airportRepo->findWithoutFail($id);
if (empty($airport)) {
Flash::error('Airport not found');
@@ -126,7 +128,7 @@ class AirportController extends BaseController
*/
public function update($id, UpdateAirportRequest $request)
{
$airport = $this->airportRepository->findWithoutFail($id);
$airport = $this->airportRepo->findWithoutFail($id);
if (empty($airport)) {
Flash::error('Airport not found');
@@ -136,7 +138,7 @@ class AirportController extends BaseController
$attrs = $request->all();
$attrs['hub'] = get_truth_state($attrs['hub']);
$this->airportRepository->update($attrs, $id);
$this->airportRepo->update($attrs, $id);
Flash::success('Airport updated successfully.');
return redirect(route('admin.airports.index'));
@@ -149,19 +151,70 @@ class AirportController extends BaseController
*/
public function destroy($id)
{
$airport = $this->airportRepository->findWithoutFail($id);
$airport = $this->airportRepo->findWithoutFail($id);
if (empty($airport)) {
Flash::error('Airport not found');
return redirect(route('admin.airports.index'));
}
$this->airportRepository->delete($id);
$this->airportRepo->delete($id);
Flash::success('Airport deleted successfully.');
return redirect(route('admin.airports.index'));
}
/**
* @param Airport|null $airport
* @return mixed
*/
protected function return_expenses_view(?Airport $airport)
{
$airport->refresh();
return view('admin.airports.expenses', [
'airport' => $airport,
]);
}
/**
* Operations for associating ranks to the subfleet
* @param $id
* @param Request $request
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
* @throws \Exception
*/
public function expenses($id, Request $request)
{
$airport = $this->airportRepo->findWithoutFail($id);
if (empty($airport)) {
return $this->return_expenses_view($airport);
}
if ($request->isMethod('get')) {
return $this->return_expenses_view($airport);
}
/**
* update specific rank data
*/
if ($request->isMethod('post')) {
$expense = new Expense($request->post());
$expense->ref_class = Airport::class;
$expense->ref_class_id = $airport->id;
$expense->save();
} elseif ($request->isMethod('put')) {
$expense = Expense::findOrFail($request->input('expense_id'));
$expense->{$request->name} = $request->value;
$expense->save();
} // dissassociate fare from teh aircraft
elseif ($request->isMethod('delete')) {
$expense = Expense::findOrFail($request->input('expense_id'));
$expense->delete();
}
return $this->return_expenses_view($airport);
}
/**
* Set fuel prices for this airport
* @param Request $request
@@ -171,7 +224,7 @@ class AirportController extends BaseController
{
$id = $request->id;
$airport = $this->airportRepository->findWithoutFail($id);
$airport = $this->airportRepo->findWithoutFail($id);
if (empty($airport)) {
Flash::error('Flight not found');
return redirect(route('admin.flights.index'));

View File

@@ -342,7 +342,6 @@ class SubfleetController extends BaseController
$expense->ref_class = Subfleet::class;
$expense->ref_class_id = $subfleet->id;
$expense->save();
$subfleet->refresh();
} elseif ($request->isMethod('put')) {
$expense = Expense::findOrFail($request->input('expense_id'));
$expense->{$request->name} = $request->value;