Files
vedant-chavan/app/Http/Controllers/Website/YourActivityController.php
vedant-chavan eff0228447 first commit
2024-06-12 20:29:05 +05:30

156 lines
6.6 KiB
PHP

<?php
namespace App\Http\Controllers\Website;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ActivityMaster;
use App\Models\SubscriptionMaster;
use App\Models\ActivitySchedule;
use App\Models\ActivityDay;
use App\Models\Teacher;
use App\Models\ManageFaq;
use App\Models\LinkFaqActivityMasterIds;
use App\Models\PastSession;
use Carbon\Carbon;
use DateTimeZone;
use DateTime;
use Auth;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Http;
use Torann\GeoIP\Facades\GeoIP;
use Spatie\TimeZone\GoogleTimeZone;
class YourActivityController extends Controller
{
public function index(Request $request){
$data=[];
$current_day = now()->format('Y-m-d'); // Get the current date in the format "YYYY-MM-DD"
$user_data = Auth::user();
$userIP = \Request::ip();
$response = Http::get("https://ipinfo.io/{$userIP}/json");
$locationData = $response->json();
$userTimeZone = $locationData['timezone'];
$user_data = Auth::user();
$utm_source = $user_data->utm_source;
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
$subscription_id = $subscription_data->id;
$data['live_activity'] = ActivityDay::where('subscription_id', $subscription_id)
->where('date', 'LIKE', "%$current_day%")
->with('scheduleData', 'activityData')
->get();
// dd($data['live_activity']);
// dd($data['live_activity']);
// if($data['live_activity']->isEmpty()){
// $data['data'] = ['0'];
// dd($data);
// return view('website.pages.your_activity',compact('data'));
// }else{
if(!$data['live_activity']->isEmpty()){
$timestamp = $data['live_activity'][0]['time'];
// dd($timestamp);
$gettimezone = $userTimeZone;
// $datetime = "2016-02-01 00:00:01";
// Target timezone based on the user's IP address
$targetTimeZone = new DateTimeZone($userTimeZone);
// Create a DateTime object for the original timestamp in India timezone
$given = new DateTime($timestamp, new DateTimeZone('Asia/Kolkata'));
// Set the target timezone
$given->setTimezone($targetTimeZone);
// $given = new DateTime($timestamp, new DateTimeZone($gettimezone));
// $given->setTimezone(new DateTimeZone("UTC"));
$output = $given->format("H:i");
$data['live_activity'][0]['time']=$output;
}
$data['subscription_data'] = SubscriptionMaster::where('utm_plan',$utm_source)->first();
// return $data;
//past data
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
$subscription_id = $subscription_data->id;
// dd($subscription_id);
// Calculate the cutoff date (end date + 7 days)
$activity_data = ActivityMaster::where('subscription_id', $subscription_id)->orderBy('end_date', 'desc')->first();
// return $activity_data;
// dd($activity_data);
$end_date = $activity_data->end_date;
// dd($end_date);
$cutoffDate = Carbon::parse($end_date)->addDays(7)->toDateString();
// dd($cutoffDate);
// $desired_date = Carbon::createFromDate(2024, 1, 2);
// $cutoffDate = $desired_date->format('Y-m-d');
$current_date = Carbon::now()->format('Y-m-d');
$data['data'] = [];
// dd($cutoffDate);
// Check if the current date is past the cutoff date
if (Carbon::now()->toDateString() > $cutoffDate) {
$data['data'] = ['0'];
// dd($data);
return view('website.pages.your_activity',compact('data'));
}
$data['past_activity'] = ActivityMaster::where('subscription_id', $subscription_id)->where('end_date','<',$cutoffDate)->with('teacher_data')->orderBy('start_date', 'desc')->first();
// dd($data['past_activity']);
if ($data['past_activity'] !== null) {
$schedule_data = ActivitySchedule::where('activity_master_id', $data['past_activity']['id'])->with('past_data')->orderBy('start_date', 'asc')->get()->toArray();
// dd($schedule_data);
} else {
$data['past_activity'] = [];
$schedule_data = []; // Set an empty array when $data['past_activity'] is null
}
$data_schedule = [];
foreach ($schedule_data as $k => $val){
if (empty($val['past_data'])){
continue;
}else{
$data_schedule[] = $val;
}
}
$data['past_activity']['schedule'] = $data_schedule;
// $userIP = $request->ip();
// $response = Http::get("https://ipinfo.io/{$userIP}/json");
// $locationData = $response->json();
// // dd($locationData);
// $userTimeZone = $locationData['timezone'];
// // dd($userTimeZone);
// $timestamp = $data['live_activity'][0]->new_time; // Use square brackets to access elements
// // dd()
// $originalTime = Carbon::parse($timestamp,$userTimeZone);
// $date = Carbon::createFromFormat('H:i:s', $timestamp, 'UTC');
// $date->setTimezone($userTimeZone);
// dd($date);
// $userTime = $originalTime->copy();
// $userTime->setTimezone($userTimeZone);
// $userTimeFormatted = $userTime->format('H:i:s');
// // dd($userTimeFormatted);
// $data['live_activity'] = $data['live_activity']->map(function ($item) use ($userTimeZone) {
// $timestamp = $item->new_time;
// // $normalTime = Carbon::createFromFormat('H:i', $timestamp, $userTimeZone); // Replace 'your_timezone' with the actual timezone of the 'time' column
// $normalTime = Carbon::parse($timestamp, $userTimeZone);
// $convertedTime = $normalTime->setTimezone($userTimeZone); // Convert to the user's time zone
// $item->new_time = $convertedTime->format('H:i'); // Update the 'time' value with the user's time zone in 'HH:mm' format
// return $item;
// })->toArray();
// echo "<pre>";
// print_r($data['live_activity']);
// exit;
return view('website.pages.your_activity',$data);
}
}