golf_backend/app/Controllers/Member_controller.php
suseendhiran17 256d2d6c95 suseendhiran
2023-05-23 12:44:08 +05:30

467 lines
14 KiB
PHP

<?php
namespace App\Controllers;
use App\Models\Member_model;
use App\Models\Dashboard_model;
use App\Models\Common_model;
use App\Models\Member_credits_model;
use App\Models\Packages_and_pricing_model;
use App\Models\Cart_model;
use App\Models\Credits_usage_tracking_model;
use Config\Services;
use App\Libraries\SquareService;
class Member_controller extends BaseController
{
public $session;
public function __construct()
{
$this->session = session();
$this->MemberModel = new Member_model();
$this->dModel = new Dashboard_model();
$this->cModel = new Common_model();
$this->creditsModel = new Member_credits_model();
$this->PackagesModel = new Packages_and_pricing_model();
$this->cartModel = new Cart_model();
$this->CreditsUsageTrackingModel = new Credits_usage_tracking_model();
helper('form');
$this->scheduler();
}
public function index()
{
$data=[];
if($this->request->getmethod() == 'post')
{
$email = $this->request->getVar('email');
//echo $email; die();
$password = $this->request->getVar('password');
$memberdata = $this->MemberModel->verifyEmail($email);
if($memberdata)
{
if ($memberdata['is_email_verified'])
{
if (password_verify($password, $memberdata['password']))
{
$this->session->set('logged_user',$memberdata['id']);
return redirect()->to(base_url().'member_home');
}
else{
$this->session->setTempdata('error','sorry wrong password entered for the Email',3);
return redirect()->to(base_url());
}
}
else{
$this->session->setTempdata('error','Sorry your mail is not verified.please check your mail',3);
return redirect()->to(base_url());
}
}else
{
$this->session->setTempdata('error','sorry Email is not existe',3);
return redirect()->to(base_url());
}
}
return view('member_login');
}
public function logout()
{
session()->remove('logged_user');
session()->destroy();
return redirect()->to(base_url());
}
public function register()
{
if($this->request->getmethod() == 'post')
{
//insert member details
$MemberData = $this->request->getVar();
// Generate a random verification code
$verification_code = rand(10 , 99 ).rand(10 , 99 ).rand(10 , 99 );
$MemberData['verification_code'] = $verification_code;
$insert_data = $this->MemberModel->save($MemberData);
if($insert_data)
{
$sendmail_controller = new Sendmail_controller();
$sendmail_controller->index($this->request->getVar('email') , $MemberData['verification_code'] , 1);
return redirect()->to(base_url());
}
else
{
// Show error message
echo 'Error in registering user. Please try again.';
}
// return redirect()->to(base_url());
}
$data['country']=$this->cModel->fetch_country();
return view('member_registration',$data);
}
public function members_list()
{
$id = session()->get('logged_user');
$userdata['userdata']=$this->dModel->getLoggedInUserData($id);
$data['Membersdata'] = $this->MemberModel->select('member.* , country.name as country_name , state.name as state_name ,city.name as city_name')
->join('country', 'member.country = country.id', 'left')
->join('state', 'member.state = state.id', 'left')
->join('city', 'member.city = city.id', 'left')
->where('member.id != ',session()->get('logged_user') )
->findAll();
echo view('layout/header',$userdata);
echo view('members_list',$data);
echo view('layout/footer');
}
public function member_deactivate($id = null)
{
$this->MemberModel->where('md5(id)', $id )->set(array( 'is_active' => 0))->update();
return redirect()->to(base_url()."members_list");
}
public function member_activate($id = null)
{
$this->MemberModel->where('md5(id)', $id )->set(array( 'is_active' => 1))->update();
return redirect()->to(base_url()."members_list");
}
public function member_edit($member_id = null)
{
if($this->request->getmethod() == 'post')
{
//update member details
$MemberData = $this->request->getVar();
$member_id = $this->request->getVar('id');
$this->MemberModel->where('id', $member_id )->set($MemberData)->update();
return redirect()->to(base_url()."members_list");
}
$logged_user_id = session()->get('logged_user');
$userdata['userdata']=$this->dModel->getLoggedInUserData($logged_user_id);
$data['country']=$this->cModel->fetch_country();
$data['Memberdata'] = $this->MemberModel->select('member.* , country.name as country_name , state.name as state_name ,city.name as city_name')
->join('country', 'member.country = country.id', 'left')
->join('state', 'member.state = state.id', 'left')
->join('city', 'member.city = city.id', 'left')
->where('md5(member.id)', $member_id )
->find();
echo view('layout/header',$userdata);
echo view('member_form',$data);
echo view('layout/footer');
}
public function member_add()
{
if($this->request->getmethod() == 'post')
{
//insert member details
$MemberData = $this->request->getVar();
// Generate a random verification code
$verification_code = rand(10 , 99 ).rand(10 , 99 ).rand(10 , 99 );
$MemberData['verification_code'] = $verification_code;
$insert_data = $this->MemberModel->save($MemberData);
if($insert_data)
{
// Send the verification email
$sendmail_controller = new Sendmail_controller();
$sendmail_controller->index($this->request->getVar('email') , $MemberData['verification_code'] , 0);
}
return redirect()->to(base_url()."members_list");
}
$userdata['userdata']=$this->dModel->getLoggedInUserData(session()->get('logged_user'));
$data['country']=$this->cModel->fetch_country();
echo view('layout/header',$userdata);
echo view('member_form',$data);
echo view('layout/footer');
}
public function forgot_password()
{
if($this->request->getmethod() == 'get')
{
return view('forgot_password.php');
}
else if($this->request->getmethod() == 'post')
{
$email = $this->request->getVar('email');
$user_data = $this->MemberModel->where('email', $email)->find();
echo $user_data;
// echo $user_data;
if ($user_data)
{
$otp = rand(1000 , 9999 );
// $sendmail_controller = new Sendmail_controller();
$get_data = $Sendmail_controller->index($this->request->getVar('email') , $otp , 2 );
$data['status'] = 'success';
$data['otp'] = $otp;
echo json_encode($data);
}
else
{
$data['status'] = 'failed';
echo json_encode($data);
}
}
}
public function change_password_form()
{
if($this->request->getmethod() == 'post')
{
$otp = $this->request->getVar('otp');
$verify_otp = $this->request->getVar('verify_otp');
if ($otp == $verify_otp)
{
$email = $this->request->getVar('email');
$user_data = $this->MemberModel->where('email', $email)->find();
$this->session->setTempdata('id',$user_data[0]['id'],3);
$this->session->setTempdata('email',$user_data[0]['email'],3);
$this->session->setTempdata('mail_success', "OTP verification sucessfully",3);
return view('set_password.php');
}
else
{
$this->session->setTempdata('error', "You entered wrong OTP.Please retry",3);
return view('forgot_password.php');
}
}
}
public function set_password($id)
{
if($this->request->getmethod() == 'get')
{
$user_data = $this->MemberModel->where('md5(id)', $id)->find();
$this->session->setTempdata('id',$user_data[0]['id'],3);
$this->session->setTempdata('email',$user_data[0]['email'],3);
$this->session->setTempdata('mail_success', "Email verification sucessfully",3);
return view('set_password.php');
}
}
public function update_password()
{
if($this->request->getmethod() == 'post')
{
$MemberData = $this->request->getVar();
$member_id = $this->request->getVar('id');
$this->MemberModel->where('id', $member_id )->set($MemberData)->update();
$this->session->setTempdata('mail_success', "Password set sucessfully",3);
return redirect()->to(base_url());
}
}
public function buy_pack()
{
//insert member details
$array = $this->request->getVar();
//print_r($array);die();
$newArray = array();
foreach ($array as $key => $value) {
$newKey = substr($key, 0, -2);
$newArray[$newKey] = $value;
}
//print_r($newArray);die();
$packageData = $this->PackagesModel->where('id',$newArray['pack_id'])->find();
//print_r($packageData);die();
$today = date("Y-m-d");
$credits_data['member_id'] = $newArray['member_id'];
$credits_data['package_name'] = $packageData[0]['package_name'];
$credits_data['package_type'] = $packageData[0]['package_type'];
$credits_data['credit_points'] = $packageData[0]['credit'] * $newArray['pack_count'];
$credits_data['running_balance'] = $packageData[0]['credit'] * $newArray['pack_count'];
$credits_data['expired_points'] = 0;
$credits_data['expiring_date'] = date('Y-m-d', strtotime('+1 month', strtotime($today)));
$credits_data['cost'] = $packageData[0]['cost'];
//print_r($credits_data);die();
$insert_data = $this->creditsModel->save($credits_data);
if($insert_data)
{
echo true;
}else{
echo false;
}
}
public function use_points()
{
$FormData = $this->request->getVar();
//print_r($FormData);die();
$needed_points = $FormData['points'];
$columnName = 'running_balance';
$count = $this->creditsModel->selectSum($columnName)->where('member_id',$FormData['member_id'])->get()->getRow()->$columnName;
if($count > $needed_points)
{
$creditsData = $this->creditsModel->where('member_id',$FormData['member_id'])->findAll();
//$newArray = array();
foreach ($creditsData as $creditsDataindex => $creditsDataValue) {
if($creditsDataValue['expiring_date'] > date("Y-m-d"))
{
$temp_needed_points = $needed_points;
if($creditsDataValue['running_balance'] != 0 && $needed_points > 0)
{
$needed_points = ($needed_points - $creditsDataValue['running_balance']);
if($needed_points < 0 ){
$running_balance = $creditsDataValue['running_balance'] - $temp_needed_points;
$this->update_credit_package_data($creditsDataValue['id'] , array( 'running_balance'=>$running_balance , 'used_points'=> $creditsDataValue['used_points'] + $creditsDataValue['running_balance'] - $running_balance));
$this->CreditsUsageTrackingModel->save(array('member_id'=>$FormData['member_id'],'member_credits_id'=>$creditsDataValue['id'], 'used_points'=>($creditsDataValue['running_balance'] - $running_balance),'slot_date_time'=>date("Y-m-d")));
}else { $running_balance = 0;
$this->update_credit_package_data($creditsDataValue['id'] , array( 'running_balance'=>$running_balance , 'used_points'=> $creditsDataValue['used_points'] + $creditsDataValue['running_balance'] - $running_balance));
$this->CreditsUsageTrackingModel->save(array('member_id'=>$FormData['member_id'],'member_credits_id'=>$creditsDataValue['id'], 'used_points'=>($creditsDataValue['running_balance'] - $running_balance),'slot_date_time'=>date("Y-m-d")));
}
//$newArray[$creditsDataValue['running_balance']] = array('needed_points'=>$needed_points , 'running_balance'=>$running_balance , 'used_points'=> $creditsDataValue['running_balance'] - $running_balance);
}else{
}
}else{
}
}
echo true;
}else{
echo "u need to purchase points";
}
}
public function update_credit_package_data($id , $array)
{
$this->creditsModel->where('id', $id )->set($array)->update();
}
public function add_to_cart()
{
//insert member details
$array = $this->request->getVar();
//print_r($array);die();
$newArray = array();
foreach ($array as $key => $value) {
$newKey = substr($key, 0, -2);
$newArray[$newKey] = $value;
}
//print_r($newArray);die();
$insert_data = $this->cartModel->save($newArray);
if($insert_data)
{
echo true;
}else{
echo false;
}
}
public function cart_checkout()
{
$CartData = $this->cartModel->where('member_id',session()->get('logged_user'))->findAll();
$today = date("Y-m-d");
foreach ($CartData as $creditsDataindex => $creditsDataValue)
{
$packageData = $this->PackagesModel->where('id',$creditsDataValue['pack_id'])->find();
$credits_data['member_id'] = session()->get('logged_user');
$credits_data['package_name'] = $packageData[0]['package_name'];
$credits_data['package_type'] = $packageData[0]['package_type'];
$credits_data['credit_points'] = $packageData[0]['credit'] ;
$credits_data['running_balance'] = $packageData[0]['credit'] ;
$credits_data['expired_points'] = 0;
$credits_data['expiring_date'] = date('Y-m-d', strtotime('+1 month', strtotime($today)));
$credits_data['cost'] = $packageData[0]['cost'];
$insert_data = $this->creditsModel->save($credits_data);
if($insert_data)
{
$this->cartModel->where('id',$creditsDataValue['id'])->delete();
}
}
echo true;
}
public function scheduler()
{
$Data = $this->creditsModel->select('member_credits.* , member.name as member_name , member.email as member_email ')
->join('member', 'member_credits.member_id = member.id', 'left')
->findAll();
foreach ($Data as $index => $Value)
{
if(strtotime('-3 days', strtotime($Value['expiring_date'])) == strtotime(date("Y-m-d")))
{
$sendmail_controller = new Sendmail_controller();
$message = 'Hai '. $Value['member_name']. ' Your pack will expire with in three days';
$sendmail_controller->index($Value['member_email'] , null , 5);
}
}
}
public function processPayment()
{
$square = new SquareService();
$result = $square->processPayment(100); // Process payment of $100
return $result;
// Handle the payment result
// ...
}
// public function processPayment()
// {
// $square = new SquareService();
// $paymentForm = $square->getSquarePaymentForm();
// // Load the Square payment form view
// return view('payment_form', ['paymentForm' => $paymentForm]);
// }
// -----------------------------------------------
}