git add .

git commit "complete tour and flight departure date handling"
This commit is contained in:
2026-08-19 19:49:52 +03:30
parent 8872473e8d
commit fa291c7108
10 changed files with 222 additions and 35 deletions
@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\FlightStoreRequest; use App\Http\Requests\Admin\FlightStoreRequest;
use App\Models\ActivityLog; use App\Models\ActivityLog;
use App\Models\Flight; use App\Models\Flight;
use Hekmatinasser\Verta\Verta;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
@@ -38,6 +39,14 @@ class FlightController extends Controller
try { try {
$data = $request->validated(); $data = $request->validated();
if ($request->departure_date) {
$data['departure_date'] = Verta::parse(
$request->departure_date
)->formatGregorian('Y-m-d');
}
if ($request->hasFile('image')) { if ($request->hasFile('image')) {
@@ -94,6 +103,13 @@ class FlightController extends Controller
$data = $request->validated(); $data = $request->validated();
if ($request->departure_date) {
$data['departure_date'] = Verta::parse(
$request->departure_date
)->formatGregorian('Y-m-d');
}
if ($request->hasFile('image')) { if ($request->hasFile('image')) {
@@ -7,6 +7,7 @@ use App\Http\Requests\TourStoreRequest;
use App\Models\ActivityLog; use App\Models\ActivityLog;
use App\Models\Tour; use App\Models\Tour;
use App\Models\TravelType; use App\Models\TravelType;
use Hekmatinasser\Verta\Verta;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
@@ -41,6 +42,14 @@ class TourController extends Controller
$data = $request->validated(); $data = $request->validated();
if ($request->departure_date) {
$data['departure_date'] = Verta::parse(
$request->departure_date
)->formatGregorian('Y-m-d');
}
if ($request->hasFile('image')) { if ($request->hasFile('image')) {
$data['image'] = $request $data['image'] = $request
@@ -97,6 +106,13 @@ class TourController extends Controller
$data = $request->validated(); $data = $request->validated();
if ($request->departure_date) {
$data['departure_date'] = Verta::parse(
$request->departure_date
)->formatGregorian('Y-m-d');
}
if ($request->hasFile('image')) { if ($request->hasFile('image')) {
@@ -44,9 +44,8 @@ class FlightStoreRequest extends FormRequest
'max:100' 'max:100'
], ],
'departure_date' => [ 'departure_date' => [
'required', 'required'
'string', ],
],
'departure_time' => [ 'departure_time' => [
'required', 'required',
'date_format:H:i' 'date_format:H:i'
+1 -3
View File
@@ -77,9 +77,7 @@ class TourStoreRequest extends FormRequest
'departure_date' => [ 'departure_date' => [
'required', 'required',
'date', ],
'after_or_equal:today',
],
'status' => [ 'status' => [
+76 -9
View File
@@ -75,6 +75,12 @@
name="origin" name="origin"
class="form-control" class="form-control"
value="{{ old('origin') }}"> value="{{ old('origin') }}">
@error('origin')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -89,6 +95,11 @@
name="destination" name="destination"
class="form-control" class="form-control"
value="{{ old('destination') }}"> value="{{ old('destination') }}">
@error('destination')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -101,6 +112,11 @@
<input type="time" <input type="time"
name="departure_time" name="departure_time"
class="form-control"> class="form-control">
@error('departure_time')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -114,6 +130,11 @@
<input type="time" <input type="time"
name="arrival_time" name="arrival_time"
class="form-control"> class="form-control">
@error('arrival_time')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -123,28 +144,39 @@
نوع پرواز نوع پرواز
</label> </label>
<select name="type" class="form-control"> <option value="0">داخلی</option> <select name="type" class="form-control">
<option value="0">داخلی</option>
<option value="2">خارجی</option> <option value="2">خارجی</option>
<option value="3">چارتر</option> <option value="3">چارتر</option>
</select> </select>
@error('type')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
<div class="mb-3">
<div class="col-md-4 mb-3"> <label class="form-label">
تاریخ حرکت پرواز
<label>
تاریخ حرکت
</label> </label>
<input type="text" <input type="text"
name="departure_date"
id="departure_date" id="departure_date"
name="departure_date"
class="form-control" class="form-control"
autocomplete="off"> placeholder="انتخاب تاریخ حرکت">
</div>
@error('departure_date')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="col-md-4 mb-3"> <div class="col-md-4 mb-3">
@@ -156,6 +188,11 @@
<input type="text" <input type="text"
name="flight_class" name="flight_class"
class="form-control"> class="form-control">
@error('flight_class')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -171,6 +208,11 @@
<input type="number" <input type="number"
name="capacity" name="capacity"
class="form-control"> class="form-control">
@error('capacity')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -185,6 +227,11 @@
<input type="number" <input type="number"
name="price" name="price"
class="form-control"> class="form-control">
@error('price')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -199,6 +246,11 @@
<input type="file" <input type="file"
name="image" name="image"
class="form-control"> class="form-control">
@error('image')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -210,12 +262,19 @@
وضعیت وضعیت
</label> </label>
<select name="status" class="form-control"> <option value="0">پیش‌نویس</option> <select name="status" class="form-control">
<option value="0">پیش‌نویس</option>
<option value="1">فعال</option> <option value="1">فعال</option>
<option value="2">غیرفعال</option> <option value="2">غیرفعال</option>
<option value="3">تمام شده</option> <option value="3">تمام شده</option>
<option value="4">لغو شده</option> <option value="4">لغو شده</option>
</select> </select>
@error('status')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -231,4 +290,12 @@
</div> </div>
<script>
$("#departure_date").persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
initialValue: false,
minDate: new persianDate()
});
</script>
@endsection @endsection
+12 -3
View File
@@ -140,10 +140,11 @@
</label> </label>
<input type="text" <input type="text"
name="departure_date"
id="departure_date" id="departure_date"
class="form-control" name="departure_date"
autocomplete="off"> class="form-control">
{{ verta($flight->departure_date)->format('Y/m/d') }}
</div> </div>
@@ -233,4 +234,12 @@
</div> </div>
<script>
$("#departure_date").persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
initialValue: false,
minDate: new persianDate()
});
</script>
@endsection @endsection
@@ -125,6 +125,9 @@
<th> <th>
شماره پرواز شماره پرواز
</th> </th>
<th>
تاریخ حرکت
</th>
<th> <th>
مسیر مسیر
@@ -14,8 +14,10 @@
@endisset @endisset
</title> </title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/persian-datepicker@1.2.0/dist/css/persian-datepicker.min.css">
<link href="{{asset('assets/bootstrap-5.3.8-examples/assets/dist/css/bootstrap.rtl.min.css')}}" rel="stylesheet"> <link href="{{asset('assets/bootstrap-5.3.8-examples/assets/dist/css/bootstrap.rtl.min.css')}}" rel="stylesheet">
<link href="{{ asset('assets/admin/css/style.css') }}" rel="stylesheet"> <link href="{{ asset('assets/admin/css/style.css') }}" rel="stylesheet">
</head> </head>
@@ -35,5 +37,9 @@
@includeUnless(isset($rawLayout),'admin.layouts.footer') @includeUnless(isset($rawLayout),'admin.layouts.footer')
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/persian-date@1.1.0/dist/persian-date.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/persian-datepicker@1.2.0/dist/js/persian-datepicker.min.js"></script>
</body> </body>
</html> </html>
+67 -10
View File
@@ -41,6 +41,13 @@
class="form-control" class="form-control"
value="{{ old('title') }}"> value="{{ old('title') }}">
@error('title')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -67,6 +74,12 @@
</option> </option>
</select> </select>
@error('travel_type_id')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -79,7 +92,13 @@
<textarea name="summary" <textarea name="summary"
class="form-control" class="form-control"
rows="3">{{ old('summary') }}</textarea> rows="3">{{ old('summary') }}
</textarea>
@error('summary')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -93,7 +112,13 @@
<textarea name="description" <textarea name="description"
class="form-control" class="form-control"
rows="6">{{ old('description') }}</textarea> rows="6">{{ old('description') }}
</textarea>
@error('description')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -109,28 +134,36 @@
name="price" name="price"
class="form-control" class="form-control"
value="{{ old('price') }}"> value="{{ old('price') }}">
@error('price')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
<div class="col-md-4 mb-3"> <div class="mb-3">
<label> <label class="form-label">
تاریخ حرکت تاریخ حرکت تور
</label> </label>
<input type="text" <input type="text"
name="departure_date"
id="departure_date" id="departure_date"
name="departure_date"
class="form-control" class="form-control"
autocomplete="off" placeholder="انتخاب تاریخ حرکت">
value="{{ old('departure_date') }}">
@error('departure_date')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
<div class="col-md-4 mb-3"> <div class="col-md-4 mb-3">
<label> <label>
@@ -140,6 +173,11 @@
<input type="file" <input type="file"
name="image" name="image"
class="form-control"> class="form-control">
@error('image')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -167,6 +205,11 @@
</option> </option>
</select> </select>
@error('status')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div> </div>
@@ -185,5 +228,19 @@
</div> </div>
<script>
$("#start_date").persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
initialValue: false,
minDate: new persianDate()
});
</script>
@endsection @endsection
+23 -7
View File
@@ -104,20 +104,22 @@
<div class="col-md-4 mb-3"> <div class="mb-3">
<label>تاریخ حرکت</label> <label class="form-label">
تاریخ حرکت تور
</label>
<input type="text" <input type="text"
name="departure_date" id="start_date"
id="departure_date" name="start_date"
class="form-control" class="form-control"
value="{{ old('departure_date',$tour->departure_date) }}"> placeholder="انتخاب تاریخ حرکت">
{{ verta($tour->departure_date)->format('Y/m/d') }}
</div> </div>
<div class="col-md-4 mb-3"> <div class="col-md-4 mb-3">
<label>وضعیت</label> <label>وضعیت</label>
@@ -188,5 +190,19 @@
</div> </div>
<script>
$("#start_date").persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
initialValue: false,
minDate: new persianDate()
});
</script>
@endsection @endsection