git commit"fix flight type display and status handling"

This commit is contained in:
2026-08-18 19:49:46 +03:30
parent 62a95c411b
commit 40dbf3b575
10 changed files with 130 additions and 94 deletions
-14
View File
@@ -1,14 +0,0 @@
<?php
namespace App\Enums;
enum FlightStatus : int
{
case Draft=0;
case Active=1;
case Inactive=2;
case Finished=3;
case Cancelled=4;
}
-10
View File
@@ -1,10 +0,0 @@
<?php
namespace App\Enums;
enum FlightType : int
{
case internal=0;
case external=2;
case charter=3;
}
+88 -10
View File
@@ -5,6 +5,8 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\FlightStoreRequest;
use App\Models\Flight;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
class FlightController extends Controller
{
@@ -14,50 +16,126 @@ class FlightController extends Controller
return view('admin.flights.index', compact('flights'));
}
public function create()
{
return view('admin.flights.create');
}
public function store(FlightStoreRequest $request)
{
DB::beginTransaction();
try {
$data = $request->validated();
$data['type'] = (int) $data['type'];
if ($request->hasFile('image')) {
$data['image'] = $request->file('image')->store('flights', 'public');
$data['image'] = $request
->file('image')
->store('flights','public');
}
Flight::create($data);
return redirect()->route('admin.flights.index')
->with('success', 'پرواز با موفقیت ثبت شد');
DB::commit();
return redirect()
->route('admin.flights.index')
->with('success','پرواز ثبت شد');
} catch(\Exception $e) {
DB::rollBack();
dd($e->getMessage());
}
}
public function edit(Flight $flight)
{
return view('admin.flights.edit',compact('flight'));
}
public function update(FlightStoreRequest $request, Flight $flight)
{
DB::beginTransaction();
try {
$data = $request->validated();
$data['type'] = (int) $data['type'];
if ($request->hasFile('image')) {
$data['image'] = $request->file('image')->store('flights', 'public');
if($flight->image){
Storage::disk('public')
->delete($flight->image);
}
$data['image'] = $request
->file('image')
->store('flights','public');
}
$flight->update($data);
return redirect()->route('admin.flights.index')
->with('success', 'پرواز با موفقیت ویرایش شد');
DB::commit();
return redirect()
->route('admin.flights.index')
->with('success','پرواز ویرایش شد');
}catch(\Exception $e){
DB::rollBack();
dd($e->getMessage());
}
}
public function destroy(Flight $flight)
{
if($flight->image){
Storage::disk('public')
->delete($flight->image);
}
$flight->delete();
return back()->with('پرواز با موفقیت حذف شد.');
return back()
->with('success','پرواز حذف شد');
}
}
@@ -1,7 +1,8 @@
<?php
namespace App\Http\Controllers;
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Permission;
use App\Models\Role;
use Illuminate\Http\Request;
@@ -11,13 +12,13 @@ class RoleController extends Controller
public function index()
{
$roles=Role::paginate(3);
return view('admins.Roles.index',compact('roles'));
return view('admin.Roles.index',compact('roles'));
}
public function permissions(Role $role)
{
$permissions=Permission::all();
return view('admins.Roles.permissions',compact('role','permissions'));
return view('admin.Roles.permissions',compact('role','permissions'));
}
public function updatePermissions(Request $request, Role $role)
{
@@ -46,10 +46,11 @@ class FlightStoreRequest extends FormRequest
'departure_date'=>[
'required',
'date',
'after_or_equal:today'
],
'departure_time'=>[
'required'
'required',
'date_format:H:i'
],
'arrival_time'=>[
'required'
+4 -2
View File
@@ -39,7 +39,9 @@ use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
protected $table = 'flights';
public static $snakeAttributes = false;
public $timestamps = true;
protected $casts = [
'departure_date' => 'datetime',
@@ -47,8 +49,8 @@ class Flight extends Model
'arrival_time' => 'datetime',
'capacity' => 'int',
'price' => 'float',
'type' => FlightType::class,
'status' => FlightStatus::class,
'type' => 'int',
'status' => 'int',
];
protected $fillable = [
@@ -91,15 +91,9 @@
نوع پرواز
</label>
<select name="type" class="form-control">
<option value="0">داخلی</option>
<option value="2">خارجی</option>
<option value="3">چارتر</option>
</select>
</div>
@@ -110,10 +104,11 @@
تاریخ حرکت
</label>
<input type="date"
<input type="text"
name="departure_date"
class="form-control">
id="departure_date"
class="form-control"
autocomplete="off">
</div>
+11 -18
View File
@@ -41,32 +41,28 @@
<div class="col-md-3">
<select name="type"
class="form-control">
<select name="type" class="form-control">
<option value="">
همه انواع
</option>
<option value="internal"
@selected(request('type')=='internal')>
<option value="0"
@selected(request('type')=='0')>
داخلی
</option>
<option value="external"
@selected(request('type')=='external')>
<option value="2"
@selected(request('type')=='2')>
خارجی
</option>
<option value="charter"
@selected(request('type')=='charter')>
<option value="3"
@selected(request('type')=='3')>
چارتر
</option>
</select>
</div>
@@ -181,26 +177,23 @@
<td>
@switch($flight->type)
@switch($flight->type->value)
@case('internal')
@case(0)
داخلی
@break
@case('external')
@case(2)
خارجی
@break
@case('charter')
@case(3)
چارتر
@break
@endswitch
</td>
<td>
{{ number_format($flight->price) }}
</td>
@@ -71,16 +71,6 @@
</li>
<li class="nav-item mb-2">
<a href="{{ route('admin.users.index') }}"
class="nav-link text-white">
کاربران
</a>
</li>
</ul>
+2 -2
View File
@@ -4,9 +4,9 @@
use App\Http\Controllers\Admin\AdminController;
use App\Http\Controllers\Admin\Auth\AuthController;
use App\Http\Controllers\Admin\Auth\DashboardController;
use App\Http\Controllers\Admin\UserController;
use App\Http\Controllers\Admin\FlightController;
use App\Http\Controllers\RoleController;
use App\Http\Controllers\Admin\RoleController;
use App\Http\Controllers\Admin\UserController;
use App\Http\Controllers\TourController;
use Illuminate\Support\Facades\Route;