added import export for categories
This commit is contained in:
parent
43bafc9afd
commit
80be6cf339
30
app/Exports/Settings/Categories.php
Normal file
30
app/Exports/Settings/Categories.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports\Settings;
|
||||
|
||||
use App\Abstracts\Export;
|
||||
use App\Models\Setting\Category as Model;
|
||||
|
||||
class Categories extends Export
|
||||
{
|
||||
public function collection()
|
||||
{
|
||||
$model = Model::usingSearchString(request('search'));
|
||||
|
||||
if (!empty($this->ids)) {
|
||||
$model->whereIn('id', (array) $this->ids);
|
||||
}
|
||||
|
||||
return $model->cursor();
|
||||
}
|
||||
|
||||
public function fields(): array
|
||||
{
|
||||
return [
|
||||
'name',
|
||||
'type',
|
||||
'color',
|
||||
'enabled',
|
||||
];
|
||||
}
|
||||
}
|
@ -3,7 +3,10 @@
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Exports\Settings\Categories as Export;
|
||||
use App\Http\Requests\Common\Import as ImportRequest;
|
||||
use App\Http\Requests\Setting\Category as Request;
|
||||
use App\Imports\Settings\Categories as Import;
|
||||
use App\Jobs\Setting\CreateCategory;
|
||||
use App\Jobs\Setting\DeleteCategory;
|
||||
use App\Jobs\Setting\UpdateCategory;
|
||||
@ -88,6 +91,34 @@ class Categories extends Controller
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
* @param ImportRequest $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('categories.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.categories', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['settings', 'categories']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
@ -200,6 +231,16 @@ class Categories extends Controller
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Export the specified resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function export()
|
||||
{
|
||||
return $this->exportExcel(new Export, trans_choice('general.categories', 2));
|
||||
}
|
||||
|
||||
public function category(Request $request)
|
||||
{
|
||||
$category = $this->dispatch(new CreateCategory($request));
|
||||
|
20
app/Imports/Settings/Categories.php
Normal file
20
app/Imports/Settings/Categories.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Imports\Settings;
|
||||
|
||||
use App\Abstracts\Import;
|
||||
use App\Http\Requests\Setting\Category as Request;
|
||||
use App\Models\Setting\Category as Model;
|
||||
|
||||
class Categories extends Import
|
||||
{
|
||||
public function model(array $row)
|
||||
{
|
||||
return new Model($row);
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return (new Request())->rules();
|
||||
}
|
||||
}
|
BIN
public/files/import/categories.xlsx
Normal file
BIN
public/files/import/categories.xlsx
Normal file
Binary file not shown.
@ -2,11 +2,13 @@
|
||||
|
||||
@section('title', trans_choice('general.categories', 2))
|
||||
|
||||
@can('create-settings-categories')
|
||||
@section('new_button')
|
||||
@can('create-settings-categories')
|
||||
<a href="{{ route('categories.create') }}" class="btn btn-success btn-sm">{{ trans('general.add_new') }}</a>
|
||||
@endsection
|
||||
<a href="{{ route('import.create', ['settings', 'categories']) }}" class="btn btn-white btn-sm">{{ trans('import.import') }}</a>
|
||||
@endcan
|
||||
<a href="{{ route('categories.export', request()->input()) }}" class="btn btn-white btn-sm">{{ trans('general.export') }}</a>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="card">
|
||||
|
@ -145,6 +145,8 @@ Route::group(['prefix' => 'banking'], function () {
|
||||
|
||||
Route::group(['prefix' => 'settings'], function () {
|
||||
Route::post('categories/category', 'Settings\Categories@category');
|
||||
Route::post('categories/import', 'Settings\Categories@import')->name('categories.import');
|
||||
Route::get('categories/export', 'Settings\Categories@export')->name('categories.export');
|
||||
Route::get('categories/{category}/enable', 'Settings\Categories@enable')->name('categories.enable');
|
||||
Route::get('categories/{category}/disable', 'Settings\Categories@disable')->name('categories.disable');
|
||||
Route::resource('categories', 'Settings\Categories');
|
||||
|
Loading…
x
Reference in New Issue
Block a user