#32 subfleet classificiation scaffolding

This commit is contained in:
Nabeel Shahzad
2017-06-22 20:55:45 -05:00
parent 6bbb37061b
commit aaaead77a5
28 changed files with 493 additions and 348 deletions

View File

@@ -1,149 +0,0 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests\CreateAircraftClassRequest;
use App\Http\Requests\UpdateAircraftClassRequest;
use App\Repositories\AircraftClassRepository;
use Illuminate\Http\Request;
use Flash;
use Prettus\Repository\Criteria\RequestCriteria;
use Response;
class AircraftClassController extends BaseController
{
/** @var AircraftClassRepository */
private $aircraftClassRepository;
public function __construct(AircraftClassRepository $aircraftClassRepo)
{
$this->aircraftClassRepository = $aircraftClassRepo;
}
/**
* Display a listing of the AircraftClass.
*
* @param Request $request
* @return Response
*/
public function index(Request $request)
{
$this->aircraftClassRepository->pushCriteria(new RequestCriteria($request));
$aircraftClasses = $this->aircraftClassRepository->all();
return view('admin.aircraft_classes.index')
->with('aircraftClasses', $aircraftClasses);
}
/**
* Show the form for creating a new AircraftClass.
*
* @return Response
*/
public function create()
{
return view('admin.aircraft_classes.create');
}
/**
* Store a newly created AircraftClass in storage.
*
* @param CreateAircraftClassRequest $request
*
* @return Response
*/
public function store(CreateAircraftClassRequest $request)
{
$input = $request->all();
$aircraftClass = $this->aircraftClassRepository->create($input);
Flash::success('Aircraft Class saved successfully.');
return redirect(route('admin.aircraftClasses.index'));
}
/**
* Display the specified AircraftClass.
*
* @param int $id
*
* @return Response
*/
public function show($id)
{
$aircraftClass = $this->aircraftClassRepository->findWithoutFail($id);
if (empty($aircraftClass)) {
Flash::error('Aircraft Class not found');
return redirect(route('admin.aircraftClasses.index'));
}
return view('admin.aircraft_classes.show')->with('aircraftClass', $aircraftClass);
}
/**
* Show the form for editing the specified AircraftClass.
*
* @param int $id
*
* @return mixed
*/
public function edit($id)
{
$aircraftClass = $this->aircraftClassRepository->findWithoutFail($id);
if (empty($aircraftClass)) {
Flash::error('Aircraft Class not found');
return redirect(route('admin.aircraftClasses.index'));
}
return view('admin.aircraft_classes.edit')->with('aircraftClass', $aircraftClass);
}
/**
* Update the specified AircraftClass in storage.
*
* @param int $id
* @param UpdateAircraftClassRequest $request
*
* @return Response
*/
public function update($id, UpdateAircraftClassRequest $request)
{
$aircraftClass = $this->aircraftClassRepository->findWithoutFail($id);
if (empty($aircraftClass)) {
Flash::error('Aircraft Class not found');
return redirect(route('admin.aircraftClasses.index'));
}
$aircraftClass = $this->aircraftClassRepository->update($request->all(), $id);
Flash::success('Aircraft Class updated successfully.');
return redirect(route('admin.aircraftClasses.index'));
}
/**
* Remove the specified AircraftClass from storage.
*
* @param int $id
*
* @return Response
*/
public function destroy($id)
{
$aircraftClass = $this->aircraftClassRepository->findWithoutFail($id);
if (empty($aircraftClass)) {
Flash::error('Aircraft Class not found');
return redirect(route('admin.aircraftClasses.index'));
}
$this->aircraftClassRepository->delete($id);
Flash::success('Aircraft Class deleted successfully.');
return redirect(route('admin.aircraftClasses.index'));
}
}

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Admin;
use App\Models\Subfleet;
use App\Http\Requests\CreateAircraftRequest;
use App\Http\Requests\UpdateAircraftRequest;
use App\Repositories\AircraftRepository;
@@ -54,7 +55,9 @@ class AircraftController extends BaseController
*/
public function create()
{
return view('admin.aircraft.create');
return view('admin.aircraft.create', [
'subfleets' => Subfleet::all()->pluck('name', 'id'),
]);
}
/**
@@ -84,9 +87,10 @@ class AircraftController extends BaseController
$avail_fares = $this->getAvailFares($aircraft);
return view('admin.aircraft.show')
->with('aircraft', $aircraft)
->with('avail_fares', $avail_fares);
return view('admin.aircraft.show', [
'aircraft' => $aircraft,
'avail_fares' => $avail_fares,
]);
}
/**
@@ -101,7 +105,10 @@ class AircraftController extends BaseController
return redirect(route('admin.aircraft.index'));
}
return view('admin.aircraft.edit')->with('aircraft', $aircraft);
return view('admin.aircraft.edit', [
'subfleets' => Subfleet::all()->pluck('name', 'id'),
'aircraft' => $aircraft,
]);
}
/**
@@ -147,9 +154,10 @@ class AircraftController extends BaseController
$aircraft->refresh();
$avail_fares = $this->getAvailFares($aircraft);
return view('admin.aircraft.fares')
->with('aircraft', $aircraft)
->with('avail_fares', $avail_fares);
return view('admin.aircraft.fares', [
'aircraft' => $aircraft,
'avail_fares' => $avail_fares,
]);
}
public function fares(Request $request)
@@ -158,7 +166,7 @@ class AircraftController extends BaseController
$aircraft = $this->aircraftRepository->findWithoutFail($id);
if (empty($aircraft)) {
return view('admin.aircraft.fares')->with('fares', []);
return view('admin.aircraft.fares', ['fares' => []]);
}
$fare_svc = app('App\Services\FareService');

View File

@@ -0,0 +1,154 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests;
use App\Models\Airline;
use App\Http\Requests\CreateSubfleetRequest;
use App\Http\Requests\UpdateSubfleetRequest;
use App\Repositories\SubfleetRepository;
use Illuminate\Http\Request;
use Flash;
use Prettus\Repository\Criteria\RequestCriteria;
use Response;
class SubfleetController extends BaseController
{
/** @var SubfleetRepository */
private $subfleetRepo;
public function __construct(SubfleetRepository $subfleetRepo)
{
$this->subfleetRepo = $subfleetRepo;
}
/**
* Display a listing of the Subfleet.
*
* @param Request $request
* @return Response
*/
public function index(Request $request)
{
$this->subfleetRepo->pushCriteria(new RequestCriteria($request));
$subfleets = $this->subfleetRepo->all();
return view('admin.subfleets.index', [
'subfleets' => $subfleets,
]);
}
/**
* Show the form for creating a new Subfleet.
*
* @return Response
*/
public function create()
{
return view('admin.subfleets.create', [
'airlines' => Airline::all()->pluck('name', 'id'),
]);
}
/**
* Store a newly created Subfleet in storage.
*
* @param CreateSubfleetRequest $request
*
* @return Response
*/
public function store(CreateSubfleetRequest $request)
{
$input = $request->all();
$subfleet = $this->subfleetRepo->create($input);
Flash::success('Subfleet saved successfully.');
return redirect(route('admin.subfleets.index'));
}
/**
* Display the specified Subfleet.
*
* @param int $id
*
* @return Response
*/
public function show($id)
{
$subfleet = $this->subfleetRepo->findWithoutFail($id);
if (empty($subfleet)) {
Flash::error('Subfleet not found');
return redirect(route('admin.subfleets.index'));
}
return view('admin.subfleets.show', ['subfleet' => $subfleet]);
}
/**
* Show the form for editing the specified Subfleet.
*
* @param int $id
*
* @return Response
*/
public function edit($id)
{
$subfleet = $this->subfleetRepo->findWithoutFail($id);
if (empty($subfleet)) {
Flash::error('Subfleet not found');
return redirect(route('admin.subfleets.index'));
}
return view('admin.subfleets.edit', [
'airlines' => Airline::all()->pluck('name', 'id'),
'subfleet' => $subfleet,
]);
}
/**
* Update the specified Subfleet in storage.
*
* @param int $id
* @param UpdateSubfleetRequest $request
*
* @return Response
*/
public function update($id, UpdateSubfleetRequest $request)
{
$subfleet = $this->subfleetRepo->findWithoutFail($id);
if (empty($subfleet)) {
Flash::error('Subfleet not found');
return redirect(route('admin.subfleets.index'));
}
$subfleet = $this->subfleetRepo->update($request->all(), $id);
Flash::success('Subfleet updated successfully.');
return redirect(route('admin.subfleets.index'));
}
/**
* Remove the specified Subfleet from storage.
*
* @param int $id
*
* @return Response
*/
public function destroy($id)
{
$subfleet = $this->subfleetRepo->findWithoutFail($id);
if (empty($subfleet)) {
Flash::error('Subfleet not found');
return redirect(route('admin.subfleets.index'));
}
$this->subfleetRepo->delete($id);
Flash::success('Subfleet deleted successfully.');
return redirect(route('admin.subfleets.index'));
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use App\Models\Subfleet;
class CreateSubfleetRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return Subfleet::$rules;
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use App\Models\Subfleet;
class UpdateSubfleetRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return Subfleet::$rules;
}
}

