<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');



class Checkout extends CI_Controller {



	public function __construct()

	{



		parent::__construct();

		session_start();

		

		$this->load->model('index_m');

		$this->load->model('checkout_m');



	}

	

	

	public function step1($session)

	{

		

		if($session == '')

		{

			redirect('registration/index');

		}

		

		

		$data['error'] = 0;

		

		$submit_m = $this->input->post('submit_m');



		if($submit_m == 1)

		{			

			

			if($_SESSION['member'] != '')

			{

				

				$member_info = $this->index_m->get_user_record($_SESSION['member']);

				

				$step1[$session]['main_contact_firstname'] = $member_info['firstname'];

				$step1[$session]['main_contact_lastname'] = $member_info['lastname'];

				$step1[$session]['main_contact_email'] = $member_info['email'];

				$step1[$session]['main_contact_contact'] = $member_info['contact'];

				

				if($member_info['company'] != '')

				{

					$company_info = $this->index_m->get_company_info($member_info['company']);

					$step1[$session]['main_contact_companyid'] = $member_info['company'];

					$step1[$session]['main_contact_companyname'] = $company_info['company'];

					$step1[$session]['main_contact_company'] = $company_info['company'];

					$step1[$session]['main_contact_imas_membership'] = 1;

				}

				

				

				

			} else {

				$step1[$session]['main_contact_firstname'] = $this->input->post('main_contact_firstname');

				$step1[$session]['main_contact_lastname'] = $this->input->post('main_contact_lastname');

				$step1[$session]['main_contact_email'] = $this->input->post('main_contact_email');

				$step1[$session]['main_contact_contact'] = $this->input->post('main_contact_contact');

				$step1[$session]['main_contact_company'] = $this->input->post('main_contact_company');

				

			}

			

			$step1[$session]['invoice_firstname'] = $this->input->post('invoice_firstname');

			$step1[$session]['invoice_lastname'] = $this->input->post('invoice_lastname');

			$step1[$session]['invoice_email'] = $this->input->post('invoice_email');

			$step1[$session]['invoice_contact'] = $this->input->post('invoice_contact');

			$step1[$session]['invoice_address1'] = $this->input->post('invoice_address1');

			$step1[$session]['invoice_address2'] = $this->input->post('invoice_address2');

			$step1[$session]['invoice_postalcode'] = $this->input->post('invoice_postalcode');

			$step1[$session]['invoice_attention_to'] = $this->input->post('invoice_attention_to');

			$step1[$session]['company_uen'] = $this->input->post('company_uen');

		

			$step1[$session]['funding_agree'] = $funding_agree = $this->input->post('funding_agree');	

			

			$step1[$session]['beneficiary_name'] = '';

			$step1[$session]['bank_name'] = '';

			$step1[$session]['bank_account'] = '';

				

			if($funding_agree == 1)

			{

				$step1[$session]['beneficiary_name'] = $this->input->post('beneficiary_name');

				$step1[$session]['bank_name'] = $this->input->post('bank_name');

				$step1[$session]['bank_account'] = $this->input->post('bank_account');

				

			}

		

			$_SESSION['registration']['step1'] = $step1;

			

			redirect('checkout/step2/'.$session);

		}		

		

		

		if(!empty($_SESSION['registration']['step1']))

		{

			$member_info_details = $_SESSION['registration']['step1'][$session];

					

			$data['invoice_address1'] = $member_info_details['invoice_address1'];

			$data['invoice_address2'] = $member_info_details['invoice_address2'];

			$data['invoice_postalcode'] = $member_info_details['invoice_postalcode'];

			$data['invoice_attention_to'] = $member_info_details['invoice_attention_to'];

			$data['invoice_firstname'] = $member_info_details['invoice_firstname'];

			$data['invoice_lastname'] = $member_info_details['invoice_lastname'];

			$data['invoice_email'] = $member_info_details['invoice_email'];

			$data['invoice_contact'] = $member_info_details['invoice_contact'];

			$data['invoice_address1'] = $member_info_details['invoice_address1'];

			$data['invoice_address2'] = $member_info_details['invoice_address2'];

			$data['invoice_postalcode'] = $member_info_details['invoice_postalcode'];

			$data['invoice_attention_to'] = $member_info_details['invoice_attention_to'];

			$data['company_uen'] = $member_info_details['company_uen'];

			$data['funding_agree'] = $member_info_details['funding_agree'];

			$data['beneficiary_name'] = $member_info_details['beneficiary_name'];

			$data['bank_name'] = $member_info_details['bank_name'];

			$data['bank_account'] = $member_info_details['bank_account'];

			

			

			$data['member_info']['firstname']= $member_info_details['main_contact_firstname'];

			$data['member_info']['lastname']= $member_info_details['main_contact_lastname'];

			$data['member_info']['email']= $member_info_details['main_contact_email'];

			$data['member_info']['contact']= $member_info_details['main_contact_contact'];

			

			

			$data['firstname']= $member_info_details['main_contact_firstname'];

			$data['lastname']= $member_info_details['main_contact_lastname'];

			$data['email']= $member_info_details['main_contact_email'];

			$data['contact']= $member_info_details['main_contact_contact'];

			$data['company']= $member_info_details['main_contact_company'];

			

			

		} else {

			if($_SESSION['member'] != '')

			{

				$member_info = $this->index_m->get_user_record($_SESSION['member']);



				$invoice_attention_to = $member_info['firstname'].' '.$member_info['lastname'];

				$data['invoice_firstname'] = $member_info['firstname'];

				$data['invoice_lastname'] = $member_info['lastname'];

				$data['invoice_email'] = $member_info['email'];

				$data['invoice_contact'] = $member_info['contact'];

				$data['invoice_attention_to'] = $invoice_attention_to;

				$data['member_info'] = $member_info;



			}

		}

		

		$data['session'] = $_SESSION['registration_number'];

		

		$this->load->view('frontend/step1',$data);

	}

	

	

