added import export for categories

This commit is contained in:
Denis Duliçi
2021-02-14 12:52:00 +03:00
parent 43bafc9afd
commit 80be6cf339
6 changed files with 99 additions and 4 deletions

View 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',
];
}
}

View File

@@ -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));

View 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();
}
}