Multiple fuels

master
Goncalo Bras 2017-06-22 22:31:07 +01:00
parent bf89b86378
commit f2bc0aa599
9 changed files with 160 additions and 63 deletions

10
laravel/app/Fuel.php Normal file
View File

@ -0,0 +1,10 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Fuel extends Model
{
protected $table = 'fuel';
}

10
laravel/app/Fuels.php Normal file
View File

@ -0,0 +1,10 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Fuels extends Model
{
protected $table = 'fuels';
}

View File

@ -10,6 +10,8 @@ use App\Vehicle;
use App\Vehicles;
use App\User;
use App\Station;
use App\Fuel;
use App\Fuels;
use Validator;
use Hash;
@ -37,14 +39,22 @@ class UserPageController extends Controller
public function add(Request $request)
{
//$fuels =$request->upFuelType;
$data = ['brand' => $request->brand, 'model' => $request->model, 'fuel' => $request->fuel, 'consumption' => $request->consumption];
$data = ['brand' => $request->brand, 'model' => $request->model, 'consumption' => $request->consumption];
Vehicle::insert($data);
$vehicle = Vehicle::orderBy('id', 'desc')->first();
$vehicles = ['user_id'=>Auth::user()->id, 'vehicle_id'=>$vehicle->id];
Vehicles::insert($vehicles);
$vehicleId = Vehicles::insertGetId($vehicles);
foreach($request->upFuelType as $fuel){
$currentFuel = Fuel::where('name', 'like', "%$fuel%")->select('id')->first();
Fuels::insert(['vehicle_id'=>$vehicleId, 'fuel_id'=>$currentFuel->id]);
}
$vehiclesId = Vehicle::orderBy('id', 'desc')->first();
@ -65,18 +75,24 @@ class UserPageController extends Controller
->join('users', 'users.id', 'vehicles.user_id')->where('users.email', $user->email)
->select('brand','model', 'vehicle.id as vehicle_id')->get();
$selectedVehicle=Vehicle::where('id', $id)->first();
$selectedVehicle=Vehicle::where('vehicle.id', $id)
->first();
$vehicleFuels = Fuel::join('fuels', 'fuels.fuel_id', 'fuel.id')
->where('fuels.vehicle_id', $id)
->select('fuel.name as name')
->get();
$allFuels = Fuel::all();
$preferredVehicle = User::where('id', Auth::user()->id)->get();
$fuelTypes = DB::select('DESCRIBE fuel_price');
return view('manageVehicles', ['name'=>$user->name, 'selectedVehicle' => $selectedVehicle, 'vehicles' => $vehicles, 'fuelTypes'=>$fuelTypes]);
return view('manageVehicles', ['name'=>$user->name, 'selectedVehicle' => $selectedVehicle, 'vehicleFuels' => $vehicleFuels, 'allFuels' => $allFuels,'vehicles' => $vehicles, 'fuelTypes'=>$fuelTypes]);
}
public function editInfo()
{
# code...
$user = Auth::user();
@ -85,7 +101,6 @@ class UserPageController extends Controller
public function saveInfo(Request $request, $id)
{
# code...
$data = ['name'=>$request->name, 'email'=>$request->email];
User::where('id', $id)->update($data);
return redirect(route('manageInfo'));
@ -95,10 +110,13 @@ class UserPageController extends Controller
public function saveVehicle(Request $request, $id)
{
//$id2 = ['id'=>$request->id];
$data = ['brand'=>$request->brand, 'model'=>$request->model, 'fuel'=>$request->fuel, 'consumption'=>$request->consumption];
$data = ['brand'=>$request->brand, 'model'=>$request->model, 'consumption'=>$request->consumption];
Vehicle::where('id', $id)->update($data);
//dd($id2);
Fuels::where('vehicle_id', $id)->delete();
foreach($request->upFuelType as $fuel){
$currentFuel = Fuel::where('name', 'like', "%$fuel%")->select('id')->first();
Fuels::insert(['vehicle_id'=>$id, 'fuel_id'=>$currentFuel->id]);
}
return redirect(route('manageVehicles'));
}
@ -162,7 +180,7 @@ class UserPageController extends Controller
}
else
{
//return redirect()->to('/');
return redirect()->to('/');
}
}
@ -263,7 +281,6 @@ class UserPageController extends Controller
public function getVehicles()
{
# code...
$user = Auth::user();
$vehicles = Vehicle::join('vehicles', 'vehicle.id', 'vehicles.vehicle_id')
->join('users', 'users.id', 'vehicles.user_id')
@ -272,13 +289,15 @@ class UserPageController extends Controller
$fuelTypes = DB::select('DESCRIBE fuel_price');
return view('manageVehicles', ['name'=>$user->name, 'vehicles' => $vehicles,'fuelTypes' => $fuelTypes]);
$allFuels = Fuel::all();
return view('manageVehicles', ['name'=>$user->name, 'vehicles' => $vehicles, 'allFuels'=> $allFuels,'fuelTypes' => $fuelTypes]);
}
public function getInfo()
{
# code...
$user = Auth::user();
$vehicles = Vehicle::join('vehicles', 'vehicle.id', 'vehicles.vehicle_id')
->join('users', 'users.id', 'vehicles.user_id')

View File

@ -8,4 +8,8 @@ class Vehicle extends Model
{
protected $table = 'vehicle';
public $timestamps = false;
public function fuels()
{
return $this->hasMany('App\Fuels');
}
}

View File

@ -17,7 +17,6 @@ class CreateVehicleTable extends Migration
$table->increments('id');
$table->string('brand');
$table->string('model');
$table->string('fuel');
$table->float('consumption');
});
}

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateFuelsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('fuels', function (Blueprint $table) {
$table->increments('id');
$table->integer('vehicle_id');
$table->integer('fuel_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('fuels');
}
}

View File

@ -0,0 +1,31 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateFuelTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('fuel', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('fuel');
}
}

