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