	public function step2($session)

	{	

		

		

		if($session == '')

		{

			redirect('registration/index');

		}

		

		$submit_m = $this->input->post('submit_m');



		if($submit_m == 1)

		{	

			$error = 0;

			$cart = $_SESSION['cart'];

			

			

			foreach($cart as $course_id=>$qty)

			{

				$detail = array();

				$details = $_SESSION['participants'][$course_id];

				

				if(sizeof($details) != $qty)

				{

					$error = 1;

				}

			}

			

		

			

			foreach($_SESSION['cart2'] as $course_id=>$r)

			{

				foreach($r as $module_code=>$rr)

				{

					

					$qty = $_SESSION['cart2'][$course_id][$module_code]['qty'];

					

					$detail = array();

					$details = $_SESSION['participants'][$course_id][$module_code];

					

					if(sizeof($details) != $qty)

					{

						$error = 1;

					}

				}

					

			}

			

			

			if($error == 1)

			{

				$data['error'] = 1;

			} else {

				redirect('checkout/step3/'.$session);

			}

		} 

		

		$data['session'] = $_SESSION['registration_number'];

		$data['cart'] = $_SESSION['cart'];

		$data['cart2'] = $_SESSION['cart2'];

		

		$this->load->view('frontend/step2',$data);

	}

	

	private function validateDate($date, $format = 'Y-m-d')

	{

		$d = DateTime::createFromFormat($format, $date);

		// The Y ( 4 digits year ) returns TRUE for any integer with any number of digits so changing the comparison from == to === fixes the issue.

		return $d && $d->format($format) === $date;

	}

		

	public function step2_1($course_id,$code='',$succ='')

	{

		

		$qty = $_SESSION['cart'][$course_id];

	

		if($code != '')

		{			

			$qty = $_SESSION['cart2'][$course_id][$code]['qty'];

		}

		

		$session = $_SESSION['registration_number'];

		

		$submit_m = $this->input->post('submit_m');

			

		if($submit_m == 1)

		{			

			$code = $this->input->post('code');

			

			if($code == '')

			{

				unset($_SESSION['participants'][$course_id]);	

			} else {

				unset($_SESSION['participants'][$course_id][$code]);

				

				$qty = $_SESSION['cart2'][$course_id][$code]['qty'];

			}

			

			$upload = $this->input->post('upload');

			

			if($upload != '')

			{

				if($code == '' || $code == '0')

				{

					$allowed_qty = $_SESSION['cart'][$course_id];

				} else {

					$allowed_qty = $_SESSION['cart2'][$course_id][$code]['qty'];

					

				}

				

				$file = $_FILES['uploadfile']['tmp_name'];

				

				$data = read_excel($file);

				

				if(!empty($data))

				{

					

					//validateDate

					foreach($data[0] as $row=>$d)

					{

						if($row == 0)

							continue;

						

						if($d[4] == 'Yes')

						{

							if($d[5] == '' || $d[6] == '' || $d[7] == '')

							{								

								redirect('checkout/step2_1/'.$course_id.'/0/4');	

							}

						}

					

						if($d[7] != '' && !$this->validateDate($d['7']))

						{

							

							redirect('checkout/step2_1/'.$course_id.'/0/3');	

							

						}	

						

					}

					

						

					

					$counter = 0;

					foreach($data[0] as $row=>$d)

					{

						if($row == 0)

							continue;

						

						if($counter >= $allowed_qty)

							continue;

						

						$i = $row;

					

				

						if($d[0] !='' && $d[1] != '' && $d[2] != '')

						{

							if($d[4] == Yes)

							{

									$d[4] = 1;

								

							} else {

									$d[4] = 2;

									$d[5] = '';

									$d[6] = '';

							}

							
							$singapore_citizen_pr2 = '';
							
							if($d[6] != '')
							{
								if($d[6] == 'Singapore Citizen')
									$singapore_citizen_pr2 = 1;
								
								if($d[6] == 'Permanent Resident')
									$singapore_citizen_pr2 = 2;
							}
							

							$record[$i] = array(

								'fullname'	=> $d[0],

								'email'	=> $d[1],

								'countrycode'	=> $d[2],

								'tel2'	=> $d[3],

								'singapore_citizen_pr'	=> $d[4],

								'nric'	=> $d[5],
								
								'singapore_citizen_pr2'	=> $singapore_citizen_pr2,

								'dob'	=> $d[7],

							);



							$counter++;

						}

					}

					

					

					if($code == '')

					{

						$_SESSION['participants'][$course_id] = $record;

					} else {

						

						$_SESSION['participants'][$course_id][$code] = $record;



					}

					

				

				}

				

				redirect('checkout/step2_1/'.$course_id.'/'.$code);

			}

			

			$fullname = $this->input->post('fullname');

			$email = $this->input->post('email');

			$countrycode = $this->input->post('countrycode');

			$tel2 = $this->input->post('tel2');

			$singapore_citizen_pr = $this->input->post('singapore_citizen_pr');
			
			$singapore_citizen_pr2 = $this->input->post('singapore_citizen_pr2');

			$nric = $this->input->post('nric');

			$dob = $this->input->post('dob');

						

			

			for($i=1;$i<=$qty;$i++)

			{

				

				$record[$i] = array(

					'fullname'	=> $fullname[$i],

					'email'	=> $email[$i],

					'countrycode'	=> $countrycode[$i],

					'tel2'	=> $tel2[$i],

					'singapore_citizen_pr'	=> $singapore_citizen_pr[$i],
					
					'singapore_citizen_pr2'	=> $singapore_citizen_pr2[$i],

					'nric'	=> $nric[$i],

					'dob'	=> $dob[$i],

				);

			}

						

			if($code == '')

			{

				$_SESSION['participants'][$course_id] = $record;

			} else {



				$_SESSION['participants'][$course_id][$code] = $record;



			}



			

			redirect('checkout/step2/'.$session);

		}

		

		$details = $this->index_m->info($course_id);

		$data['qty'] = $qty;		

		$data['details'] = $details;		

		$data['session'] = $_SESSION['registration_number'];

		$data['funding_agree'] = $_SESSION['registration']['step1'][$_SESSION['registration_number']]['funding_agree'];

		

		

		$domain = '';

		$domains = '';

		

		if($_SESSION['member'] != '')

		{			

			$user_info = $this->index_m->get_user_record($_SESSION['member']);

			$company_info = $this->index_m->get_company_info($user_info['company']);	



			if($user_info['company'] == 38)

			{				

				$domains = 'foord.com,foord.com.sg';

				

			} else {

				

				$domain = $company_info['domain'];

			}

			

		}

				

		$data['course_id'] = $course_id;

		$data['domain'] = $domain;

		$data['domains'] = $domains;

	

		if($code == '')

		{		

			$data['submission'] = $_SESSION['participants'][$course_id];	

			

		} else {			

			$data['submission'] = $_SESSION['participants'][$course_id][$code];

		}

		

		

		$data['code'] = $code;

		$data['succ'] = $succ;

		

		$this->load->view('frontend/step2_1',$data);

	}

	

