first
This commit is contained in:
50
app/Http/Controllers/Admin/Setup/PusatImportController.php
Normal file
50
app/Http/Controllers/Admin/Setup/PusatImportController.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin\Setup;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Admin\Setup\ImportPusatRequest;
|
||||
use App\Models\Dun;
|
||||
use App\Models\Election;
|
||||
use App\Services\Admin\PusatImportService;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class PusatImportController extends Controller
|
||||
{
|
||||
public function create(): View
|
||||
{
|
||||
return view('admin.setup.import.create', [
|
||||
'elections' => Election::query()->orderByDesc('id')->get(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(ImportPusatRequest $request, PusatImportService $importService): RedirectResponse
|
||||
{
|
||||
/** @var Election $election */
|
||||
$election = Election::query()->findOrFail($request->validated('election_id'));
|
||||
|
||||
$dunCode = strtoupper(trim((string) $request->validated('dun_code')));
|
||||
$dunName = trim((string) $request->validated('dun_name'));
|
||||
|
||||
$dun = Dun::query()->updateOrCreate(
|
||||
['election_id' => $election->id, 'code' => $dunCode],
|
||||
['name' => $dunName],
|
||||
);
|
||||
|
||||
$result = $importService->import($election, $dun, $request->file('file'));
|
||||
|
||||
$message = "Import selesai: {$result['imported']} Pusat Mengundi, {$result['salurans']} Saluran dicipta untuk DUN {$dunCode} - {$dunName}.";
|
||||
|
||||
if (! empty($result['errors'])) {
|
||||
$message .= ' '.count($result['errors']).' baris gagal.';
|
||||
|
||||
return redirect()->route('admin.setup.import.create')
|
||||
->with('status', $message)
|
||||
->with('import_errors', $result['errors']);
|
||||
}
|
||||
|
||||
return redirect()->route('admin.setup.pusat.index')
|
||||
->with('status', $message);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user