103 lines
2.7 KiB
PHP
103 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\SuperAdmin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
class ComuniController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*/
|
|
public function index()
|
|
{
|
|
$comuni = DB::table('comuni')->paginate(50);
|
|
|
|
return view('superadmin.comuni.index', compact('comuni'));
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*/
|
|
public function create()
|
|
{
|
|
return view('superadmin.comuni.create');
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
$validated = $request->validate([
|
|
'codice_istat' => 'required|string|max:10|unique:comuni',
|
|
'denominazione' => 'required|string|max:255',
|
|
'provincia' => 'required|string|max:2',
|
|
'regione' => 'required|string|max:255',
|
|
'cap' => 'required|string|max:5',
|
|
'prefisso' => 'nullable|string|max:10',
|
|
'codice_catastale' => 'nullable|string|max:4',
|
|
]);
|
|
|
|
DB::table('comuni')->insert(array_merge($validated, [
|
|
'created_at' => now(),
|
|
'updated_at' => now(),
|
|
]));
|
|
|
|
return redirect()->route('superadmin.comuni.index')
|
|
->with('success', 'Comune aggiunto con successo');
|
|
}
|
|
|
|
/**
|
|
* Import comuni from CSV/Excel file
|
|
*/
|
|
public function import(Request $request)
|
|
{
|
|
$request->validate([
|
|
'file' => 'required|file|mimes:csv,xlsx,xls'
|
|
]);
|
|
|
|
$file = $request->file('file');
|
|
$path = $file->store('imports');
|
|
|
|
// Qui implementeremo l'import dei comuni
|
|
// Per ora restituiamo un messaggio di successo
|
|
|
|
return redirect()->route('superadmin.comuni.index')
|
|
->with('success', 'Import comuni completato');
|
|
}
|
|
|
|
/**
|
|
* Search comuni
|
|
*/
|
|
public function search(Request $request)
|
|
{
|
|
$search = $request->get('search');
|
|
|
|
$comuni = DB::table('comuni')
|
|
->where('denominazione', 'LIKE', "%{$search}%")
|
|
->orWhere('provincia', 'LIKE', "%{$search}%")
|
|
->orWhere('codice_istat', 'LIKE', "%{$search}%")
|
|
->paginate(50);
|
|
|
|
return view('superadmin.comuni.index', compact('comuni', 'search'));
|
|
}
|
|
|
|
/**
|
|
* Get comune data for AJAX
|
|
*/
|
|
public function getComune($id)
|
|
{
|
|
$comune = DB::table('comuni')->where('id', $id)->first();
|
|
|
|
if (!$comune) {
|
|
return response()->json(['error' => 'Comune non trovato'], 404);
|
|
}
|
|
|
|
return response()->json($comune);
|
|
}
|
|
}
|