	public function step3($session)

	{

		

		if($session == '')

		{

			redirect('registration/index');

		}

		

		

		$data['error'] = 0;

		

		$submit_m = $this->input->post('submit_m');



		if($submit_m == 1)

		{

			$agree1 = $this->input->post('agree1');

			$agree2 = $this->input->post('agree2');

			$agree3 = $this->input->post('agree3');

			

			

			if($agree1 && $agree2 && $agree3)		

			{		

				

				$session= $_SESSION['registration_number'];

				redirect('checkout/step4/'.$session);	

				

			}

		}		

		

		$data['session'] = $_SESSION['registration_number'];

		$data['step3_previous'] = $_SESSION['step3_previous'];

		

		$this->load->view('frontend/step3',$data);

	}		

	

	private function calculate_funding()

	{

		$total_funding = 0;

		

		foreach($_SESSION['cart'] as $course_id=>$qty)

		{

			$course_info = $this->index_m->info($course_id);



			if($_SESSION['member'] != '')

			{

				$unit_price = $course_info['imas_price'];

			} else {

				$unit_price = $course_info['regular_price'];



			}

			

			$qty = $_SESSION['cart'][$course_id];

				



			foreach($_SESSION['participants'][$course_id] as $id=>$recor)

			{

				$funding = 0;

				$dob = '';

				$dob2 = array();

				$singapore_citizen_pr = '';

				$singapore_citizen_pr = $recor['singapore_citizen_pr'];
				
				$singapore_citizen_pr2 = $recor['singapore_citizen_pr2'];
				

				$dob = $recor['dob'];

				

				$dob2 = explode('-',$dob);

				$year = $dob2[0];

				$age = date('Y')-$year;

				$funding_amount = 0;

				

				$course_info = $this->index_m->info($course_id);



				if($course_info['special_programme_type'] == 1)

				{

					if($singapore_citizen_pr == 1)

					{

						if($age >= 40)

   				      {

						  	if($singapore_citizen_pr2 == 1)
							{
								$funding_amount = $unit_price*0.7;
							}

						  
						  	if($singapore_citizen_pr2 == 2)
							{
								$funding_amount = $unit_price*0.3;
							}
						  
						} else {



							$funding_amount = $unit_price*0.3;

						}

					}



					if($funding_amount > 500)

						$funding_amount = 500;

				}



				if($course_info['special_programme_type'] == 2)

				{

					

					if($singapore_citizen_pr == 1)

					{

						if($age >= 40)

						{

							if($singapore_citizen_pr2 == 1)
							{
								$funding_amount = $unit_price*0.7;
							}

						  
						  	if($singapore_citizen_pr2 == 2)
							{
								$funding_amount = $unit_price*0.5;
							}
							

						} else {



							$funding_amount = $unit_price*0.5;

						}

					}

					

				



					if($funding_amount > 3000)

						$funding_amount = 3000;

				}

				

				$total_funding += $funding_amount;



			}

		}

		

	

		foreach($_SESSION['cart2'] as $course_id=>$record)

		{

			

			foreach($record as $code=>$rr)

			{

				$course_info = $this->index_m->info($course_id);



				if($_SESSION['member'] != '')

				{

					$unit_price = $course_info['imas_price'];

				} else {

					$unit_price = $course_info['regular_price'];



				}

				

				foreach($_SESSION['participants'][$course_id][$code] as $id=>$recor)

				{

					$funding = 0;

					$dob = '';

					$dob2 = array();

					$singapore_citizen_pr = $recor['singapore_citizen_pr'];
					$singapore_citizen_pr2 = $recor['singapore_citizen_pr2'];


					$dob = $recor['dob'];

					

					$dob2 = explode('-',$dob);

					$year = $dob2[0];

					$age = date('Y')-$year;

					

					$course_info = $this->index_m->info($course_id);


					if($course_info['special_programme_type'] == 1)

					{

						if($singapore_citizen_pr == 1)

						{

							if($age >= 40)

							{

								if($singapore_citizen_pr2 == 1)
								{
									$funding_amount = $unit_price*0.7;
								}


								if($singapore_citizen_pr2 == 2)
								{
									$funding_amount = $unit_price*0.3;
								}
							

							} else {



								$funding_amount = $unit_price*0.3;

							}

						}



						if($funding_amount > 500)

							$funding_amount = 500;

					}



					if($course_info['special_programme_type'] == 2)

					{

						

						if($singapore_citizen_pr == 1)

						{

							if($age >= 40)

							{

								if($singapore_citizen_pr2 == 1)
								{
									$funding_amount = $unit_price*0.7;
								}


								if($singapore_citizen_pr2 == 2)
								{
									$funding_amount = $unit_price*0.5;
								}
								

							} else {



								$funding_amount = $unit_price*0.5;

							}

						}

						

					



						if($funding_amount > 3000)

							$funding_amount = 3000;

					}

					

					$total_funding += $funding_amount;



				}

			

			}
		}

		

		return $total_funding;

	}

	

