git add .
git commit "complete tour and flight departure date handling"
This commit is contained in:
@@ -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'
|
||||||
|
|||||||
@@ -77,9 +77,7 @@ class TourStoreRequest extends FormRequest
|
|||||||
|
|
||||||
'departure_date' => [
|
'departure_date' => [
|
||||||
'required',
|
'required',
|
||||||
'date',
|
],
|
||||||
'after_or_equal:today',
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
'status' => [
|
'status' => [
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user