BUB-7 Automobili: Creato funzionalità principali. TODO: Visualizzazione lista operazioni e Implementazione importi in movimenti

This commit is contained in:
Amministratore 2023-03-30 16:01:39 +02:00
parent 9fa9b6681c
commit 9f0ee469c8
17 changed files with 366 additions and 32 deletions

View File

@ -3,8 +3,11 @@
namespace App\Http\Controllers;
use App\Models\Accessori;
use App\Models\Auto;
use App\Models\Manutenzione;
use App\Models\Operazione;
use App\Models\Revisione;
use App\Models\Rifornimento;
use Illuminate\Http\Request;
@ -66,10 +69,46 @@ class AutoController extends Controller
return view('auto.rifornimento',['id'=>$id['id'],'dettagli'=>Auto::getAutoById($id['id'])]);
}
public function manutenzioneAuto(Request $id)
{
return view('auto.manutenzione',['id'=>$id['id'],'dettagli'=>Auto::getAutoById($id['id'])]);
}
public function revisioneAuto(Request $id)
{
return view('auto.revisione',['id'=>$id['id'],'dettagli'=>Auto::getAutoById($id['id'])]);
}
public function accessoriAuto(Request $id)
{
return view('auto.accessori',['id'=>$id['id'],'dettagli'=>Auto::getAutoById($id['id'])]);
}
public function saveRifornimento(Request $request)
{
$id=Operazione::saveOperazione($request);
Rifornimento::saveRifornimento($id,$request);
return redirect(route('auto_list'));
}
public function saveManutenzione(Request $request)
{
$id=Operazione::saveOperazione($request);
Manutenzione::saveManutenzione($id,$request);
return redirect(route('auto_list'));
}
public function saveAccessori(Request $request)
{
$id=Operazione::saveOperazione($request);
Accessori::saveAccessori($id,$request);
return redirect(route('auto_list'));
}
public function saveRevisione(Request $request)
{
$id=Operazione::saveOperazione($request);
Revisione::saveRevisione($id,$request);
return redirect(route('auto_list'));
}
}

View File

@ -4,8 +4,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Accessori extends Model
{
use HasFactory;
public static function saveAccessori($id,$data)
{
DB::table('accessoris')->insert([
'fk_operazione_id'=>$id,
'descrizione'=>$data['descrizione'],
]);
}
}

View File

@ -4,8 +4,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Manutenzione extends Model
{
use HasFactory;
public static function saveRevisione($id,$data)
{
DB::table('manutenziones')->insert([
'fk_operazione_id'=>$id,
'descrizione'=>$data['descrizione'],
]);
}
}

View File

@ -4,8 +4,20 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Revisione extends Model
{
use HasFactory;
public static function saveRevisione($id,$data)
{
DB::table('revisiones')->insert([
'fk_operazione_id'=>$id,
'descrizione'=>$data['descrizione'],
'centrorevisione'=>$data['centrorevisione'],
'superata'=>$data['superata'],
'dataproxrevisione'=>$data['dataproxrevisione'],
]);
}
}

View File

@ -17,7 +17,7 @@ class Rifornimento extends Model
'eurolitro'=>$data['eurolitro'],
'litri'=>$data['litri'],
'distributore'=>$data['distributore'],
'operazione_id'=>$id
'fk_operazione_id'=>$id
]);
}
}

View File

@ -17,7 +17,7 @@ class CreateOperazionesTable extends Migration
$table->id();
$table->timestamps();
$table->unsignedBigInteger('fk_auto_id');
$table->foreign('fk_auto_id')->references('id')->on('autos');
$table->foreign('fk_auto_id')->references('id')->on('autos')->cascadeOnDelete();
$table->date('data');
$table->bigInteger('km');
$table->double('importo',10,2);

View File

@ -19,8 +19,8 @@ class CreateRifornimentosTable extends Migration
$table->double('eurolitro',10,2);
$table->double('litri',10,2);
$table->string('distributore',255);
$table->unsignedBigInteger('fk_operazione');
$table->foreign('fk_operazione')->references('id')->on('operaziones');
$table->unsignedBigInteger('fk_operazione_id');
$table->foreign('fk_operazione_id')->references('id')->on('operaziones')->cascadeOnDelete();
});
}

View File

@ -16,6 +16,9 @@ class CreateManutenzionesTable extends Migration
Schema::create('manutenziones', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->longText('descrizione');
$table->unsignedBigInteger('fk_operazione_id');
$table->foreign('fk_operazione_id')->references('id')->on('operaziones')->cascadeOnDelete();
});
}