	public function step4($session)

	{

		if($session == '')

		{

			redirect('registration/index');

		}

		

		

		$submit_m = $this->input->post('submit_m');



		if($submit_m == 1)

		{

			$transaction_num = $_SESSION['registration_number'];			

			$payment_method = $this->input->post('payment_method');

			

			//store in DB

			

			$session = $_SESSION['registration_number'];

			

			$is_member = 0;

			$companyid = '';

			$companyname = '';

			

			if($_SESSION['member'] != '')

			{

				$is_member = 1;

				$user_info = $this->index_m->get_user_record($_SESSION['member']);

				$company_info = $this->index_m->get_company_info($user_info['company']);				

				$companyid = $user_info['company'];

				$companyname = $company_info['company'];

			} else {

				$is_member = 2;

			}

						

			$trans_num = $this->index_m->get_trans_num();

			$trans_num = intval($trans_num);

			$transaction_num  = date('Y').'/'.date('m').'/'.str_pad($trans_num, 3, "0", STR_PAD_LEFT).'-CPD';

			

			$data['session'] = $session;

			$data['transaction_num'] = $transaction_num;

			$data['invoice_no'] = $transaction_num;

			$data['member_id'] = $_SESSION['member'];

			$data['promo_code'] = $_SESSION['code'];

			$data['main_contact_imas_membership'] = $is_member;

			$data['main_contact_companyname'] = $companyname;

			$data['main_contact_companyid'] = $companyid;

			$data['main_contact_firstname'] = $_SESSION['registration']['step1'][$session]['main_contact_firstname'];

			$data['main_contact_lastname'] = $_SESSION['registration']['step1'][$session]['main_contact_lastname'];

			$data['main_contact_email'] = $_SESSION['registration']['step1'][$session]['main_contact_email'];

			$data['main_contact_contact'] = $_SESSION['registration']['step1'][$session]['main_contact_contact'];

			$data['main_contact_company'] = $_SESSION['registration']['step1'][$session]['main_contact_company'];

			$data['invoice_firstname'] = $_SESSION['registration']['step1'][$session]['invoice_firstname'];

			$data['invoice_lastname'] = $_SESSION['registration']['step1'][$session]['invoice_lastname'];

			$data['invoice_email'] = $_SESSION['registration']['step1'][$session]['invoice_email'];

			$data['invoice_contact'] = $_SESSION['registration']['step1'][$session]['invoice_contact'];

			$data['invoice_address1'] = $_SESSION['registration']['step1'][$session]['invoice_address1'];

			$data['invoice_address2'] = $_SESSION['registration']['step1'][$session]['invoice_address2'];

			$data['invoice_postalcode'] = $_SESSION['registration']['step1'][$session]['invoice_postalcode'];

			$data['invoice_attention_to'] = $_SESSION['registration']['step1'][$session]['invoice_attention_to'];

			$data['company_uen'] = $_SESSION['registration']['step1'][$session]['company_uen'];

			$data['funding_agree'] = $_SESSION['registration']['step1'][$session]['funding_agree'];

			$data['beneficiary_name'] = $_SESSION['registration']['step1'][$session]['beneficiary_name'];

			$data['bank_name'] = $_SESSION['registration']['step1'][$session]['bank_name'];

			$data['bank_account'] = $_SESSION['registration']['step1'][$session]['bank_account'];

			

			

			$data['status'] = 0;

			$data['paid'] = 0;

			

		

			$code = $_SESSION['code'];

			if($code != '')

			{	

				$promo_ok = 1;

				$promo_info = $this->index_m->get_promo($code);

					

				if($promo_info['promo_type'] == 1)

				{

					if($_SESSION['member'] != '')

						$promo_ok = 0;

				}

				

				if($promo_info['promo_type'] == 2)

				{

					if($_SESSION['member'] == '')

						$promo_ok = 0;

				}

			}

			

			foreach($_SESSION['cart'] as $course_id=>$r)

			{

				$details = $this->index_m->info($course_id);

							

				if($_SESSION['member'] != '')

				{

					$unit_price = $details['imas_price'];

				} else {

					$unit_price = $details['regular_price'];



				}



				$qty = '';



				$qty = $_SESSION['cart'][$course_id];



				if($qty == '')

					$qty = 1;





				$discount_price = 0;



				if(!empty($promo_info) && $promo_ok == 1)

				{

					$discount_price = $unit_price*($promo_info['percent']/100);

					$discount_percent = $promo_info['percent'];

				}

				

				$discount_amount = $discount_price*$qty;

				$total += ($unit_price-$discount_price)*$qty;

			}

			

			

			foreach($_SESSION['cart2'] as $course_id=>$r)

			{				

				foreach($r as $module_code=>$rr)

				{

					$details = $this->index_m->info($course_id);



					if($_SESSION['member'] != '')

					{

						$unit_price = $details['imas_price'];

					} else {

						$unit_price = $details['regular_price'];



					}



					$qty = '';



					$qty = $_SESSION['cart2'][$course_id][$module_code]['qty'];



				

					if($qty == '')

						$qty = 1;





					$discount_price = 0;



					if(!empty($promo_info) && $promo_ok == 1)

					{

						$discount_price = $unit_price*($promo_info['percent']/100);

						$discount_percent = $promo_info['percent'];

					}



					$discount_amount = $discount_price*$qty;

					$total += ($unit_price-$discount_price)*$qty;

					

				}

			}

			

			$funding = $this->calculate_funding();

			

			

			

			$total_net = $total-$funding;

			$deposit = $total-$total_net;

			

			$data['discount_percent'] = $discount_percent;

			$data['discount_amount'] = $discount_amount;

			$data['total'] = $total;

			$data['gst_amount'] = $total*0.08;

			$data['grand_total'] = $total*1.08;

			$data['funding'] = $funding;

			$data['total_net'] = $total_net;

			$data['deposit'] = $deposit;

			

			

			$id = $this->checkout_m->add_registration($data);

			

			$registration_id = $id;

			

			if($id > 0)

			{

				$ordering = 0;

				

				foreach($_SESSION['cart'] as $course_id=>$qty)

				{


					$datae = array();

					$course_info = $this->index_m->info($course_id);

							

					if($_SESSION['member'] != '')

					{

						$unit_price = $course_info['imas_price'];

					} else {

						$unit_price = $course_info['regular_price'];



					}

					

					$promo_price = 0;

					

					if($discount_percent > 0)

					{

						$promo_price = $unit_price*($discount_percent/100);

					}



					$datae['registration_id'] = $registration_id;	

					$datae['course_id'] = $course_id;	

					$datae['title'] = $course_info['name'];	

					$datae['price'] = $unit_price;	

					$datae['promo_price'] = $promo_price;	

					$datae['qty'] = $qty;	

					$datae['ordering'] = $ordering;	

					$id2 = $this->checkout_m->add_registration_events($datae);

					

					$ordering++;

					

					$ordering2 = 0;

				

					foreach($_SESSION['participants'][$course_id] as $id=>$recor)

					{

						$datap = array();

						$funding_amount = 0;

						$age = '';



						$singapore_citizen_pr = '';

						$singapore_citizen_pr = $recor['singapore_citizen_pr'];

						$singapore_citizen_pr2 = $recor['singapore_citizen_pr2'];


						$dob = $recor['dob'];				

						$dob2 = explode('-',$dob);

						$year = $dob2[0];

						$age = date('Y')-$year;

						

						$course_info = $this->index_m->info($course_id);


						if($course_info['special_programme_type'] == 1)

						{

							if($singapore_citizen_pr == 1)

							{

								if($age >= 40)

								{
										if($singapore_citizen_pr2 == 1)
										{
											$funding_amount = $unit_price*0.7;
										}


										if($singapore_citizen_pr2 == 2)
										{
											$funding_amount = $unit_price*0.3;
										}

								} else {



									$funding_amount = $unit_price*0.3;

								}

							}



							if($funding_amount > 500)

								$funding_amount = 500;

						}

						

						if($course_info['special_programme_type'] == 2)

						{

							if($singapore_citizen_pr == 1)

							{

								if($age >= 40)

								{

									if($singapore_citizen_pr2 == 1)
									{
										$funding_amount = $unit_price*0.7;
									}


									if($singapore_citizen_pr2 == 2)
									{
										$funding_amount = $unit_price*0.5;
									}

								} else {



									$funding_amount = $unit_price*0.5;

								}

							}



							if($funding_amount > 3000)

								$funding_amount = 3000;

						}

						

						$datap['name'] = $recor['fullname'];	

						$datap['email'] = $recor['email'];

						$datap['tel'] = $recor['tel'];

						$datap['countrycode'] = $recor['countrycode'];

						$datap['tel2'] = $recor['tel2'];

						$datap['singapore_citizen_pr'] = $recor['singapore_citizen_pr'];						

						$datap['singapore_citizen_pr2'] = $recor['singapore_citizen_pr2'];	
						

						if($datap['singapore_citizen_pr'] == '')
							$datap['singapore_citizen_pr'] = 0;

						if($datap['singapore_citizen_pr'] == '2')
							$datap['singapore_citizen_pr2'] = '';

						

						$datap['nric'] = $recor['nric'];

						$datap['dob'] = $recor['dob'];

						$datap['registration_event_id'] = $id2;	

						$datap['course_id'] = $course_id;	

						$datap['registration_id'] = $registration_id;

						$datap['full_amount'] = $unit_price;	

						$datap['nett_amount'] = $unit_price-$funding_amount;	

						$datap['funding_amount'] = $funding_amount;	

						$datap['menu_order'] = $ordering2;	

						$this->checkout_m->add_registration_participants($datap);						

						

						$ordering2++;

					}

				}

				

				

				foreach($_SESSION['cart2'] as $course_id=>$r)

				{

					

					foreach($r as $module_code=>$rr)

					{

						$datae = array();

						$course_info = $this->index_m->info($course_id);



						if($_SESSION['member'] != '')

						{

							$unit_price = $course_info['imas_price'];

						} else {

							$unit_price = $course_info['regular_price'];

						}

						

						$selected_module = array();

						$additional_modules = '';

						

						$qty = $_SESSION['cart2'][$course_id][$module_code]['qty'];

						$selected_module = $_SESSION['cart2'][$course_id][$module_code]['selected_module'];

						

						$single_course_id = array();

						

						foreach($selected_module as $sst)

						{

							$c_info =  $this->index_m->get_course_info_by_name($sst);

							

							$single_course_id[] = $c_info['id'];

						}

						

						$additional_modules = serialize($selected_module);		



						

						$promo_price = 0;



						if($discount_percent > 0)

						{

							$promo_price = $unit_price*($discount_percent/100);

						}

						



						$datae['registration_id'] = $registration_id;	

						$datae['course_id'] = $course_id;	

						$datae['title'] = $course_info['name'];	

						$datae['price'] = $unit_price;	

						$datae['promo_price'] = $promo_price;	

						$datae['qty'] = $qty;	

						$datae['bundle'] = $course_info['programme_mode'];	

						$datae['additional_modules'] = $additional_modules;	

						$datae['ordering'] = $ordering;	

						$id2 = $this->checkout_m->add_registration_events($datae);



						$ordering++;



						$ordering2 = 0;



						foreach($_SESSION['participants'][$course_id][$module_code] as $id=>$recor)

						{

							$datap = array();



							$funding_amount = 0;

							$age = '';

							

							$singapore_citizen_pr = '';

							$singapore_citizen_pr = $recor['singapore_citizen_pr'];

							$singapore_citizen_pr2 = $recor['singapore_citizen_pr2'];

							

							$dob = $recor['dob'];				

							$dob2 = explode('-',$dob);

							$year = $dob2[0];

							$age = date('Y')-$year;

							

							$course_info = $this->index_m->info($course_id);



							if($course_info['special_programme_type'] == 1)

							{

								if($singapore_citizen_pr == 1)

								{

									if($age >= 40)

									{

										if($singapore_citizen_pr2 == 1)
										{
											$funding_amount = $unit_price*0.7;
										}


										if($singapore_citizen_pr2 == 2)
										{
											$funding_amount = $unit_price*0.3;
										}
										

									} else {



										$funding_amount = $unit_price*0.3;

									}

								}



								if($funding_amount > 500)

									$funding_amount = 500;

							}



							if($course_info['special_programme_type'] == 2)

							{

								if($singapore_citizen_pr == 1)

								{

									if($age >= 40)

									{
											if($singapore_citizen_pr2 == 1)
											{
												$funding_amount = $unit_price*0.7;
											}


											if($singapore_citizen_pr2 == 2)
											{
												$funding_amount = $unit_price*0.5;
											}

									} else {



										$funding_amount = $unit_price*0.5;

									}

								}



								if($funding_amount > 3000)

									$funding_amount = 3000;

							}

							

							$datap['single_course_id'] = implode(',',$single_course_id);	

							$datap['name'] = $recor['fullname'];	

							$datap['email'] = $recor['email'];

							$datap['countrycode'] = $recor['countrycode'];

							$datap['tel2'] = $recor['tel2'];

							$datap['singapore_citizen_pr'] = $recor['singapore_citizen_pr'];
							$datap['singapore_citizen_pr2'] = $recor['singapore_citizen_pr2'];
							

							if($datap['singapore_citizen_pr'] == '')
								$datap['singapore_citizen_pr'] = 0;

						
							if($datap['singapore_citizen_pr'] == '2')
								$datap['singapore_citizen_pr2'] = '';

							$datap['nric'] = $recor['nric'];

							$datap['dob'] = $recor['dob'];

							$datap['registration_event_id'] = $id2;	

							$datap['course_id'] = $course_id;	

							$datap['registration_id'] = $registration_id;

							$datap['full_amount'] = $unit_price;	

							$datap['nett_amount'] = $unit_price-$funding_amount;	

							$datap['funding_amount'] = $funding_amount;	

							$datap['menu_order'] = $ordering2;	

							$this->checkout_m->add_registration_participants($datap);						



							$ordering2++;

						}

					}

				}

			}

			

			if($payment_method == 1)

			{				

				$this->invoice($id);

				

				$datar_1['payment_method'] = $payment_method;

				$datar_1['status'] = 1;

				$datar_1['datetime_submission2'] = date('Y-m-d H:i:s');

				$this->checkout_m->update_registration($registration_id,$datar_1);

				

				$this->send_acknowledgement($registration_id,1);

				

				redirect('checkout/thankyou');	

			}

			

			

			if($payment_method == 2)

			{						

				

				$this->invoice($id);

				

				$datar_2['payment_method'] = $payment_method;

				$datar_2['datetime_submission2'] = date('Y-m-d H:i:s');

				$datar_2['datetime_redirect_to_payment'] = date('Y-m-d H:i:s');

				$this->checkout_m->update_registration($registration_id,$datar_2);	

								

				$trans_no = $_SESSION['registration_number'];

				header('Location: '.$this->config->item('base_url').'/paypal-express-checkout/process.php?trans_no='.$transaction_num);

				

			}

			

		}

		

		$code = $this->input->post('code');

		$submit_m1 = $this->input->post('submit_m1');

		$code_post = 0;



		if($code != '')

		{

			$code_post = 1;

			

			$promo_info = array();

			

			$promo_info = $this->index_m->get_promo($code);

			

			if(!empty($promo_info))

			{

				$today = date('Y-m-d');

				$ok = 0;

				

				if($today >= $promo_info['start_date'] && $today <= $promo_info['end_date'] && $promo_info['start_date'] != '0000-00-00' && $promo_info['end_date'] != '0000-00-00')

				{

					$ok = 1;

				}		

				

				if($promo_info['start_date'] == '' && $promo_info['end_date'] != '')				

				{

					if($today <= $promo_info['end_date'])

						$ok = 1;

				}

				

				

				if($promo_info['end_date'] == '' && $promo_info['start_date'] != '')				

				{

					if($today >= $promo_info['start_date'])

						$ok = 1;

				}

							

				if($promo_info['start_date'] == '' && $promo_info['end_date'] == '')

				{

					$ok = 1;

				}

				

				if($promo_info['promo_type'] == 1)

				{

					if($_SESSION['member'] != '')

						$ok = 0;

				}

				

				if($promo_info['promo_type'] == 2)

				{

					if($_SESSION['member'] == '')

						$ok = 0;

				}

				

				

				if($ok == 1)

				{

					$_SESSION['code'] = $code;

					$data['promo_info'] = $promo_info;

					$data['code'] = $code;

				} else {

					

					$_SESSION['code'] = '';

					$data['promo_info'] = '';

					$data['error_code'] = 1;

					$data['code'] = $code;

				}

			} else {

				$data['error_code'] = 1;

				

			}

		} 

		

		if($submit_m1 == 1 && $code == '')

		{

			$code_post = 1;

			$_SESSION['code'] = '';

			$data['promo_info'] = '';

			$data['code'] = '';

		}



		if($_SESSION['code'] != '' && $code_post == 0)

		{	

			$code = $_SESSION['code'] ;

			

			$promo_info = array();

			

			$promo_info = $this->index_m->get_promo($code);

			

			$ok = 1;



			if($promo_info['promo_type'] == 1)

			{

				if($_SESSION['member'] != '')

					$ok = 0;

			}

			

			if($promo_info['promo_type'] == 2)

			{

				if($_SESSION['member'] == '')

					$ok = 0;

			}

				

			if($ok == 1)

			{

				$data['promo_info'] = $promo_info;

				$data['code'] = $code;

			}

		}

		

		$data['session'] = $_SESSION['registration_number'];
		$data['funding'] = $this->calculate_funding();

	

		$this->load->view('frontend/step4',$data);

	}

	

