BUB-7 Automobili: Pulizia su controller e gestione dei dati sul model Auto. nuovo form rifornimento TODO: creare migration per Rifornimento

This commit is contained in:
Amministratore 2023-03-30 11:22:43 +02:00
parent cc35fb057a
commit 2be78bfcde
4 changed files with 124 additions and 27 deletions

View File

@ -3,19 +3,17 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\Auto;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class AutoController extends Controller class AutoController extends Controller
{ {
// //
public static function index() public function index()
{ {
// lista le auto inserite nel gestionale // lista le auto inserite nel gestionale
$lista=DB::table('autos')->select(['targa','marca','modello','id'])->get(); return view('auto.list',['title'=>'Automobile', 'automobili'=>Auto::getAutoList()]);
// dd($lista); // debug
return view('auto.list',['title'=>'Automobile', 'automobili'=>$lista]);
} }
public function newAuto() public function newAuto()
@ -26,49 +24,43 @@ class AutoController extends Controller
public function saveAuto(Request $request) public function saveAuto(Request $request)
{ {
// inserisce l'auto nel database e torna alla lista o ad un nuovo inserimento in base // Salva una nuova auto
// dd($request); Auto::saveAuto($request);
DB::table('autos')->insert([
'targa'=>$request['targa'],
'marca'=>$request['marca'],
'modello'=>$request['modello'],
'cilindrata'=>$request['cilindrata'],
'cvfiscali'=>$request['cvfiscali'],
'alimentazione'=>$request['alimentazione'],
'ntelaio'=>$request['ntelaio'],
'nmotore'=>$request['nmotore'],
'data_acquisto'=>$request['data_acquisto'],
'note'=>$request['note'],
]);
if ($request['another']=='on') if ($request['another']=='on')
{ {
return redirect(route('auto_new')); return redirect(route('auto_new'));
} }
else { else
{
return redirect(route('auto_list')); return redirect(route('auto_list'));
} }
} }
public function delAuto(Request $id) public function delAuto(Request $id)
{ {
DB::table('autos')->delete($id['id']); Auto::delAuto($id);
return redirect(route('auto_list')); return redirect(route('auto_list'));
} }
public function getAutoDetails(request $id) public function getAutoDetails(request $id)
{ {
// Ritorna i dettagli dell'auto // Ritorna i dettagli dell'auto
$dettagli=DB::table('autos')->find($id['id']);
return view('auto.detail',[ return view('auto.detail',[
'dettagli' => $dettagli, 'dettagli' => Auto::getAutoById($id['id']),
]); ]);
} }
public function getTCOAuto(request $id) public function getTCOAuto(request $id)
{ {
// Ritorna la somma di tutti i costi sostenuti per l'auto
}
public function rifornimentoAuto(Request $id)
{
return view('auto.rifornimento',['id'=>$id['id'],'dettagli'=>Auto::getAutoById($id['id'])]);
} }
} }

View File

@ -4,8 +4,41 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Auto extends Model class Auto extends Model
{ {
use HasFactory; use HasFactory;
public function getAutoById($id)
{
return $dettagli=DB::table('autos')->find($id);
}
public function getAutoList()
{
return $lista=DB::table('autos')->select(['targa','marca','modello','id'])->get();
}
public function saveAuto($request)
{
DB::table('autos')->insert([
'targa'=>$request['targa'],
'marca'=>$request['marca'],
'modello'=>$request['modello'],
'cilindrata'=>$request['cilindrata'],
'cvfiscali'=>$request['cvfiscali'],
'alimentazione'=>$request['alimentazione'],
'ntelaio'=>$request['ntelaio'],
'nmotore'=>$request['nmotore'],
'data_acquisto'=>$request['data_acquisto'],
'note'=>$request['note'],
]);
}
public function delAuto($id)
{
DB::table('autos')->delete($id['id']);
}
} }

View File

@ -0,0 +1,71 @@
@extends('admin')
@section('content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Registrazione rifornimento</h1>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Rifornimento auto {{ $dettagli->marca;}} {{ $dettagli->modello; }} {{ $dettagli->targa; }}
</div>
<div class="panel-body">
<!-- Form -->
<form action="" method="POST">
@csrf
<div class="row">
<div class="col-xs-6">
<label for="data" class="form-label">Data</label>
<input type="date" class="form-control" id="data" name="data" value="{{ date('Y-m-d');}}">
</div>
<div class="col-xs-6">
<label for="km" class="form-label">Km</label>
<input type="text" class="form-control" id="km" name="km">
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label for="eurolitro" class="form-label">Costo al litro</label>
<input type="text" class="form-control" id="eurolitro" name="eurolitro">
</div>
<div class="col-xs-6">
<label for="litri" class="form-label">Litri</label>
<input type="text" class="form-control" id="litri" name="litri">
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label for="totale" class="form-label">Importo totale</label>
<input type="text" class="form-control" id="totale" name="totale">
</div>
<div class="col-xs-6">
<label for="distributore" class="form-label">Distributore</label>
<input type="text" class="form-control" id="distributore" name="distributore">
</div>
</div>
<div class="row">
<div class="col-xs-12">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
<!-- /Form -->
</div>
</div>
</div>
</div>
<!-- /.col-lg-12 -->
@endsection
@section('script')
<script>
$(document).ready(function() {
$('#automobili').DataTable({
responsive: true
});
});
</script>
@endsection

View File

@ -70,6 +70,7 @@ Route::get('/', [MovimentiController::class,'dashboard']);
Route::post('auto/new', [AutoController::class, 'saveAuto'])->name('auto_save'); Route::post('auto/new', [AutoController::class, 'saveAuto'])->name('auto_save');
Route::get('auto/delete', [AutoController::class, 'delAuto']); Route::get('auto/delete', [AutoController::class, 'delAuto']);
Route::get('auto/detail', [AutoController::class, 'getAutoDetails']); Route::get('auto/detail', [AutoController::class, 'getAutoDetails']);
Route::get('auto/rifornimento', [AutoController::class, 'rifornimentoAuto'])->name('auto_rifornimento');
/// TEST routes /// TEST routes
Route::get('fullcalender', [FullCalenderController::class, 'index']); Route::get('fullcalender', [FullCalenderController::class, 'index']);