AdminTourController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use App\Models\Tour;
  6. use App\Models\Package;
  7. use App\Models\Booking;
  8. class AdminTourController extends Controller
  9. {
  10. public function index()
  11. {
  12. $tours = Tour::with('package')->get();
  13. return view('admin.tour.index',compact('tours'));
  14. }
  15. public function create()
  16. {
  17. $packages = Package::orderBy('name','asc')->get();
  18. return view('admin.tour.create', compact('packages'));
  19. }
  20. public function create_submit(Request $request)
  21. {
  22. $request->validate([
  23. 'tour_start_date' => 'required',
  24. 'tour_end_date' => 'required',
  25. 'booking_end_date' => 'required',
  26. 'total_seat' => 'required',
  27. ]);
  28. $obj = new Tour();
  29. $obj->package_id = $request->package_id;
  30. $obj->tour_start_date = $request->tour_start_date;
  31. $obj->tour_end_date = $request->tour_end_date;
  32. $obj->booking_end_date = $request->booking_end_date;
  33. $obj->total_seat = $request->total_seat;
  34. $obj->save();
  35. return redirect()->route('admin_tour_index')->with('success','Tour is Created Successfully');
  36. }
  37. public function edit($id)
  38. {
  39. $tour = Tour::where('id',$id)->first();
  40. $packages = Package::orderBy('name','asc')->get();
  41. return view('admin.tour.edit',compact('tour', 'packages'));
  42. }
  43. public function edit_submit(Request $request, $id)
  44. {
  45. $obj = Tour::where('id',$id)->first();
  46. $request->validate([
  47. 'tour_start_date' => 'required',
  48. 'tour_end_date' => 'required',
  49. 'booking_end_date' => 'required',
  50. 'total_seat' => 'required',
  51. ]);
  52. $obj->package_id = $request->package_id;
  53. $obj->tour_start_date = $request->tour_start_date;
  54. $obj->tour_end_date = $request->tour_end_date;
  55. $obj->booking_end_date = $request->booking_end_date;
  56. $obj->total_seat = $request->total_seat;
  57. $obj->save();
  58. return redirect()->route('admin_tour_index')->with('success','Tour is Updated Successfully');
  59. }
  60. public function delete($id)
  61. {
  62. $total = Booking::where('tour_id',$id)->count();
  63. if($total > 0)
  64. {
  65. return redirect()->back()->with('error','This Tour has Bookings. So, it can not be deleted');
  66. }
  67. $obj = Tour::where('id',$id)->first();
  68. $obj->delete();
  69. return redirect()->route('admin_tour_index')->with('success','Tour is Deleted Successfully');
  70. }
  71. public function tour_booking($tour_id,$package_id)
  72. {
  73. //dd($tour_id,$package_id);
  74. $all_data = Booking::with('user')->where('tour_id',$tour_id)->where('package_id',$package_id)->get();
  75. return view('admin.tour.booking',compact('all_data'));
  76. }
  77. public function tour_booking_delete($id)
  78. {
  79. $obj = Booking::where('id',$id)->first();
  80. $obj->delete();
  81. return redirect()->back()->with('success','Booking is Deleted Successfully');
  82. }
  83. public function tour_invoice($invoice_no)
  84. {
  85. $booking = Booking::with(['user','tour','package'])->where('invoice_no',$invoice_no)->first();
  86. return view('admin.tour.invoice',compact('booking'));
  87. }
  88. public function tour_booking_approve($id)
  89. {
  90. Booking::where('id',$id)->update(['payment_status'=>'Completed']);
  91. return redirect()->back()->with('success','Booking is Approved Successfully');
  92. }
  93. }