	public function thankyou()

	{

				

		$data['error'] = 0;

		unset($_SESSION['registration_number']);

		unset($_SESSION['cart']);

		unset($_SESSION['cart2']);

		unset($_SESSION['registration']);

		unset($_SESSION['participants']);

		unset($_SESSION['code']);

		

		$this->load->view('frontend/thankyou',$data);

	}

	

	

	public function payment_failure()

	{

		

		$data['error'] = 0;

		session_destroy();

		

		$this->load->view('frontend/payment_failure',$data);

	}

	

	public function test($primary_id='')

	{

		print 's1a';

	}



	public function send_acknowledgement($primary_id='',$both='')

	{

		

		if($primary_id == '')

			return false;

		

		$registration_info = $this->checkout_m->get_registration_info($primary_id);

		

		if($registration_info['main_contact_imas_membership'] == 1)

		{

			$company_info = $this->index_m->get_company_info($registration_info['main_contact_companyid']);

			$companyname = $company_info['company'];

		} else {

			$companyname = $registration_info['main_contact_company'];

		}

		

		$courses_listing = $this->index_m->get_registration_events($primary_id);

		

		foreach($courses_listing as $c)

		{

			$courses[] = $c['title'];

		}

		

		$to = $registration_info['invoice_email'];

		$to2 = $registration_info['main_contact_email'];

		$data['courses'] = implode(', ',$courses);

		$data['companyname'] = $companyname;

		$data['registration_info'] = $registration_info;

		$data['registration_id'] = $registration_info['transaction_num'];

		$data['name'] = $registration_info['main_contact_firstname'].' '.$registration_info['main_contact_lastname'];

		$data['tnc_link'] = site_url('registration/tnc');

		

		$html = $this->load->view('emails/acknowledgement',$data,true);

			

		$from = $this->config->item('from');

		$username = $this->config->item('username');

		$password = $this->config->item('password');

		$host = $this->config->item('host');

		$port = $this->config->item('port');

		$from_name = $this->config->item('from_name');

		

		$subject = 'IMAS iLearn | Acknowledgement of Receipt of Order ';		

		

		$invoice_pdf = $this->invoice($primary_id);

		

		if($invoice_pdf != '')

		{

			$file = 'uploads/'.$invoice_pdf.'.pdf';

			$filename = $invoice_pdf.'.pdf';	

		}

		

		

		send_email($to,$host,$port,$username,$password,$from,$from_name,$subject,$html,$file,$filename);

		

		if($to2 != $to)		

			send_email($to2,$host,$port,$username,$password,$from,$from_name,$subject,$html,$file,$filename);

			

		

	}

	

	

