This repository has been archived on 2025-07-15. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lean_in_world/app/Http/Controllers/Admin/ManageProgramController.php
meghamalore eed0ce11d2 first commit
2024-07-04 16:57:26 +05:30

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.']);
}
}