283 lines
13 KiB
PHP
283 lines
13 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Admin\program;
|
|
use App\Models\Admin\ProgramCurrencyAmount;
|
|
use App\Models\Admin\ProgramImage;
|
|
use App\Models\Admin\program_accomadation;
|
|
use App\Models\Admin\country;
|
|
use App\Models\Frontend\news_letter;
|
|
use Illuminate\Support\Facades\Mail;
|
|
use Livewire\Component;
|
|
use Illuminate\Support\Facades\File;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use App\Mail\Frontend\NewsLetterMail;
|
|
|
|
class ManageProgramController extends Controller {
|
|
|
|
public function create() {
|
|
$countries = country::all()->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.']);
|
|
}
|
|
|
|
}
|