	public function invoice($primary_id='')

	{		

		if($primary_id == '')

			return false;

		

		$registration_info = $this->checkout_m->get_registration_info($primary_id);		

		

		if($registration_info['payment_method'] != 1 && $registration_info['payment_method'] != 2)

			return false;

		
		

		if($registration_info['main_contact_imas_membership'] == 1)

		{

			$company_info = $this->index_m->get_company_info($registration_info['main_contact_companyid']);

			$companyname = $company_info['company'];

		} else {

			$companyname = $registration_info['main_contact_company'];

		}

		

		$balance = '0.00';

		

		if($registration_info['paid'] == 0)	 	

			$balance = number_format($registration_info['total']*1.08,2);

		

		

		$courses = $this->index_m->get_registration_events($primary_id);

		

		$all_people = $this->index_m->get_registration_participants_by_id($primary_id);

	

		

		foreach($all_people as $aa)

		{

			$c_info = $this->index_m->info($aa['course_id']);

		

			if($c_info['programme_mode'] == 1)

			{

				$single_course_id = '';

				$single_course_id = $aa['single_course_id'];

				$single_course_id = explode(',',$aa['single_course_id']);

				

				$listing[$aa['email']][$aa['name']]['course'][] = $aa['course_id'];

				

				

				foreach($single_course_id as $ssc)

				{

					$listing[$aa['email']][$aa['name']]['course'][] = $ssc;

				}

			} else {

				$listing[$aa['email']][$aa['name']]['course'][] = $aa['course_id'];

				

			}

			

			$listing[$aa['email']][$aa['name']]['full_amount'] += $aa['full_amount'];

			$listing[$aa['email']][$aa['name']]['nett_amount'] += $aa['nett_amount'];

			$listing[$aa['email']][$aa['name']]['funding_amount'] += $aa['funding_amount'];

			$details_people[$aa['name']] = $aa['email'];

		};



		

		$data['listing'] = $listing;		

		$data['details_people'] = $details_people;

		

		$data['courses'] = $courses;

		$data['balance'] = $balance;

		$data['companyname'] = $companyname;

		$data['registration_info'] = $registration_info;

		$data['qty'] = $registration_info['num_of_participants'];		

		$data['invoice_no'] = $registration_info['invoice_no'];

		$data['date'] = date('d F Y');

		$data['name'] = $registration_info['main_contact_firstname'].' '.$registration_info['main_contact_lastname'];

		$data['registration_id'] = $registration_info['transaction_num'];

		$data['all_courses'] = $this->index_m->all_courses2();

		

		$html = $this->load->view('emails/invoice_pdf',$data,true);

		

		

		$invoice_no = $data['invoice_no'];

		$invoice_no = str_replace('/','-',$invoice_no);



		pdf_create($html,'Invoice-'.$invoice_no,false);		

		

		if($data['invoice_no'] != '')

		{

			return 'Invoice-'.$invoice_no;

		} else {

			return '';

		}

	}

	 

}

/* End of file welcome.php */



/* Location: ./application/controllers/welcome.php */