Add fare import/exporter #194
This commit is contained in:
@@ -174,10 +174,8 @@ class AircraftController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @throws \League\Csv\Exception
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function import(Request $request)
|
||||
@@ -189,13 +187,12 @@ class AircraftController extends Controller
|
||||
|
||||
if ($request->isMethod('post')) {
|
||||
ImportRequest::validate($request);
|
||||
|
||||
$path = Storage::putFileAs(
|
||||
'import', $request->file('csv_file'), 'aircraft'
|
||||
'import', $request->file('csv_file'), 'import_aircraft.csv'
|
||||
);
|
||||
|
||||
$path = storage_path('app/'.$path);
|
||||
Log::info('Uploaded flights import file to '.$path);
|
||||
Log::info('Uploaded aircraft import file to '.$path);
|
||||
$logs = $this->importSvc->importAircraft($path);
|
||||
}
|
||||
|
||||
@@ -208,7 +205,7 @@ class AircraftController extends Controller
|
||||
* @param Aircraft|null $aircraft
|
||||
* @return mixed
|
||||
*/
|
||||
protected function return_expenses_view(?Aircraft $aircraft)
|
||||
protected function return_expenses_view(Aircraft $aircraft)
|
||||
{
|
||||
$aircraft->refresh();
|
||||
|
||||
|
||||
@@ -198,7 +198,6 @@ class AirportController extends Controller
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @throws \League\Csv\Exception
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function import(Request $request)
|
||||
@@ -210,13 +209,12 @@ class AirportController extends Controller
|
||||
|
||||
if ($request->isMethod('post')) {
|
||||
ImportRequest::validate($request);
|
||||
|
||||
$path = Storage::putFileAs(
|
||||
'import', $request->file('csv_file'), 'airports'
|
||||
'import', $request->file('csv_file'), 'import_airports.csv'
|
||||
);
|
||||
|
||||
$path = storage_path('app/'.$path);
|
||||
Log::info('Uploaded airports import file to '.$path);
|
||||
Log::info('Uploaded airport import file to '.$path);
|
||||
$logs = $this->importSvc->importAirports($path);
|
||||
}
|
||||
|
||||
|
||||
@@ -198,7 +198,6 @@ class ExpenseController extends Controller
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @throws \League\Csv\Exception
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function import(Request $request)
|
||||
@@ -210,9 +209,8 @@ class ExpenseController extends Controller
|
||||
|
||||
if ($request->isMethod('post')) {
|
||||
ImportRequest::validate($request);
|
||||
|
||||
$path = Storage::putFileAs(
|
||||
'import', $request->file('csv_file'), 'expenses'
|
||||
'import', $request->file('csv_file'), 'import_expenses.csv'
|
||||
);
|
||||
|
||||
$path = storage_path('app/'.$path);
|
||||
|
||||
@@ -3,13 +3,18 @@
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Requests\CreateFareRequest;
|
||||
use App\Http\Requests\ImportRequest;
|
||||
use App\Http\Requests\UpdateFareRequest;
|
||||
use App\Interfaces\Controller;
|
||||
use App\Repositories\FareRepository;
|
||||
use App\Services\ExportService;
|
||||
use App\Services\ImportService;
|
||||
use Flash;
|
||||
use Illuminate\Http\Request;
|
||||
use Log;
|
||||
use Prettus\Repository\Criteria\RequestCriteria;
|
||||
use Response;
|
||||
use Storage;
|
||||
|
||||
/**
|
||||
* Class FareController
|
||||
@@ -17,16 +22,20 @@ use Response;
|
||||
*/
|
||||
class FareController extends Controller
|
||||
{
|
||||
private $fareRepository;
|
||||
private $fareRepo,
|
||||
$importSvc;
|
||||
|
||||
/**
|
||||
* FareController constructor.
|
||||
* @param FareRepository $fareRepo
|
||||
* @param ImportService $importSvc
|
||||
*/
|
||||
public function __construct(
|
||||
FareRepository $fareRepo
|
||||
FareRepository $fareRepo,
|
||||
ImportService $importSvc
|
||||
) {
|
||||
$this->fareRepository = $fareRepo;
|
||||
$this->fareRepo = $fareRepo;
|
||||
$this->importSvc = $importSvc;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -37,8 +46,8 @@ class FareController extends Controller
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$this->fareRepository->pushCriteria(new RequestCriteria($request));
|
||||
$fares = $this->fareRepository->all();
|
||||
$this->fareRepo->pushCriteria(new RequestCriteria($request));
|
||||
$fares = $this->fareRepo->all();
|
||||
|
||||
return view('admin.fares.index')
|
||||
->with('fares', $fares);
|
||||
@@ -63,9 +72,9 @@ class FareController extends Controller
|
||||
public function store(CreateFareRequest $request)
|
||||
{
|
||||
$input = $request->all();
|
||||
$fare = $this->fareRepository->create($input);
|
||||
Flash::success('Fare saved successfully.');
|
||||
$fare = $this->fareRepo->create($input);
|
||||
|
||||
Flash::success('Fare saved successfully.');
|
||||
return redirect(route('admin.fares.index'));
|
||||
}
|
||||
|
||||
@@ -76,10 +85,9 @@ class FareController extends Controller
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
$fare = $this->fareRepository->findWithoutFail($id);
|
||||
$fare = $this->fareRepo->findWithoutFail($id);
|
||||
if (empty($fare)) {
|
||||
Flash::error('Fare not found');
|
||||
|
||||
return redirect(route('admin.fares.index'));
|
||||
}
|
||||
|
||||
@@ -93,10 +101,9 @@ class FareController extends Controller
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$fare = $this->fareRepository->findWithoutFail($id);
|
||||
$fare = $this->fareRepo->findWithoutFail($id);
|
||||
if (empty($fare)) {
|
||||
Flash::error('Fare not found');
|
||||
|
||||
return redirect(route('admin.fares.index'));
|
||||
}
|
||||
|
||||
@@ -112,16 +119,15 @@ class FareController extends Controller
|
||||
*/
|
||||
public function update($id, UpdateFareRequest $request)
|
||||
{
|
||||
$fare = $this->fareRepository->findWithoutFail($id);
|
||||
$fare = $this->fareRepo->findWithoutFail($id);
|
||||
if (empty($fare)) {
|
||||
Flash::error('Fare not found');
|
||||
|
||||
return redirect(route('admin.fares.index'));
|
||||
}
|
||||
|
||||
$fare = $this->fareRepository->update($request->all(), $id);
|
||||
Flash::success('Fare updated successfully.');
|
||||
$fare = $this->fareRepo->update($request->all(), $id);
|
||||
|
||||
Flash::success('Fare updated successfully.');
|
||||
return redirect(route('admin.fares.index'));
|
||||
}
|
||||
|
||||
@@ -132,16 +138,63 @@ class FareController extends Controller
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$fare = $this->fareRepository->findWithoutFail($id);
|
||||
$fare = $this->fareRepo->findWithoutFail($id);
|
||||
if (empty($fare)) {
|
||||
Flash::error('Fare not found');
|
||||
|
||||
return redirect(route('admin.fares.index'));
|
||||
}
|
||||
|
||||
$this->fareRepository->delete($id);
|
||||
Flash::success('Fare deleted successfully.');
|
||||
$this->fareRepo->delete($id);
|
||||
|
||||
Flash::success('Fare deleted successfully.');
|
||||
return redirect(route('admin.fares.index'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Run the aircraft exporter
|
||||
* @param Request $request
|
||||
* @return \Symfony\Component\HttpFoundation\BinaryFileResponse
|
||||
* @throws \League\Csv\Exception
|
||||
*/
|
||||
public function export(Request $request)
|
||||
{
|
||||
$exporter = app(ExportService::class);
|
||||
$fares = $this->fareRepo->all();
|
||||
|
||||
$path = $exporter->exportFares($fares);
|
||||
return response()
|
||||
->download($path, 'fares.csv', [
|
||||
'content-type' => 'text/csv',
|
||||
])
|
||||
->deleteFileAfterSend(true);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function import(Request $request)
|
||||
{
|
||||
$logs = [
|
||||
'success' => [],
|
||||
'failed' => [],
|
||||
];
|
||||
|
||||
if ($request->isMethod('post')) {
|
||||
ImportRequest::validate($request);
|
||||
$path = Storage::putFileAs(
|
||||
'import', $request->file('csv_file'), 'import_fares.csv'
|
||||
);
|
||||
|
||||
$path = storage_path('app/'.$path);
|
||||
Log::info('Uploaded fares import file to '.$path);
|
||||
$logs = $this->importSvc->importFares($path);
|
||||
}
|
||||
|
||||
return view('admin.fares.import', [
|
||||
'logs' => $logs,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -334,7 +334,7 @@ class FlightController extends Controller
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @throws \League\Csv\Exception
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function import(Request $request)
|
||||
{
|
||||
@@ -345,7 +345,7 @@ class FlightController extends Controller
|
||||
|
||||
if ($request->isMethod('post')) {
|
||||
$path = Storage::putFileAs(
|
||||
'import', $request->file('csv_file'), 'flights'
|
||||
'import', $request->file('csv_file'), 'import_flights.csv'
|
||||
);
|
||||
|
||||
$path = storage_path('app/'.$path);
|
||||
|
||||
@@ -245,7 +245,6 @@ class SubfleetController extends Controller
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @throws \League\Csv\Exception
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function import(Request $request)
|
||||
@@ -259,11 +258,11 @@ class SubfleetController extends Controller
|
||||
ImportRequest::validate($request);
|
||||
|
||||
$path = Storage::putFileAs(
|
||||
'import', $request->file('csv_file'), 'subfleets'
|
||||
'import', $request->file('csv_file'), 'import_subfleets.csv'
|
||||
);
|
||||
|
||||
$path = storage_path('app/'.$path);
|
||||
Log::info('Uploaded flights import file to '.$path);
|
||||
Log::info('Uploaded subfleets import file to '.$path);
|
||||
$logs = $this->importSvc->importSubfleets($path);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user