You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							113 lines
						
					
					
						
							4.2 KiB
						
					
					
				
			
		
		
	
	
							113 lines
						
					
					
						
							4.2 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers;
 | 
						|
 | 
						|
use Illuminate\Http\Request;
 | 
						|
use App\Models\Appointment;
 | 
						|
use Carbon\Carbon;
 | 
						|
use App\Models\AppointmentBookingDetail;
 | 
						|
 | 
						|
class AppointmentController extends Controller
 | 
						|
{
 | 
						|
    public function index(){
 | 
						|
 | 
						|
        $educationAppointments = Appointment::where('service_type', '1')->get();
 | 
						|
        $visaAppointments = Appointment::where('service_type', '2')->get();
 | 
						|
        // foreach($educationAppointments as $appointment){
 | 
						|
        //     $startTime = Carbon::createFromFormat('H:i', $appointment->start_time);
 | 
						|
        //     $date = Carbon::createFromFormat('H:i', $appointment->start_time);
 | 
						|
        //     dd($date);
 | 
						|
        // }
 | 
						|
        return view('appointment', compact('educationAppointments', 'visaAppointments'));
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    public function get_appointment_by_date(Request $request){
 | 
						|
 | 
						|
        $dateTime = $request->date;
 | 
						|
 | 
						|
        $date_parts = explode(" ", $dateTime);
 | 
						|
        $month_number = date_parse($date_parts[1])['month'];
 | 
						|
        $carbon = Carbon::createFromDate($date_parts[3], $month_number, $date_parts[2]);
 | 
						|
        $date = $carbon->format('Y-m-d');
 | 
						|
        $type_id = $request->id;
 | 
						|
        $appointments_all = Appointment::whereDate('date',$date)->where(['service_type' => $type_id,'is_booked' => false,'status' => 1])->get();
 | 
						|
        $old_date = Carbon::createFromFormat('Y-m-d', $date);
 | 
						|
        $formated_date = $old_date->format('M d, Y');
 | 
						|
        $currentTime = Carbon::now();
 | 
						|
        $appointments = [];
 | 
						|
        foreach ($appointments_all as $appointment) {
 | 
						|
 | 
						|
            $appointmentDate = Carbon::createFromFormat('Y-m-d H:i:s', $appointment->date.' '.$appointment->start_time);
 | 
						|
 | 
						|
            if ($appointmentDate->gt($currentTime) || $appointmentDate > $currentTime) {
 | 
						|
                array_push($appointments, $appointment);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        // $users = DB::table('appointments')->whereDate('created_at', '2022-12-01')->get();
 | 
						|
        // $time = [];
 | 
						|
        // foreach($appointments as $appointment){
 | 
						|
        //     array_push($time, [$appointment->start_time, $appointment->id]);
 | 
						|
        // }
 | 
						|
        // dd($time);
 | 
						|
        return response()->json(['appointment' => $appointments,'formated_date' => $formated_date]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function form_submit(Request $request){
 | 
						|
        $request->validate([
 | 
						|
            'name' => 'required',
 | 
						|
            'email' => 'required|email',
 | 
						|
            'phone' => 'required',
 | 
						|
        ]);
 | 
						|
        $appointment_id = $request->get('appointment_id');
 | 
						|
 | 
						|
        $appointment = Appointment::findorfail($appointment_id);
 | 
						|
        $appointment_detail = new AppointmentBookingDetail();
 | 
						|
        $appointment_detail->name = $request->get('name');
 | 
						|
        $appointment_detail->email = $request->get('email');
 | 
						|
        $appointment_detail->phone = $request->get('phone');
 | 
						|
        $appointment_detail->notes = $request->get('notes');
 | 
						|
        $appointment_detail->appointment_id = $appointment_id;
 | 
						|
        $email = $request['email'];
 | 
						|
        $name = $request['name'];
 | 
						|
        if($appointment_detail->save()){
 | 
						|
            
 | 
						|
            $date = Carbon::createFromFormat('Y-m-d', $appointment->date);
 | 
						|
            $formated_date = $date->format('M d, Y');
 | 
						|
            $appointment->is_booked = true;
 | 
						|
            $appointment->save();
 | 
						|
            $subject = 'Appointment Confirmed';
 | 
						|
            \Mail::send('appointment_confirmed', array(
 | 
						|
 | 
						|
                'full_name' =>$name,
 | 
						|
    
 | 
						|
                'email' =>$email,
 | 
						|
 | 
						|
                'date' => $formated_date,
 | 
						|
 | 
						|
                'start_time' => $appointment['start_time'],
 | 
						|
 | 
						|
                'end_time' => $appointment['end_time'],
 | 
						|
    
 | 
						|
                'phone' =>$request['phone'],
 | 
						|
    
 | 
						|
                'subject' =>$subject 
 | 
						|
    
 | 
						|
    
 | 
						|
               ), function($message) use ($subject,$email,$name){
 | 
						|
                // $subject=($service!= '') ? 'Enquiry for '.$service : 'Contact/Feedback';
 | 
						|
                $message->subject($subject);
 | 
						|
                $message->to($email, $name)->subject($subject);
 | 
						|
                // $message->cc('extratechweb@gmail.com', 'Extratech')->subject($subject);
 | 
						|
                // $message->cc('suman@extratechs.com.au', 'Extratech')->subject($subject);
 | 
						|
    
 | 
						|
               });
 | 
						|
        }
 | 
						|
 | 
						|
        return response()->json(['appointment_detail' => $appointment_detail,'appointment' => $appointment,'formated_date' => $formated_date],200);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    }
 | 
						|
}
 | 
						|
 |