View File

@ -16,6 +16,12 @@ class CreateRevisionesTable extends Migration
Schema::create('revisiones', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->unsignedBigInteger('fk_operazione_id');
$table->foreign('fk_operazione_id')->references('id')->on('operaziones')->cascadeOnDelete();
$table->longText('descrizione');
$table->string('centrorevisione',255);
$table->boolean('superata');
$table->date('dataproxrevisione');
});
}

View File

@ -16,6 +16,9 @@ class CreateAccessorisTable extends Migration
Schema::create('accessoris', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->unsignedBigInteger('fk_operazione_id');
$table->foreign('fk_operazione_id')->references('id')->on('operaziones')->cascadeOnDelete();
$table->longText('descrizione');
});
}

View File

@ -0,0 +1,63 @@
@extends('admin')
@section('content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Registrazione Accessori/Acquisti</h1>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Accessori/Acquisti 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="importo" class="form-label">Importo totale</label>
<input type="text" class="form-control" id="importo" name="importo">
</div>
<div class="col-xs-6">
<label for="descrizione" class="form-label">Descrizione</label>
<input type="text" class="form-control" id="descrizione" name="descrizione">
</div>
</div>
<div class="row">
<div class="col-xs-12">
<input type="hidden" name="type" value="accessori">
<input type="hidden" name="auto" value="{{ $dettagli->id; }}">
<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

@ -16,31 +16,65 @@
<!-- Form -->
<form action="" method="POST">
@csrf
<div class="mb-3">
<label for="marca" class="form-label">Marca</label>
<input type="text" class="form-control" id="marca" name="marca">
<label for="modello" class="form-label">Modello</label>
<input type="text" class="form-control" id="modello" name="modello">
<label for="targa" class="form-label">Targa</label>
<input type="text" class="form-control" id="targa" name="targa">
<label for="alimentazione" class="form-label">Alimentazione</label>
<input type="text" class="form-control" id="alimentazione" name="alimentazione">
<label for="cilindrata" class="form-label">Cilindrata</label>
<input type="text" class="form-control" id="cilindrata" name="cilindrata">
<label for="cvfiscali" class="form-label">Cavalli Fiscali</label>
<input type="text" class="form-control" id="cvfiscali" name="cvfiscali">
<label for="ntelaio" class="form-label">Num. Telaio</label>
<input type="text" class="form-control" id="ntelaio" name="ntelaio">
<label for="nmotore" class="form-label">Num. Motore</label>
<input type="text" class="form-control" id="nmotore" name="nmotore">
<label for="data_acquisto" class="form-label">Data di Acquisto</label>
<input type="text" class="form-control" id="data_acquisto" name="data_acquisto">
<label for="note" class="form-label">Note</label>
<input type="text" class="form-control" id="note" name="note">
<label for="another" class="form-label">Inserisci un altro</label>
<input type="checkbox" class="form-control" id="another" name="another">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
<div class="row">
<div class="col-xs-6">
<label for="marca" class="form-label">Marca</label>
<input type="text" class="form-control" id="marca" name="marca">
</div>
<div class="col-xs-6">
<label for="modello" class="form-label">Modello</label>
<input type="text" class="form-control" id="modello" name="modello">
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label for="targa" class="form-label">Targa</label>
<input type="text" class="form-control" id="targa" name="targa">
</div>
<div class="col-xs-6">
<label for="alimentazione" class="form-label">Alimentazione</label>
<input type="text" class="form-control" id="alimentazione" name="alimentazione">
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label for="cilindrata" class="form-label">Cilindrata</label>
<input type="text" class="form-control" id="cilindrata" name="cilindrata">
</div>
<div class="col-xs-6">
<label for="cvfiscali" class="form-label">Cavalli Fiscali</label>
<input type="text" class="form-control" id="cvfiscali" name="cvfiscali">
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label for="ntelaio" class="form-label">Num. Telaio</label>
<input type="text" class="form-control" id="ntelaio" name="ntelaio">
</div>
<div class="col-xs-6">
<label for="nmotore" class="form-label">Num. Motore</label>
<input type="text" class="form-control" id="nmotore" name="nmotore">
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label for="data_acquisto" class="form-label">Data di Acquisto</label>
<input type="date" class="form-control" id="data_acquisto" name="data_acquisto">
</div>
<div class="col-xs-6">
<label for="note" class="form-label">Note</label>
<input type="text" class="form-control" id="note" name="note">
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label for="another" class="form-label">Inserisci un altro</label>
<input type="checkbox" class="form-control" id="another" name="another">
</div>
<div class="col-xs-6">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
<!-- /Form -->
</div>

View File

@ -29,6 +29,8 @@
<th>Marca</th>
<th>Modello</th>
<th>Targa</th>
<th>Operazioni</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
@ -37,6 +39,12 @@
<td><a href="auto/detail?id={{ $automobile->id }}">{{ $automobile->marca; }}</a></td>
<td>{{ $automobile->modello; }}</td>
<td>{{ $automobile->targa; }}</td>
<td>
<a class="btn btn-primary" href="auto/rifornimento?id={{ $automobile->id; }}">Rifornimento</a>&nbsp;
<a class="btn btn-primary" href="auto/revisione?id={{ $automobile->id; }}">Revisione</a>&nbsp;
<a class="btn btn-primary" href="auto/manutenzione?id={{ $automobile->id; }}">Manutenzione</a>&nbsp;
<a class="btn btn-primary" href="auto/accessori?id={{ $automobile->id; }}">Accessori</a>&nbsp;
</td>
<td>
<a class="btn btn-primary" href="auto/modify?id={{ $automobile->id; }}"><i class="fa fa-pencil-square-o fw"></i></a>&nbsp;
<a class="btn btn-danger" href="auto/delete?id={{ $automobile->id; }}"><i class="fa fa-trash-o fa-fw"></i></a>&nbsp;

View File

@ -0,0 +1,63 @@
@extends('admin')
@section('content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Registrazione manutenzione</h1>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Manutenzione 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="importo" class="form-label">Importo totale</label>
<input type="text" class="form-control" id="importo" name="importo">
</div>
<div class="col-xs-6">
<label for="descrizione" class="form-label">Descrizione</label>
<input type="text" class="form-control" id="descrizione" name="descrizione">
</div>
</div>
<div class="row">
<div class="col-xs-12">
<input type="hidden" name="type" value="manutenzione">
<input type="hidden" name="auto" value="{{ $dettagli->id; }}">
<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

@ -0,0 +1,80 @@
@extends('admin')
@section('content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Registrazione Revisione {{ $dettagli->targa; }}</h1>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Revisione 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="importo" class="form-label">Importo totale</label>
<input type="text" class="form-control" id="importo" name="importo">
</div>
<div class="col-xs-6">
<label for="descrizione" class="form-label">Descrizione</label>
<input type="text" class="form-control" id="descrizione" name="descrizione">
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label for="centrorevisione" class="form-label">Centro Revisione</label>
<input type="text" class="form-control" id="centrorevisione" name="centrorevisione">
</div>
<div class="col-xs-6">
<label for="superata" class="form-label">Revisione superata</label>
<input type="radio" id="superata" name="superata" value="1" checked> Superata
<input type="radio" id="superata" name="superata" value="0"> Non superata
</div>
</div>
<div class="row">
<div class="col-xs-12">
<label for="dataproxrevisione" class="form-label">Data prossima revisione</label>
<input type="date" class="form-control" id="dataproxrevisione" name="dataproxrevisione">
</div>
</div>
<div class="row">
<div class="col-xs-12">
<input type="hidden" name="type" value="accessori">
<input type="hidden" name="auto" value="{{ $dettagli->id; }}">
<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

@ -38,8 +38,8 @@
</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">
<label for="importo" class="form-label">Importo totale</label>
<input type="text" class="form-control" id="importo" name="importo">
</div>
<div class="col-xs-6">
<label for="distributore" class="form-label">Distributore</label>

View File

@ -72,7 +72,12 @@ Route::get('/', [MovimentiController::class,'dashboard']);
Route::get('auto/detail', [AutoController::class, 'getAutoDetails']);
Route::get('auto/rifornimento', [AutoController::class, 'rifornimentoAuto'])->name('auto_rifornimento');
Route::post('auto/rifornimento', [AutoController::class, 'saveRifornimento']);
Route::get('auto/revisione', [AutoController::class, 'revisioneAuto']);
Route::post('auto/revisione', [AutoController::class, 'saveRevisione']);
Route::get('auto/manutenzione', [AutoController::class, 'manutenzioneAuto']);
Route::post('auto/manutenzione', [AutoController::class, 'saveManutenzione']);
Route::get('auto/accessori', [AutoController::class, 'accessoriAuto']);
Route::post('auto/accessori', [AutoController::class, 'saveAccessori']);
/// TEST routes
Route::get('fullcalender', [FullCalenderController::class, 'index']);