netgescon-master/netgescon-laravel/app/Http/Controllers/SuperAdmin/ComuniController.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);
}
}