toArray(); return view('Admin.Pages.manage_programs.add_manage_programe')->with(['country' => $countries]); } public function programe_view($id) { $countries = country::all()->toArray(); $program_detail = program::with('programe_images', 'programe_amount', 'programe_country', 'programe_acomadation')->find($id)->toArray(); // dd($program_detail); return view('Admin.Pages.manage_programs.view_manage_programe')->with(['program_details_view' => $program_detail, 'country' => $countries]); } public function programe_edit($id) { $countries = country::all()->toArray(); $program_detail = program::with('programe_images', 'programe_amount', 'programe_country', 'programe_acomadation')->find($id)->toArray(); // dd($program_detail); return view('Admin.Pages.manage_programs.edit_programe')->with(['program_details' => $program_detail, 'country' => $countries]); } public function programe_update(Request $request) { // dd($request->all()); //********************************** update programe data ********************************\\ $program = program::find($request->edit_program_id); $program->program_title = $request->input('edit_program_title'); $program->challenge_level = $request->input('chag_level'); // $program->start_date = $request->input('edit_start_date'); // $program->end_date = $request->input('edit_end_date'); $startDates = $request->input('edit_start_date'); $program->start_date = json_encode($startDates); $program->volunteer_weeks = $request->input('edit_weeks'); $program->age_rules = $request->input('edit_age_rules'); $program->country_xid = $request->input('country'); if ($request->hasFile('image')) { $uploadedFile = $request->image; $filename = date('YmdHi') . '_' . str_replace(' ', '', $uploadedFile->getClientOriginalName()); $uploadedFile->move(public_path('assets/uploads/program_images/thumbnail'), $filename); $images = 'assets/uploads/program_images/thumbnail/' . $filename; $program->thumbnail = $images; } if ($request->hasFile('brochure')) { $uploadedFile = $request->brochure; $filename = date('YmdHi') . '_' . str_replace(' ', '', $uploadedFile->getClientOriginalName()); $uploadedFile->move(public_path('assets/uploads/program_images/program_brochure/'), $filename); $program_brochure = 'assets/uploads/program_images/program_brochure/' . $filename; $program->trip_brochure = $program_brochure; } $program->program_title_two = $request->input('edit_program_title_two'); $program->description = $request->input('edit_discription'); $program->location_info = $request->input('edit_location_info'); $program->charges_details = $request->input('edit_charges_details'); $program->payment_notice = $request->input('payment_notice'); $program->project_information = $request->input('personal_info'); $program->personal_gain = $request->input('personal_gain'); $program->safety_instructions = $request->input('safety_insta'); $program->save(); //************************************ update programe data ********************************\\ //********************************** update programe price data start ********************************\\ $amounts_usd = $request->input('amount_usd'); // Loop through the arrays and insert into the database $index = 0; $program_currency = ProgramCurrencyAmount::where('programs_xid', $request->edit_program_id)->delete(); foreach ($amounts_usd as $index => $amount_usd) { $program_currency = new ProgramCurrencyAmount; $program_currency->programs_xid = $program->id; $program_currency->week = $index + 1; $program_currency->usd_price = $amount_usd; $program_currency->save(); } //********************************* update programe price data end ******************************\\ //********************************* update programe accomadtion data end ******************************\\ $edit_program_acomadation_name = $request->input('progarm_accomadation'); $program_id = $request->edit_program_id; $edit_program_acomadation = program_accomadation::where('programs_xid', $program_id)->delete(); if ($edit_program_acomadation_name) { foreach ($edit_program_acomadation_name as $program_accomadations) { $program_acomadation = new program_accomadation; $program_acomadation->programs_xid = $program->id; $program_acomadation->accomadation = $program_accomadations; $program_acomadation->save(); } } //********************************* update programe accomadtion data end ******************************\\ //********************************* update Multi file uploading start ******************************\\ // $program_id = $request->edit_program_id; if ($request->hasFile('images')) { // dd($request->hasFile('images')); // $edit_program_images = ProgramImage::where('programs_xid', $program_id)->delete(); foreach ($request->file('images') as $key => $file) { $filename = date('YmdHi') . '_' . $file->getClientOriginalName(); $file->move(public_path('assets/uploads/program_images'), $filename); $images = 'assets/uploads/program_images/' . $filename; $program_images = new ProgramImage(); $program_images->programs_xid = $program->id; $program_images->images = $images; $program_images->save(); } } //********************************* update Multi file uploading end ******************************\\ return response()->json(['success' => true, 'status' => 200]); } public function delete_image(Request $request) { $image = ProgramImage::find($request->image_id); $previous_image = public_path($image->images); File::delete($previous_image); $image->id = $request->image_id; $image->delete(); return response()->json(['success' => true, 'status' => 200]); } public function index() { $programs = program::select('id', 'start_date', 'end_date', 'is_active')->get(); foreach ($programs as $program) { $startDate = $program->min('start_date'); $dateArray = explode(',', $startDate); // Trim each date string to remove any leading/trailing spaces $dateArray = array_map('trim', $dateArray); // Get the last date in the array $lastDate = end($dateArray); // Clean the last date string $lastDate = preg_replace('/[^0-9\-]/', '', $lastDate); // $startDate = Carbon::parse($program->start_date); $endDate = Carbon::parse($lastDate); if ($endDate->isPast()) { $program->is_active = '0'; $program->save(); } // Check if the end date has expired } $program = program::with('programe_country') ->orderBy('created_at', 'desc') ->get() ->toArray(); // return view('Admin.Pages.manage_programs.manage_program', compact('programs'))->with(['program' => $program]); return view('Admin.Pages.manage_programs.manage_program')->with(['program' => $program]); } public function insert(Request $request) { dd($request->all()); $program = new program; $program->program_title = $request->input('program_title'); $program->challenge_level = $request->input('chag_level'); $startDates = $request->input('multi_start_date'); $program->start_date = json_encode($startDates); $program->volunteer_weeks = $request->input('weeks'); $program->volunteer_weeks_max = $request->input('max_weeks'); $program->is_active = 1; if ($request->hasFile('image')) { $uploadedFile = $request->image; $filename = date('YmdHi') . '_' . str_replace(' ', '', $uploadedFile->getClientOriginalName()); $uploadedFile->move(public_path('assets/uploads/program_images/thumbnail/'), $filename); $images = 'assets/uploads/program_images/thumbnail/' . $filename; $program->thumbnail = $images; } if ($request->hasFile('brochure')) { $uploadedFile = $request->brochure; $filename = date('YmdHi') . '_' . str_replace(' ', '', $uploadedFile->getClientOriginalName()); $uploadedFile->move(public_path('assets/uploads/program_images/program_brochure/'), $filename); $program_brochure = 'assets/uploads/program_images/program_brochure/' . $filename; $program->trip_brochure = $program_brochure; } $program->age_rules = $request->input('age_rules'); $program->country_xid = $request->input('country'); $program->program_title_two = $request->input('program_title_two'); $program->description = $request->input('discription'); $program->location_info = $request->input('location_info'); $program->charges_details = $request->input('charges_details'); $program->payment_notice = $request->input('payment_notice'); $program->project_information = $request->input('personal_info'); $program->personal_gain = $request->input('personal_gain'); $program->safety_instructions = $request->input('safety_insta'); $program->save(); $amounts_usd = $request->input('amount_usd'); $week = $request->input('week'); // Loop through the arrays and insert into the database // $index = 0; foreach ($amounts_usd as $amount_usd) { $currency = new ProgramCurrencyAmount(); $currency->programs_xid = $program->id; $currency->usd_price = $amount_usd; $currency->week = $week; $currency->save(); } if ($request->hasFile('images')) { foreach ($request->file('images') as $key => $file) { $filename = date('YmdHi') . '_' . $file->getClientOriginalName(); $file->move(public_path('assets/uploads/program_images'), $filename); $images = 'assets/uploads/program_images/' . $filename; $program_images = new ProgramImage(); $program_images->programs_xid = $program->id; $program_images->images = $images; $program_images->save(); } } // insert program accomadtion start $program_accomadation = $request->input('progarm_accomadation'); foreach ($program_accomadation as $program_accomadations) { $program_accomadation = new program_accomadation; $program_accomadation->programs_xid = $program->id; $program_accomadation->accomadation = $program_accomadations; $program_accomadation->save(); } // insert program accomadtion end //news letter logic $newsletter = news_letter::select('email')->get(); $emails = []; foreach ($newsletter as $mail) { $emails[] = $mail['email']; } // Mail::send('Frontend.Templates.newsletter', ['program' => $program], function($message) use ($emails) { // $message->to($emails)->subject('this is testing mail when we add a new program'); // }); Mail::to($emails)->send(new NewsLetterMail($program)); return response()->json(['success' => true, 'status' => 200]); } public function delete($id) { $program = program::find($id); $program->delete(); } public function change_program_Status(Request $request) { $status = program::find($request->program_id); $status->is_active = $request->status; $status->save(); return response()->json(['success' => 'Status change successfully.']); } }