View File

@@ -52,22 +52,19 @@ class Aircraft extends Model
];
/**
* foreign key
* foreign keys
*/
public function class()
{
return $this->belongsTo(
'App\Models\AircraftClass',
'aircraft_class_id'
);
}
public function fares()
{
$r = $this->belongsToMany(
return $this->belongsToMany(
'App\Models\Fare',
'aircraft_fare'
)->withPivot('price', 'cost', 'capacity');
return $r;
}
public function subfleet()
{
return $this->belongsTo('App\Models\Subfleet', 'subfleet_id');
}
}

View File

@@ -1,45 +0,0 @@
<?php
namespace App\Models;
use Eloquent as Model;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class AircraftClass
* @package App\Models
* @version June 9, 2017, 8:10 pm UTC
*/
class AircraftClass extends Model
{
public $table = 'aircraft_classes';
protected $dates = ['deleted_at'];
public $fillable = [
'code',
'name',
'notes'
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts = [
'code' => 'string',
'name' => 'string',
'notes' => 'string'
];
/**
* Validation rules
*
* @var array
*/
public static $rules = [
'code' => 'required',
'name' => 'required'
];
}

View File

@@ -8,7 +8,6 @@ use Eloquent as Model;
* Class Fare
*
* @package App\Models
* @version June 10, 2017, 4:03 am UTC
*/
class Fare extends Model
{
@@ -52,6 +51,10 @@ class Fare extends Model
'name' => 'required',
];
/**
* any foreign keys
*/
public function aircraft() {
return $this->belongsToMany(
'App\Models\Aircraft',

View File

@@ -42,4 +42,11 @@ class Rank extends Model
public static $rules = [
'name' => 'unique',
];
public function subfleets() {
return $this->belongsToMany(
'App\Models\Subfleet',
'subfleet_rank'
)->withPivot('acars_pay', 'manual_pay');
}
}

60
app/Models/Subfleet.php Normal file
View File

@@ -0,0 +1,60 @@
<?php
namespace App\Models;
use Eloquent as Model;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class Subfleet
* @package App\Models
*/
class Subfleet extends Model
{
use SoftDeletes;
public $table = 'subfleets';
protected $dates = ['deleted_at'];
public $fillable = [
'airline_id',
'name',
'type'
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts = [
'airline_id' => 'integer',
'name' => 'string',
'type' => 'string'
];
/**
* Validation rules
*
* @var array
*/
public static $rules = [
];
public function airline()
{
return $this->belongsTo('App\Models\Airline', 'airline_id');
}
public function ranks()
{
return $this->belongsToMany(
'App\Models\Ranks',
'subfleet_rank'
)->withPivot('acars_pay', 'manual_pay');
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Repositories;
use App\Models\Subfleet;
use InfyOm\Generator\Common\BaseRepository;
class SubfleetRepository extends BaseRepository
{
/**
* @var array
*/
protected $fieldSearchable = [
];
/**
* Configure the Model
**/
public function model()
{
return Subfleet::class;
}
}