View File

@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Seeder;
class FuelTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('fuel')->insert([ //,
'Gasoleo',
'Gasoleo Simples',
'Gasoleo Especial',
'Gasoleo Colorido',
'Gasolina 95',
'Gasolina Simples 95',
'Gasolina Especial 95',
'Gasolina 98',
'Gasolina Simples 98',
'Gasolina Especial 98',
'Gas Natural Comprimido Kg',
'Gas Natural Comprimido m3',
'Gas Natural Liquido',
'GPL',
]);
}
}

View File

@ -50,37 +50,18 @@
<div class="form-group">
<label for="fuel">Tipo de Combustível: </label>
<div class="col-sm-4">
<label><input type="checkbox" name="fuelType" value="diesel">Gasóleo</label><br>
<label><input type="checkbox" name="fuelType" value="diesel_simple">Gasóleo Simples</label><br>
<label><input type="checkbox" name="fuelType" value="diesel_colored">Gasóleo Colorido</label><br>
<label><input type="checkbox" name="fuelType" value="diesel_special">Gasóleo Especial</label><br>
<br><br>
<label><input type="checkbox" name="fuelType" value="petrol_95">Gasolina 95</label><br>
<label><input type="checkbox" name="fuelType" value="petrol_simple_95">Gasolina Simples 95</label><br>
<label><input type="checkbox" name="fuelType" value="petrol_special_95">Gasolina Especial 95</label><br>
<br><br>
</div>
<div class="col-sm-8">
<label><input type="checkbox" name="fuelType" value="gas_natural_compressed_kg">GNC KG</label><br>
<label><input type="checkbox" name="fuelType" value="gas_natural_compressed_m3">GNC M3</label><br>
<label><input type="checkbox" name="fuelType" value="gas_natural_liquified">GNL</label><br>
<label><input type="checkbox" name="fuelType" value="gpl">GPL</label><br>
<br><br>
<label><input type="checkbox" name="fuelType" value="petrol_98">Gasolina 98</label><br>
<label><input type="checkbox" name="fuelType" value="petrol_simple_98">Gasolina Simples 98</label><br>
<label><input type="checkbox" name="fuelType" value="petrol_special_98">Gasolina Especial 98</label><br>
<br><br>
</div>
<select class="form-control" id="txtFuelType" name="fuel">
@if(isset($fuelTypes))
@for($i=1;$i<count($fuelTypes); $i++)
<option value="{{$fuelTypes[$i]->Field}}" @if(isset($selectedVehicle) && $selectedVehicle->fuel==$fuelTypes[$i]->Field) selected @endif>{{$fuelTypes[$i]->Field}}</option>
@endfor
@endif
</select>
@if(isset($allFuels))
@foreach($allFuels as $fuel)
<label>{{$fuel->name}}<input type="checkbox" name="upFuelType[]" value="{{$fuel->name}}"
@if(isset($vehicleFuels))
@foreach($vehicleFuels as $vFuel)
@if($fuel->name==$vFuel->name) checked @endif
@endforeach @endif ></label>
@endforeach
@endif
</div>
<div class="form-group">
<label for="consumption">Consumo(L/100): </label>
<input class="form-control" id="txtConsumption" type="number" name="consumption" step="0.1"
@ -97,26 +78,6 @@
</div>
</form>
</div>
<script type="text/javascript">
$(" #vehicleList>a").click(function(){
/*{{-- @foreach($vehicles as $vehicle)
@if($vehicle->id == $(this).val())
$("#txtBrand").val("{{$vehicle->brand}}");
$("#txtModel").val('');
$("#txtFuelType").val('');
$("#txtConsumption").val('');
@endif
@endforeach--}}*/
});
$("#addVehicle").click(function(){
$("#txtBrand").val('');
$("#txtModel").val('');
$("#txtFuelType").val('');
$("#txtConsumption").val('');
});
</script>
</div>