File "task.php"

Full Path: /home/ichhrkpd/public_html/idcm/img/teachers/task.php
File size: 96.98 KB
MIME-type: text/x-php
Charset: utf-8

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Task extends GSController {
	
	public function index() {
		$this->load->model("database/Madmin");
		
		if($this->CheckSession()) {
			redirect("task/dashboard");die;
		}
		
		$message="";
		
		if(IsPostBack){
			$email = trim($_POST['email']);
			$password = trim($_POST['password']);
			if ($this->Madmin->authenticate($email, $password)) {
				$uType = $this->session->GetCurrentUserType();
				if($uType == "AD"){
					redirect("task/dashboard");
				} else {
					redirect("task/vprofile");
				}
				
			} else {
				$message = "User ID/password combination incorrect.";
			}
		}
		
		$this->load->model("database/Madmin");
		$rData=array();
		$rData['loginObj']=$this->Madmin;
		$rData['title'] = "VT Corporate Cup PM Application";
		$rData['field'] = "User ID";
		$rData['msg'] = $message;
		$this->GetDefaultConfiguration($rData);
		$this->LoginPanel($rData);
		//redirect("task/dashboard");
	}
	
	
	
	
	
	
	
	
	
	public function forgot_password() {
		$this->load->model("database/Madmin");
		$ad = new Madmin();
	
		if($this->CheckSession()) {
			//redirect("task/dashboard");die;
		}
	
		$message="";
	
		if(IsPostBack){
		    $email = $this->input->post("email", true);
	    	$this->load->library("reCaptcha",array('config' => array()));
	    	$recap = new reCaptcha('6LdWrxsTAAAAALPx21yYxCHR4xbvUxm4HqQFz-YV');
	    	if($recap->CheckHumanFromPost()){	
	    		$ad->email($email);
	    		if($ad->Select()){
	    			$this->SendForgotPasswordLink($email, $ad->admin_pid);
	    			$this->AddInfo("A reset link has been emailed successfully");
	    			$isEmailSent=true;
	    		}else{
	    			$this->AddError("Invalid Email ID");
	    		}	
	    	}else {
	    		if($recap->IsErrorByErrorCode(reCaptcha::INVALID_INPUT_SECRET)){
	    			$this->AddError("You are a robot.");
	    		}elseif($recap->IsErrorByErrorCode(reCaptcha::INVALID_INPUT_RESPONSE)){
	    			$this->AddError("The secret parameter is invalid or malformed. .");
	    		}elseif($recap->IsErrorByErrorCode(reCaptcha::MISSING_INPUT_RESPONSE)){
	    			$this->AddError("Robot validation failed");
	    		}elseif($recap->IsErrorByErrorCode(reCaptcha::MISSING_INPUT_SECRET)){
	    			$this->AddError("The secret parameter is missing.");
	    		}else{
	    			$this->AddError("Robot validation failed.");
	    		}
	    	}
    }
	
		$rData=array();
		$rData['loginObj']=$this->Madmin;
		$rData['title'] = "VT Corporate Cup PM Application";
		$rData['field'] = "User ID";
		$rData['msg'] = $message;
		$this->GetDefaultConfiguration($rData);
		$this->load->view("forgot_password",$rData);
		//$this->LoginPanel($rData);
		//redirect("task/dashboard");
	}
	
	public function confirmation(){
		$this->load->library("GSEncryption");
		$message = "";
		$pdata = array();
		$isExpired = false;
		$this->load->model("database/Madmin");
		$ad = new Madmin();
		//http://localhost/gt/main/confirmation?u=aca7d7bdf6b883e3f62231c1af481445f8176247d18ff45ef8cf22c1a8868526e7e76c0fdd98cdbd53a7da89f863ba06a721ad13e0f1acadfed0152230f9c4f8
		$uriData = $this->GetUriArray();
		$param = GSEncryption::GSGlobalDecrypt($uriData['u']);
		$param = json_decode($param);
		 
		if(IsPostBack){
			$np = $this->input->post("password", true);
			$cp = $this->input->post("cp", true);
			if(!empty($np) && !empty($cp)){
				if($np == $cp){
					$ad->admin_pid($param->user_id);
					$ad->password($np);
					if($ad->Update()){
						//GPrint("Password reset successfull!!");
						$this->AddInfo("Password reset successfull!",true);
						redirect();
					}
				}else{
					$this->AddError("The password and its confirm are not the same");
				}
			}else {
				$this->AddError("New password and confirm password are required.");
			}
		}
		 
		if(!empty($param->time) && $param->time > time()){
			$isExpired = false;
		} else {
			$isExpired = true;
		}
		 
		$pdata['isExpired'] = $isExpired;
		$pdata['msg'] = $message;
		$pdata['title'] = "VT Corporate Cup PM Application";
		$pdata['LoadViews'] = "confirmation";
		$this->GetDefaultConfiguration($pdata);
		$this->load->view("confirmation",$pdata);
	}
	
	function SendForgotPasswordLink($email, $user_id){
		$this->load->library("GSEncryption");
		$this->load->model("gsystem/GSEmail");
		if(!empty($email)){
			//send email
			ob_start();
			$obj=new stdClass();
			$obj->time=strtotime("+15 MINUTES");
			$obj->email_id=$email;
			$obj->user_id = $user_id;
			$str=json_encode($obj);
			$linkparam = GSEncryption::GSGlobalEncrypt($str);
			?>
						<h1>Your password reset request has been received.</h1>
						<p>To confirm your request ,please click the link bellow:<br/>							
							<a href="<?php echo base_url("task/confirmation/u/".$linkparam);?>"><?php echo base_url("task/confirmation/u/".$linkparam);?></a>
						</p>
						<?php 
						$emailtext = ob_get_clean();
						//GPrint($emailtext);die;
						$config['protocol'] = 'sendmail';
						$config['charset'] = 'utf-8';
						$config['wordwrap'] = TRUE;
						$config['mailtype'] = 'html';
					
						$this->email->initialize($config);
						$this->email->from('noreply@vcccsar.org', 'Corporate Cup');
						$this->email->to($email);
						$this->email->subject('VT Corporate Cup PM App');
						$this->email->message($emailtext);
						$mailStatus = $this->email->send();
						if ($mailStatus) {
							return true;
						} else {
							return false;
						}						
					}
		}

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	function __construct() {
		parent::__construct ();
		//$this->CheckSession(true);
	}
	
	
	public function admin() {	
		redirect("");	
		$this->load->model("database/Madmin");
		
		if($this->CheckSession()) {
			redirect("task/dashboard");die;
		}
		
		$message="";
		
		if(IsPostBack){
			$email = trim($_POST['email']);
			$password = trim($_POST['password']);
			if ($this->Madmin->authenticate($email, $password)) {
				//$message = "SUCCESS";
				redirect("task/dashboard");
			} else {
				$message = "User ID/password combination incorrect.";
			}
		}
		
		$this->load->model("database/Madmin");
		$rData=array();
		$rData['loginObj']=$this->Madmin;
		$rData['title'] = "Admin Login";
		$rData['field'] = "User ID";
		$rData['msg'] = $message;
		$this->GetDefaultConfiguration($rData);
		$this->LoginPanel($rData);		
	}
	
	public function vlogin() {
		redirect("");
		$this->load->model("database/Mvolunteer");
	
		if($this->CheckSession()) {
			redirect("task/vprofile");die;
		}
		//GPrint("Volunteer Successfully Login.");
		//GPrint($this->session->GetVtrData());
		//GPrint("User Type:".$this->session->GetCurrentUserType());
	
		$message="";
	
		if(IsPostBack){
			$email = trim($_POST['email']);
			$password = trim($_POST['password']);
			if ($this->Mvolunteer->authenticate($email, $password)) {
				//$message = "SUCCESS";
				redirect("task/vprofile");
			} else {
				$message = "User ID/password combination incorrect.";
			}
		}
	
		$this->load->model("database/Mvolunteer");
		$rData=array();
		$rData['loginObj']=$this->Mvolunteer;
		$rData['title'] = "Volunteer Login";
		$rData['field'] = "User ID";
		$rData['msg'] = $message;
		$this->GetDefaultConfiguration($rData);
		$this->LoginPanel($rData);
	}
	
	public function vprofile() {
		//$vtr_data = $this->session->GetVtrData();GPrint($vtr_data);
		$this->CheckSession(true);
		$uriData = $this->GetUriArray();
		if(!empty($uriData)){
			$act = $uriData['act'];
		}else{
			$act = 'A';
		}
		if($this->session->GetCurrentUserType()=="AD") die;
		$pdata = array();
		$userData = $this->session->GetVtrData();
		$this->load->model("database/Madmin");
		$this->Madmin->admin_pid($userData->admin_pid);
		if($this->Madmin->Select()){
			$pdata['vtrObj'] = $this->Madmin;
		}
		
		$pdata['title'] = "Corporate Cup | Profile";
		$pdata['sub_title'] = "User Profile";
		$pdata['act'] = $act;
		$pdata['LoadViews'] = "vprofile";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);		
	}
	
	public function aprofile() {
		$this->CheckSession(true);
		//$cc = $this->session->GetAdminData ()->email;
		$uriData = $this->GetUriArray();
		if(!empty($uriData)){
			$act = $uriData['act'];
		}else{
			$act = 'A';
		}
		
		if($this->session->GetCurrentUserType()=="VT") die;
		$pdata = array();
		$userData = $this->session->GetAdminData();
		$this->load->model("database/Madmin");
		$this->Madmin->admin_pid($userData->admin_pid);
		if($this->Madmin->Select()){
			$pdata['adObj'] = $this->Madmin;
		}
	
		$pdata['title'] = "Corporate Cup | Profile";
		$pdata['sub_title'] = "User Profile";
		$pdata['act'] = $act;
		$pdata['LoadViews'] = "aprofile";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);
	}
	
	
	public function CheckSession($autoRedirect=false){
		$utype = $this->session->GetCurrentUserType();
		if($utype=="AD"){
			return true;
		} elseif($utype=="VT") {
			return true;
		}
		else {
			if($autoRedirect) {
					redirect("task/admin");
				}
		}
	}
	
	public function LoginPanel($rData) {
		$this->load->view("login",$rData);
	}
	
	public function test(){
		$a = -3.5;
		$b = 2;
		$c = $a + $b;
		echo $c;
	}
	
	public function logout() {
		$utype = $this->session->GetCurrentUserType();
		$this->session->UnsetAllUserData();
		if($utype == 'AD'){
			redirect("");
		}
		if($utype == 'VT'){
			redirect("");
		}
		
	}
	
	
	public function dashboard(){
		/*GPrint($this->session->GetAdminData ());die;
		(
		[admin_pid] => 1
		[email] => test@gmail.com
		[fname] => Thahir
		[lname] => Basha
		[title] => Engg
		[role] => A
		[LoggedIn] => 1*/
		
		//$userData = $this->session->GetAdminData();GPrint($userData);
		
		
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$pdata = array();
		$sub_status = array();
		
		$this->load->model("database/Madmin");
		$this->Madmin->status('A');
		$this->Madmin->role('A');
		$activeAdmins = $this->Madmin->CountAll();
		
		$this->Madmin = new Madmin();
		$this->Madmin->status('A');
		$this->Madmin->role('S');
		$activeSu = $this->Madmin->CountAll();
		
		$pdata['activeAdmins'] = $activeAdmins + $activeSu;
		
		$this->Madmin = new Madmin();
		$this->Madmin->status('A');
		$this->Madmin->role('V');
		$activeVtr = $this->Madmin->CountAll();
		$pdata['activeVtr'] = $activeVtr;
		
		$query1 = "SELECT COUNT(subtask_id) AS num_sub, status FROM subtask GROUP BY `status`";
		$records1 = $this->db->query($query1);
		$sub_status = $records1->result();
		$sub_Arr = "";
		
		foreach ($sub_status as $sub){
			$sub_Arr[$sub->status] = $sub->num_sub;
		}
		$pdata['sub_Arr'] = $sub_Arr;
		
		$this->load->model("database/Mtask");
		$this->Mtask->status('P');
		$pending_tasks = $this->Mtask->CountAll();
		$pdata['pending_tasks'] = $pending_tasks;
		
		//$this->load->model("database/Msubtask");
		//$subtask_data = $this->Msubtask->SelectJoinLimit();
		//$pdata['subtask_data'] = $subtask_data;
		
		$this->load->model("database/Mtask");
		$this->Mtask = new Mtask();
		$this->Mtask->status('status != "L" AND task.status != "H"',false);
		$task_data = $this->Mtask->SelectJoin2("","task_id","desc",10);
		$pdata['task_data'] = $task_data;
		
		$pdata['title'] = "Corporate Cup | Dashboard";
		$pdata['sub_title'] = "Dashboard";
		$pdata['LoadViews'] = "dashboard";
		$this->LoadView($pdata);
	}
	
	public function taskList(){
		$pdata = array();
		$pdata['title'] = "User Tasks";
		$pdata['sub_title'] = "";
		$pdata['LoadViews'] = "task";
		$this->LoadView($pdata);
	}
	
	public function admin_users(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		
		$uriData = $this->GetUriArray();
		
		$admin_id = $this->session->GetAdminData ()->admin_pid;
		$role = $this->input->post("role", true);
		$pdata = array();
		$pdata['role'] = "";
		$pdata['title'] = "Corporate Cup | Users";
		$pdata['sub_title'] = "Users";
		$this->load->model("database/Madmin");
		
		if(!IsPostBack && empty($uriData['role'])) {
			$this->Madmin->role('A');
		}
		
		if(!IsPostBack && !empty($uriData['role'])) {
			$pdata['role'] = $uriData['role'];
			$this->Madmin->role($uriData['role']);
		}
		
		if(IsPostBack){
			$pdata['role'] = $role;
			$this->Madmin->role($role);
		}
		
		$admin_data = $this->Madmin->SelectAll();
		
		$pdata['delete_url'] = site_url("main/delete_batch");
		$pdata['admin_data'] = $admin_data;
		$pdata['LoadViews'] = "admin_list";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);
		
		
		//$sql = "SELECT * FROM (`admin`) WHERE admin_pid != $admin_id AND role != 'S'";
		//$records = $this->db->query($sql);
		//$pdata['admin_data'] = $records->result();
		//GPrint($this->session->GetAdminData ()->admin_pid);
		//GPrint($this->session->GetAdminData ()->role);
	}
	
	public function add_admin() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$this->load->model("database/Madmin");
	
		if(IsPostBack){
			$email = $this->input->post("email", true);
			$fname = $this->input->post("fname", true);
			$lname = $this->input->post("lname", true);
			$role = $this->input->post("role", true);
			$pass = $this->input->post("password", true);
			if($this->session->GetAdminData ()->role == 'A' && $role != 'V') die;
			$this->Madmin->email($email);
			if(!$this->Madmin->Select() && filter_var($email, FILTER_VALIDATE_EMAIL)){
				$isSuccess = $this->sendMailForUserCreation($email,$fname,$lname,$pass);
				if($this->Madmin->GetFromPostData()){
					if($this->Madmin->Save()){
						$this->AddInfo("Successfully Added",true);
						if($_FILES['file_upload']['error']==0){
							$id=$this->Madmin->GetUpdateDB()->insert_id();
							//$dpath=BASEPATH."../img/instructor/".$id.substr($_FILES['file_upload']['name'], -4);
							//Whatever the image type (jpeg, jpg, gif, png), it always save as table pk id.jpg
							$dpath=BASEPATH."../img/admin/".$id.'.jpg';
							if(file_exists($dpath)){
								unlink($dpath);
							}
							if(copy($_FILES['file_upload']['tmp_name'], $dpath)){
								$this->AddInfo("Image Successfully Uploaded",true);
								redirect("task/admin_users/role/$role");
							}
						}
						redirect("task/admin_users/role/$role");
					}
				}
			} else {
		          $this->AddError("Invalid or duplicate entry of email address !!",true);
		      }
		}
	
		$rData=array();
		$rData['title'] = "Corporate Cup | Add User";
		$rData['sub_title'] = "Add User";
		$rData['adminObj']=$this->Madmin;
		$this->GetDefaultConfiguration($rData);
		$rData['multipath']=true; //This field is needed for photo upload and it sets enctype="multipart/form-data" on form action
		$rData['LoadViews']="admin_form";
		$rData['AutoMsgShow']=false;
		$this->LoadPanel($rData);
	}

	public function admin_details() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$this->load->model("database/Madmin");
		$uriData = $this->GetUriArray();
		$pdata = array();
		$pdata['sub_title'] = "";
		$pdata['title'] = "";
		if(!empty($uriData['id'])){
			$this->Madmin->admin_pid($uriData['id']);
			$this->Madmin->Select();
			$pdata['title'] = "Corporate Cup";
			$pdata['sub_title'] = $this->Madmin->fname . " " . $this->Madmin->lname;
			$pdata['adminObj'] = $this->Madmin;
			$this->GetDefaultConfiguration($pdata);
			$pdata['LoadViews']="admin_details";
			$this->LoadPanel($pdata);
		}
	}
	
	public function edit_admin(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		//if($this->session->GetAdminData ()->role != 'S') die;
		$role = $this->session->GetAdminData ()->role;
		$this->load->model("database/Madmin");
		$pdata = array();
		$pdata['title'] = "User Edit";
		$pdata['sub_title'] = "";
		$pdata['isEdit']=false;
		$uriData = $this->GetUriArray();
		$admin_id = $uriData['id'];
		if($this->session->GetAdminData ()->admin_pid == $admin_id) die;
		
		if(!empty($uriData['id'])){
			$pdata['isEdit']=true;
			$this->Madmin=new Madmin();
			$this->Madmin->admin_pid($uriData['id']);
		
			if($this->Madmin->Select()){
				$pdata['adminObj'] = $this->Madmin;
				if($role == 'A' && $this->Madmin->role != 'V') die;
				if($role == 'S' && $this->Madmin->role == 'S') die;
			}else{
				$pdata['isEdit']=false;
				$this->AddError("Invalid ID !!",true);
				redirect("task/admin_users");
			}
		}
	
		if(IsPostBack){
		    $email = $this->input->post("email", true);
		    
		    $sql = "SELECT * FROM (`admin`) WHERE `email` = '$email' AND admin_pid != $admin_id";
		    $records = $this->db->query($sql);
		    
		    if (!$records->num_rows >0 && filter_var($email, FILTER_VALIDATE_EMAIL)){
    			$this->Madmin=new Madmin();
    			if($this->Madmin->GetFromPostData()){
    				$this->Madmin->admin_pid($uriData['id']);
    				$this->Madmin->fname($this->Madmin->fname);
    				$this->Madmin->lname($this->Madmin->lname);
    				$this->Madmin->email($this->Madmin->email);
    				$this->Madmin->title($this->Madmin->title);
    				$this->Madmin->time_zone($this->Madmin->time_zone);
    				$this->Madmin->short_bio($this->Madmin->short_bio);
    				if($this->Madmin->Update()){
    					$this->AddInfo("Successfully Updated",true);
    					//redirect("main/view_inst");
    				}
    				if($_FILES['file_upload']['error']==0){
    					//$id=$this->Minstructor->GetUpdateDB()->insert_id();
    					$dpath=BASEPATH."../img/admin/" . $uriData['id'] . '.jpg';
    					if(file_exists($dpath)){
    						unlink($dpath);
    					}
    					if(copy($_FILES['file_upload']['tmp_name'], $dpath)){
    						$this->AddInfo("Image Successfully Uploaded",true);
    						redirect("task/admin_details/id/".$uriData['id']);
    					}
    					redirect("task/admin_details/id/".$uriData['id']);
    				}
    				redirect("task/admin_details/id/".$uriData['id']);
    			}
		  } else {
		      $this->AddError("Invalid or duplicate entry of email address !!",true);
		  }
	}
	

		
		$this->GetDefaultConfiguration($pdata);
		$pdata['multipath']=true;
		$pdata['LoadViews']="admin_form";
		$pdata['AutoMsgShow']=false;
		$this->LoadPanel($pdata);
	}
	
	public function reset_admin_pass() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$role = $this->session->GetAdminData ()->role;
		
		$pdata = array();
		$pdata['title'] = "Reset Password";
		$pdata['sub_title'] = "";
		$pdata['isEdit']=false;
		$this->load->model("database/Madmin");
		$uriData = $this->GetUriArray();
		$admin_id = $uriData['id'];
		if($this->session->GetAdminData ()->admin_pid == $admin_id) die;
		$pdata['admin_id'] = $admin_id;
		$this->Madmin->admin_pid($admin_id);
		if($this->Madmin->Select()){
			if($role == 'A' && $this->Madmin->role != 'V') die;
			if($role == 'S' && $this->Madmin->role == 'S') die;
			$fname = $this->Madmin->fname;
			$lname = $this->Madmin->lname;
			$pdata['sub_title'] = "Reset Password for ". $fname. " " . $lname;
		} else {
			$this->AddError("Invalid information !!",true);
			redirect("task/admin_users");
		}
		 
		if(IsPostBack){
			$new_pass = $this->input->post("new_password", true);
			$r_pass = $this->input->post("retype_password", true);
			
			if(!empty($new_pass) && !empty($r_pass)){
				$this->Madmin->admin_pid($admin_id);
				if($this->Madmin->Select() && $new_pass == $r_pass){
					$this->Madmin=new Madmin();
					$this->Madmin->admin_pid($admin_id);
					$this->Madmin->password($new_pass);
					if($this->Madmin->Update()){
						$this->AddInfo("Password Successfully Updated",true);
						redirect("task/admin_details/id/$admin_id");
					}
				} else {
					$this->AddError("Password reset failed!");
				}
			}else{
				$this->AddError("Password fields are empty!");
			}
		}
		
		$pdata['isEdit']=true;
		$this->GetDefaultConfiguration($pdata);
		$pdata['LoadViews']="reset_password_form_AD";
		$pdata['AutoMsgShow']=false;
		$this->LoadPanel($pdata);
	}
	
	public function add_volunteer() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$this->load->model("database/Mvolunteer");
	
		if(IsPostBack){
			$email = $this->input->post("email", true);
			$this->Mvolunteer->email($email);
			if(!$this->Mvolunteer->Select() && filter_var($email, FILTER_VALIDATE_EMAIL)){
				if($this->Mvolunteer->GetFromPostData()){
					if($this->Mvolunteer->Save()){
						$this->AddInfo("Successfully Added",true);
						if($_FILES['file_upload']['error']==0){
							$id=$this->Mvolunteer->GetUpdateDB()->insert_id();
							$dpath=BASEPATH."../img/volunteer/".$id.'.jpg';
							if(file_exists($dpath)){
								unlink($dpath);
							}
							if(copy($_FILES['file_upload']['tmp_name'], $dpath)){
								$this->AddInfo("Image Successfully Uploaded",true);
								redirect("task/volunteer_list");
							}
						}
						redirect("task/volunteer_list");
					}
				}
			} else {
				$this->AddError("Invalid or duplicate entry of email address !!",true);
			}
		}
	
		$rData=array();
		$rData['title'] = "Corporate Cup | Add Volunteer";
		$rData['sub_title'] = "Add Volunteer";
		$rData['vtrObj']=$this->Mvolunteer;
		$this->GetDefaultConfiguration($rData);
		$rData['multipath']=true; 
		$rData['LoadViews']="vtr_form";
		$rData['AutoMsgShow']=false;
		$this->LoadPanel($rData);
	}
	
	public function volunteer_list(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$pdata = array();
		$pdata['title'] = "Corporate Cup | Volunteers";
		$pdata['sub_title'] = "Volunteers";
		$this->load->model("database/Mvolunteer");
	
		$vtr_data = $this->Mvolunteer->SelectAll();
		$pdata['delete_url'] = site_url("main/delete_batch");
		$pdata['vtr_data'] = $vtr_data;
		$pdata['LoadViews'] = "volunteer_list";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadPanel($pdata);
	}
	
	public function volunteer_details() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$this->load->model("database/Mvolunteer");
		$uriData = $this->GetUriArray();
		$pdata = array();
		$pdata['sub_title'] = "";
		if(!empty($uriData['id'])){
			$this->Mvolunteer->v_pid($uriData['id']);
			$this->Mvolunteer->Select();
			$pdata['title'] = "Corporate Cup";
			$pdata['sub_title'] = $this->Mvolunteer->fname . " " . $this->Mvolunteer->lname;
			$pdata['vtrObj'] = $this->Mvolunteer;
			$this->GetDefaultConfiguration($pdata);
			$pdata['LoadViews']="vtr_details";
			$this->LoadPanel($pdata);
		}
	}
	
	public function edit_volunteer(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$this->load->model("database/Mvolunteer");
		$pdata = array();
		$pdata['title'] = "Volunteer Edit";
		$pdata['sub_title'] = "";
		$pdata['isEdit']=false;
		$uriData = $this->GetUriArray();
		$vtr_id = $uriData['id'];
	
		if(IsPostBack){
			$email = $this->input->post("email", true);
			$sql = "SELECT * FROM (`volunteer`) WHERE `email` = '$email' AND v_pid != $vtr_id";
			$records = $this->db->query($sql);
	
			if (!$records->num_rows >0 && filter_var($email, FILTER_VALIDATE_EMAIL)){
				$this->Mvolunteer=new Mvolunteer();
				if($this->Mvolunteer->GetFromPostData()){
					$this->Mvolunteer->v_pid($uriData['id']);
					$this->Mvolunteer->fname($this->Mvolunteer->fname);
					$this->Mvolunteer->lname($this->Mvolunteer->lname);
					$this->Mvolunteer->email($this->Mvolunteer->email);
					$this->Mvolunteer->title($this->Mvolunteer->title);
					$this->Mvolunteer->time_zone($this->Mvolunteer->time_zone);
					$this->Mvolunteer->short_bio($this->Mvolunteer->short_bio);
					if($this->Mvolunteer->Update()){
						$this->AddInfo("Successfully Updated",true);
					}
					if($_FILES['file_upload']['error']==0){
						$dpath=BASEPATH."../img/volunteer/" . $uriData['id'] . '.jpg';
						if(file_exists($dpath)){
							unlink($dpath);
						}
						if(copy($_FILES['file_upload']['tmp_name'], $dpath)){
							$this->AddInfo("Image Successfully Uploaded",true);
							redirect("task/volunteer_details/id/".$uriData['id']);
						}
						redirect("task/volunteer_details/id/".$uriData['id']);
					}
					redirect("task/volunteer_details/id/".$uriData['id']);
				}
			} else {
				$this->AddError("Invalid or duplicate entry of email address !!",true);
			}
		}
	
		if(!empty($uriData['id'])){
			$pdata['isEdit']=true;
			$this->Mvolunteer=new Mvolunteer();
			$this->Mvolunteer->v_pid($uriData['id']);
	
			if($this->Mvolunteer->Select()){
				$pdata['vtrObj'] = $this->Mvolunteer;
			}else{
				$pdata['isEdit']=false;
			}
		}
	
		$this->GetDefaultConfiguration($pdata);
		$pdata['multipath']=true;
		$pdata['LoadViews']="vtr_form";
		$pdata['AutoMsgShow']=false;
		$this->LoadPanel($pdata);
	}
	
	public function edit_vprofile(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="AD") die;
		$vtr_data = $this->session->GetVtrData();
		$vtr_id = $vtr_data->admin_pid;
		$email = $this->input->post("email", true);
		$short_bio = $this->input->post("short_bio", true);
		$this->load->model("database/Madmin");
		
		$isEmail = filter_var($email, FILTER_VALIDATE_EMAIL);
		if(!$isEmail){
			redirect("task/vprofile/act/E");die;
		} 
		
		$sql = "SELECT * FROM (`admin`) WHERE `email` = '$email' AND admin_pid != $vtr_id";
		$records = $this->db->query($sql);
		
		if(!$records->num_rows >0){
			$this->Madmin=new Madmin();
			$this->Madmin->admin_pid($vtr_id);
			$this->Madmin->email($email);
			$this->Madmin->short_bio($short_bio);
			if($this->Madmin->Update()){
				$this->AddInfo("Successfully Updated",true);
			} else {
				$this->AddInfo("No change has found to update !!",true);
			}
			if($_FILES['file_upload']['error']==0){
				$dpath=BASEPATH."../img/admin/" . $vtr_id . '.jpg';
				if(file_exists($dpath)){
					unlink($dpath);
				}
				if(copy($_FILES['file_upload']['tmp_name'], $dpath)){
					$this->AddInfo("Image Successfully Uploaded",true);
				}
			}
			redirect("task/vprofile/act/E");
		} else {
			$this->AddError("Duplicate entry of email address !!",true);
			redirect("task/vprofile/act/E");
		}
	}
	
	public function edit_aprofile(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$ad_data = $this->session->GetAdminData();
		$ad_id = $ad_data->admin_pid;
		$email = $this->input->post("email", true);
		$short_bio = $this->input->post("short_bio", true);
		$this->load->model("database/Madmin");
	
		$isEmail = filter_var($email, FILTER_VALIDATE_EMAIL);
		if(!$isEmail){
			$this->AddError("Invalid email address !!",true);
			redirect("task/aprofile/act/E");die;
		}
	
		$sql = "SELECT * FROM (`admin`) WHERE `email` = '$email' AND admin_pid != $ad_id";
		$records = $this->db->query($sql);
	
		if(!$records->num_rows >0){
			$this->Madmin=new Madmin();
			$this->Madmin->admin_pid($ad_id);
			$this->Madmin->email($email);
			$this->Madmin->short_bio($short_bio);
			if($this->Madmin->Update()){
				$this->AddInfo("Successfully Updated",true);
			} else {
				$this->AddInfo("No change has found to update !!",true);
			}
			if($_FILES['file_upload']['error']==0){
				$dpath=BASEPATH."../img/admin/" . $ad_id . '.jpg';
				if(file_exists($dpath)){
					unlink($dpath);
				}
				if(copy($_FILES['file_upload']['tmp_name'], $dpath)){
					$this->AddInfo("Image Successfully Uploaded",true);
				}
			}
			redirect("task/aprofile/act/E");
		} else {
			$this->AddError("Duplicate entry of email address !!",true);
			redirect("task/aprofile/act/E");
		}
	}
	
	public function vtask() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="AD") die;
		$vtr_data = $this->session->GetVtrData();
		$vtr_id = $vtr_data->admin_pid;
		$uriData = $this->GetUriArray();
		$pdata = array();
		$pdata['title'] = "Task List";
		$pdata['sub_title'] = "Task List";
		
		$this->load->model("database/Msubtask");
		$this->Msubtask->done_vtr($vtr_id);
		$subtask_data2 = $this->Msubtask->SelectJoinForVtr();
		$pdata['subtask_data2'] = $subtask_data2;
		
		
		if(!IsPostBack && empty($uriData['id'])) {
		}
		
		if(!IsPostBack && !empty($uriData['id'])) {
			$pdata['search_value'] = $uriData['id'];
			$this->Msubtask->task_id($uriData['id']);
		}
		
		if(IsPostBack){
			$searchByTask = trim($_POST['task_id']);
			$pdata['search_value'] = $searchByTask;
			if($searchByTask !== 'all'){
				$this->Msubtask->task_id($searchByTask);
			}
		}
		
		$subtask_data = $this->Msubtask->SelectJoinForVtr();
		$pdata['delete_url'] = site_url("main/delete_batch");
		$pdata['subtask_data'] = $subtask_data;
		$pdata['LoadViews'] = "vtask_list";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);		
	}
	
	public function change_password_VT() {
		if($this->session->GetCurrentUserType()!=="VT") die;
		$this->CheckSession(true);
		$this->load->model("database/Madmin");
		$vtr_data = $this->session->GetVtrData();
		$vtr_id = $vtr_data->admin_pid;
		 
		$old_pass = $this->input->post("old_password", true);
		$new_pass = $this->input->post("new_password", true);
		$r_pass = $this->input->post("retype_password", true);

		if(!empty($old_pass)&&!empty($new_pass)&&!empty($r_pass)){
			$this->Madmin->admin_pid($vtr_id);
			$this->Madmin->password(md5($old_pass));
			if($this->Madmin->Select()){
				if($new_pass == $r_pass){
					$this->Madmin=new Madmin();
					$this->Madmin->admin_pid($vtr_id);
					$this->Madmin->password($new_pass);
					if($this->Madmin->Update()){
						$this->AddInfo("Password Successfully Updated",true);
						redirect("task/vprofile");
					}
				} else {
					$this->AddError("New password and retype password not match",true);
					redirect("task/vprofile/act/C");
				}
			}else {
					$this->AddError("Old Password not match",true);
					redirect("task/vprofile/act/C");
				}
		} else {
			$this->AddError("Password should not be empty.",true);
			redirect("task/vprofile/act/C");
		}	

	}
	
	public function change_password_AD() {
		if($this->session->GetCurrentUserType() == "VT") die;
		$this->CheckSession(true);
		$this->load->model("database/Madmin");
		$ad_data = $this->session->GetAdminData();
		$ad_id = $ad_data->admin_pid;
			
		$old_pass = $this->input->post("old_password", true);
		$new_pass = $this->input->post("new_password", true);
		$r_pass = $this->input->post("retype_password", true);
	
		$this->Madmin->admin_pid($ad_id);
		$this->Madmin->password(md5($old_pass));
		if(!empty($old_pass)&&!empty($new_pass)&&!empty($r_pass)){
			if($this->Madmin->Select()){
				if($new_pass == $r_pass){
					$this->Madmin=new Madmin();
					$this->Madmin->admin_pid($ad_id);
					$this->Madmin->password($new_pass);
					if($this->Madmin->Update()){
						$this->AddInfo("Password Successfully Updated",true);
						redirect("task/aprofile");
					}
				} else {
					$this->AddError("New password and retype password not match",true);
					redirect("task/aprofile/act/C");
				}
			}else {
				$this->AddError("Old password not match",true);
				redirect("task/aprofile/act/C");
			}
		}else {
				$this->AddError("Password should not be empty.",true);
				redirect("task/aprofile/act/C");
			}

	}
	
	public function tasks(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$pdata = array();
		$tot_arr = array();
		$done_arr = array();
		$pdata['title'] = "Task List";
		$pdata['sub_title'] = "Task List";
		$this->load->model("database/Mtask");
		$this->Mtask->status('P');
		$task_data = $this->Mtask->SelectJoin();
		
		$this->load->model("database/Msubtask");
		
		$query1 = "SELECT COUNT(subtask_id) as tot_sub, task_id FROM subtask GROUP BY task_id";
		$query2 = "SELECT COUNT(subtask_id) as done_sub, task_id FROM subtask WHERE `status`='D' GROUP BY task_id";
		
		$records1 = $this->db->query($query1);
		$total_sub = $records1->result();
		
		$records2 = $this->db->query($query2);
		$done_sub = $records2->result();
		
		foreach ($done_sub as $done){
			$done_arr[$done->task_id] = $done->done_sub;
		}
		
		foreach ($total_sub as $total){
			$obj = new stdClass();
			$obj->total = $total->tot_sub;
			$obj->done = array_key_exists($total->task_id, $done_arr)?$done_arr[$total->task_id]:0;
			$tot_arr[$total->task_id] = $obj;
		}
	
		//$pdata['delete_url'] = site_url("main/delete_batch");
		$pdata['action_url'] = site_url("task/archiveData");
		$pdata['task_data'] = $task_data;
		$pdata['status_data'] = $tot_arr;
		$pdata['LoadViews'] = "task_list";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadPanel($pdata);
	}
	
	public function todos() {
		$this->CheckSession(true);
		//mysql_connect('localhost', 'vcccsar_taskmgr', 'taskmgr');
		$con = mysqli_connect("localhost","root","","vcccsar_taskmgr");
		$pdata = array();
		$uriData = $this->GetUriArray();
		$propertyOption = array('priority','assigned','creator','creation_date','due_date','tasktitle','progress');
		$priority_search_option = array('L','M','H','N');
		$property = '';
		$search = '';
		$pdata['search'] = $search;
		$pdata['search2'] = "";
		$search2 = '';
		$redirect_url = "";
		$this->load->model("database/Madmin");
		$this->Madmin->role('role != "V"',false);
		$admin_data = $this->Madmin->SelectAll('admin_pid,fname,lname');
		
		$this->Madmin = new Madmin();
		$this->Madmin->role('V');
		$vtr_data = $this->Madmin->SelectAll('admin_pid,fname,lname');
		
		$orderBy = 'task_id';
		$order = 'desc';
		
		$this->load->model("database/Mtask");
		$uType = $this->session->GetCurrentUserType();
		$this->Mtask->status('status != "L" AND task.status != "H"',false);
		//$this->Mtask->title('title LIKE  "%this%"',false);
		
		if(!IsPostBack && !empty($uriData)) {
			foreach ($uriData as $key=>$value){
				$property = $key;
				$search = $value;
				break;
			}
			//GPrint($search);
			$pdata['search'] = $search;
			$pdata['search2'] = urldecode($search);
			if($property == 'tasktitle'){
				$search = urldecode($search);
				//$search = mysql_real_escape_string($search);
				$search = mysqli_real_escape_string($con, $search);
			}
			if(!empty($property) && !empty($search)){
				if(in_array($property, $propertyOption)){
					if($property == 'priority'){
						if(in_array($search, $priority_search_option)){
							$this->Mtask->priority($search);
							$redirect_data = array('task','todos', $property, $search);
							$redirect_url = site_url($redirect_data);
						} else {
							redirect('task/todos');
						}
					}elseif($property == 'assigned'){
						$this->Mtask->vtr_id($search);
						$redirect_data = array('task','todos', $property, $search);
						$redirect_url = site_url($redirect_data);
					}elseif($property == 'creator'){
						$this->Mtask->admin_id($search);
						$redirect_data = array('task','todos', $property, $search);
						$redirect_url = site_url($redirect_data);
					}elseif($property == 'tasktitle'){
						$this->Mtask->title("title LIKE  '%$search%'",false);
						$search = urlencode($search);
						$redirect_data = array('task','todos', $property, $search);
						$redirect_url = site_url($redirect_data);
					}elseif($property == 'creation_date'){
						$orderBy = 'creation_date';
						$search == 'D'?$order = 'desc':$order = 'asc';
						$redirect_data = array('task','todos', $property, $search);
						$redirect_url = site_url($redirect_data);
					}elseif($property == 'due_date'){
						$orderBy = 'due_date';
						$search == 'D'?$order = 'desc':$order = 'asc';
						$redirect_data = array('task','todos', $property, $search);
						$redirect_url = site_url($redirect_data);
					}elseif($property == 'progress'){
						//Not required any WHERE condition. It is done in view page with foreach continue statement
					}
				}else{
					redirect('task/todos');
				}
			}else{
				redirect('task/todos');
			}
			
		}
		//die;
		if(IsPostBack){
			$property = $this->input->post("property", true);
			$search = $this->input->post("search", true);
			if($property == 'tasktitle'){
				$pdata['search2'] = $search;
				$pdata['search'] = urlencode($search);
			} else {
				$pdata['search'] = $search;
			}
			
			
			if($property == 'tasktitle'){
				//$search = mysql_real_escape_string($search);
				$search = mysqli_real_escape_string($con, $search);
			}
			if(!empty($property) && !empty($search)){
				$redirect_data = array('task','todos', $property, $search);
				$redirect_url = site_url($redirect_data);
				if($property == 'priority'){
					$this->Mtask->priority($search);
				}elseif($property == 'assigned'){
					$this->Mtask->vtr_id($search);
				}elseif($property == 'creator'){
					$this->Mtask->admin_id($search);
				}elseif($property == 'creation_date'){
					$orderBy = 'creation_date';
					$search == 'D'?$order = 'desc':$order = 'asc';
				}elseif($property == 'due_date'){
					$orderBy = 'due_date';
					$search == 'D'?$order = 'desc':$order = 'asc';
				}elseif($property == 'tasktitle'){
					$this->Mtask->title("title LIKE  '%$search%'",false);
				}elseif($property == 'progress'){
					////Not required any WHERE condition. It is done in view page with foreach continue statement
				}
				
			}
		}		
		//SelectJoin2($QueryString = "", $orderBy = 'task_id', $order = 'desc', $limit = 0, $limitStart = 0)
		$task_data = $this->Mtask->SelectJoin2("", $orderBy, $order);
		
		$this->load->model("database/Msubtask");
		
		$this->Msubtask->status('status != "L" AND subtask.status != "H"',false);
		if($uType == 'VT'){
			$user_id = $this->session->GetVtrData()->admin_pid;
			if(!empty($user_id)){
				$this->Msubtask->done_vtr($user_id);
			}else{
				redirect("task/vprofile");
			}
		}		
		$subtask_data = $this->Msubtask->SelectJoin2();
		
		//GPrint($task_data);
		
		$tot_arr = array();
		$done_arr = array();
		$subtaskArr = array();
		$attArr = array();
		$comArr = array();
		
		
		$query1 = "SELECT COUNT(subtask_id) as tot_sub, task_id FROM subtask GROUP BY task_id";
		$query2 = "SELECT COUNT(subtask_id) as done_sub, task_id FROM subtask WHERE `status`='D' GROUP BY task_id";
		$query3 = "SELECT COUNT(id) as tot_att, task_id FROM attachment WHERE `status`='A' GROUP BY task_id";
		$query4 = "SELECT COUNT(c_id) as tot_com, task_id FROM task_comments WHERE `status`='A' GROUP BY task_id";
		
		$records1 = $this->db->query($query1);
		$total_sub = $records1->result();
		
		$records2 = $this->db->query($query2);
		$done_sub = $records2->result();
		
		$records3 = $this->db->query($query3);
		$att_count = $records3->result();
		
		$records4 = $this->db->query($query4);
		$com_count = $records4->result();
		
		foreach ($done_sub as $done){
			$done_arr[$done->task_id] = $done->done_sub;
		}
		
		foreach ($total_sub as $total){
			$obj = new stdClass();
			$obj->total = $total->tot_sub;
			$obj->done = array_key_exists($total->task_id, $done_arr)?$done_arr[$total->task_id]:0;
			$tot_arr[$total->task_id] = $obj;
		}
		
		foreach ($att_count as $att){
			$attArr[$att->task_id] = $att->tot_att;
		}
		
		foreach ($com_count as $com){
			$comArr[$com->task_id] = $com->tot_com;
		}
		
		foreach ($subtask_data as $subObj){
			$obj2 = new stdClass();
			$obj2->subtask_id = $subObj->subtask_id;
			$obj2->task_id = $subObj->task_id;
			$obj2->subtitle = $subObj->subtitle;
			$obj2->done_vtr = $subObj->done_vtr;
			$obj2->status = $subObj->status;
			$obj2->completion_date = $subObj->completion_date;
			$obj2->vtr_fname = $subObj->vtr_fname;
			$obj2->vtr_lname = $subObj->vtr_lname;
			if(isset($subtaskArr[$subObj->task_id][$subObj->subtask_id])) {
				$subtaskArr[$subObj->task_id][$subObj->subtask_id] += $obj2;
			} else {
				$subtaskArr[$subObj->task_id][$subObj->subtask_id] = $obj2;
			}
		}
		$pdata['redirect_url'] = $redirect_url;
		$pdata['property'] = $property;
		$pdata['admin_data'] = $admin_data;
		$pdata['vtr_data'] = $vtr_data;
		$pdata['task_data'] = $task_data;
		$pdata['status_data'] = $tot_arr;
		$pdata['subtask_data'] = $subtaskArr;
		$pdata['attArr'] = $attArr;
		$pdata['comArr'] = $comArr;
		$pdata['title'] = "Task List";
		$backLink = base_url()."task/todos";
		$pdata['sub_title'] = "<a href='$backLink'><i class='fa fa-refresh text-info'></i> </a> Task List";
		
		$pdata['action_url'] = site_url("main/add_todos");
		$pdata['LoadViews'] = "todos";
		$this->Mtask = new Mtask();
		$pdata['taskObj']=$this->Mtask;
		//$this->Msubtask = new Msubtask();
		$pdata['subObj']=$this->Msubtask;
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);
	}
	
	public function calendar(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$uriData = $this->GetUriArray();
		$this->load->model("database/Mtask");
		
		//$currentDate = date("Y-m-d");
		if(empty($uriData['date'])){
			$currentDate = date("Y-m-d");
		}else{
			$currentDate = $uriData['date'];
		}
		$pdata = array();
		$pdata['title'] = "Calender";
		$pdata['action_url'] = site_url("task/calendar");
		$pdata['sub_title'] = "";
		$pdata['currentDate'] = $currentDate;
		$pdata['taskObj']=$this->Mtask;
		$pdata['LoadViews'] = "calendar";
		$this->LoadView($pdata);
	}
	
	public function calendar_vtr(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="AD") die;
		$uriData = $this->GetUriArray();
		$this->load->model("database/Mtask");
	
		//$currentDate = date("Y-m-d");
		if(empty($uriData['date'])){
			$currentDate = date("Y-m-d");
		}else{
			$currentDate = $uriData['date'];
		}
		$pdata = array();
		$pdata['title'] = "Calender";
		$pdata['action_url'] = site_url("task/calendar");
		$pdata['sub_title'] = "";
		$pdata['currentDate'] = $currentDate;
		$pdata['taskObj']=$this->Mtask;
		$pdata['LoadViews'] = "calendar_vtr";
		$this->LoadView($pdata);
	}
	
	public function todos_vtr() {
		//for testing purpose
		$this->CheckSession(true);
		$this->load->model("database/Mtask");
		$uType = $this->session->GetCurrentUserType();

		$this->Mtask->status('status != "L"',false);
		$task_data = $this->Mtask->SelectJoin2();
	
		$this->load->model("database/Msubtask");
		if($uType == 'VT'){
			$user_id = $this->session->GetVtrData()->admin_pid;
			if(!empty($user_id)){
				$this->Msubtask->done_vtr($user_id);
			}else{
				redirect("task/vprofile");
			}
		}
		$this->Msubtask->status('status != "L"',false);
		$subtask_data = $this->Msubtask->SelectJoin2();
	
		//GPrint($task_data);
		$pdata = array();
		$tot_arr = array();
		$done_arr = array();
		$subtaskArr = array();
		$attArr = array();
		$comArr = array();
	
	
		$query1 = "SELECT COUNT(subtask_id) as tot_sub, task_id FROM subtask GROUP BY task_id";
		$query2 = "SELECT COUNT(subtask_id) as done_sub, task_id FROM subtask WHERE `status`='D' GROUP BY task_id";
		$query3 = "SELECT COUNT(id) as tot_att, task_id FROM attachment WHERE `status`='A' GROUP BY task_id";
		$query4 = "SELECT COUNT(c_id) as tot_com, task_id FROM task_comments WHERE `status`='A' GROUP BY task_id";
	
		$records1 = $this->db->query($query1);
		$total_sub = $records1->result();
	
		$records2 = $this->db->query($query2);
		$done_sub = $records2->result();
	
		$records3 = $this->db->query($query3);
		$att_count = $records3->result();
	
		$records4 = $this->db->query($query4);
		$com_count = $records4->result();
	
		foreach ($done_sub as $done){
			$done_arr[$done->task_id] = $done->done_sub;
		}
	
		foreach ($total_sub as $total){
			$obj = new stdClass();
			$obj->total = $total->tot_sub;
			$obj->done = array_key_exists($total->task_id, $done_arr)?$done_arr[$total->task_id]:0;
			$tot_arr[$total->task_id] = $obj;
		}
	
		foreach ($att_count as $att){
			$attArr[$att->task_id] = $att->tot_att;
		}
	
		foreach ($com_count as $com){
			$comArr[$com->task_id] = $com->tot_com;
		}
	
		/*
			[subtask_id] => 8
		[task_id] => 1
		[subtitle] => efredgt
		[done_vtr] => 6
		[status] => P
		[completion_date] => 2016-01-22 00:00:00
		[vtr_fname] => Sanju
		[vtr_lname] => Alam*/
	
		foreach ($subtask_data as $subObj){
			$obj2 = new stdClass();
			$obj2->subtask_id = $subObj->subtask_id;
			$obj2->task_id = $subObj->task_id;
			$obj2->subtitle = $subObj->subtitle;
			$obj2->done_vtr = $subObj->done_vtr;
			$obj2->status = $subObj->status;
			$obj2->completion_date = $subObj->completion_date;
			$obj2->vtr_fname = $subObj->vtr_fname;
			$obj2->vtr_lname = $subObj->vtr_lname;
			if(isset($subtaskArr[$subObj->task_id][$subObj->subtask_id])) {
				$subtaskArr[$subObj->task_id][$subObj->subtask_id] += $obj2;
			} else {
				$subtaskArr[$subObj->task_id][$subObj->subtask_id] = $obj2;
			}
		}
	
		/*[task_id] => 6
			[title] => excel
		[description] =>
		[due_date] => 2016-01-18
		[completion_date] =>
		[admin_id] => 1
		[vtr_id] => 3
		[creation_date] => 2016-01-28 02:11:36
		[priority] => M
		[status] => P
		[ad_fname] => Milon
		[ad_lname] => Islam
		[vtr_fname] => Arifin2
		[vtr_lname] => Jubaed*/
	
		$pdata['task_data'] = $task_data;
		$pdata['status_data'] = $tot_arr;
		$pdata['subtask_data'] = $subtaskArr;
		$pdata['attArr'] = $attArr;
		$pdata['comArr'] = $comArr;
	
	
	
		$pdata['task_data'] = $task_data;
		$pdata['title'] = "Task List";
		$pdata['sub_title'] = "Task List";
		$pdata['action_url'] = site_url("main/add_todos");
		$pdata['LoadViews'] = "todos";
		$pdata['taskObj']=$this->Mtask;
		//$this->Msubtask = new Msubtask();
		$pdata['subObj']=$this->Msubtask;
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);
	}
	
	
	public function todos_details(){
		$this->CheckSession(true);
		$uType = $this->session->GetCurrentUserType();
		$pdata = array();
		$task_data = array();
		$subtask_data = array();
		$comments_data = array();
		$attachment_data = array();
		$direct = false;
		
		$uriData = $this->GetUriArray();
		$task_id = $uriData['id'];
		
		$this->load->model("database/Mtask");
		$this->load->model("database/Msubtask");
		$this->load->model("database/Mtask_comments");
		$this->load->model("database/Mattachment");
		
		
		
		if (isset($task_id) && !empty($task_id)) {
			$this->Mtask->task_id($task_id);
			$task_data = $this->Mtask->SelectJoin2();
			
			$this->Msubtask->task_id($task_id);
			if($uType == 'VT'){
				$user_id = $this->session->GetVtrData()->admin_pid;
				if(!empty($user_id)){
					$this->Msubtask->done_vtr($user_id);
				}else{
					//redirect("task/vprofile");
				}
				if($task_data[0]->vtr_id != $user_id){
					$direct = true;
				}
				
			}
			$subtask_data = $this->Msubtask->SelectJoin2();
			
			if($uType == 'VT'){
				if(count($subtask_data)<1 && $direct){
					redirect("task/vprofile");
				}
			}
			
			$this->Mtask_comments->task_id($task_id);
			$comments_data = $this->Mtask_comments->SelectJoin();
			
			$this->Mattachment->task_id($task_id);
			$attachment_data = $this->Mattachment->SelectAll();
			
		}
		$backLink = base_url()."task/todos";
		$pdata['task_data'] = $task_data;
		$pdata['subtask_data'] = $subtask_data;
		$pdata['comments_data'] = $comments_data;
		$pdata['attachment_data'] = $attachment_data;
		
		$pdata['title'] = "Task Details";
		$pdata['sub_title'] = "<a href='$backLink'><i class='fa fa-arrow-circle-left'></i> </a> Task Details";
		$pdata['LoadViews'] = "todos_details";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);
	}
	
	public function todos_details_archive(){
		$this->CheckSession(true);
		$uType = $this->session->GetCurrentUserType();
		$pdata = array();
		$task_data = array();
		$subtask_data = array();
		$comments_data = array();
		$attachment_data = array();
		$direct = false;
	
		$uriData = $this->GetUriArray();
		$task_id = $uriData['id'];
	
		$this->load->model("database/Mtask");
		$this->load->model("database/Msubtask");
		$this->load->model("database/Mtask_comments");
		$this->load->model("database/Mattachment");
	
	
	
		if (isset($task_id) && !empty($task_id)) {
			$this->Mtask->task_id($task_id);
			$task_data = $this->Mtask->SelectJoin2();
				
			$this->Msubtask->task_id($task_id);
			if($uType == 'VT'){
				$user_id = $this->session->GetVtrData()->admin_pid;
				if(!empty($user_id)){
					$this->Msubtask->done_vtr($user_id);
				}else{
					//redirect("task/vprofile");
				}
				if($task_data[0]->vtr_id != $user_id){
					$direct = true;
				}
	
			}
			$subtask_data = $this->Msubtask->SelectJoin2();
				
			if($uType == 'VT'){
				if(count($subtask_data)<1 && $direct){
					redirect("task/vprofile");
				}
			}
				
			$this->Mtask_comments->task_id($task_id);
			$comments_data = $this->Mtask_comments->SelectJoin();
				
			$this->Mattachment->task_id($task_id);
			$attachment_data = $this->Mattachment->SelectAll();
				
		}
		$backLink = base_url()."task/archive_subtasks";
		$pdata['task_data'] = $task_data;
		$pdata['subtask_data'] = $subtask_data;
		$pdata['comments_data'] = $comments_data;
		$pdata['attachment_data'] = $attachment_data;
	
		$pdata['title'] = "Task Details";
		$pdata['sub_title'] = "<a href='$backLink'><i class='fa fa-arrow-circle-left'></i> </a> Task Details";
		$pdata['LoadViews'] = "todos_details_archive";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);
	}
	

	
	public function add_comments(){
		$this->CheckSession(true);
		$this->load->model("database/Mtask_comments");
		$uType = $this->session->GetCurrentUserType();
		$user_id = "";
		$task_id = $this->input->post("task_id", true);
		$description = $this->input->post("description", true);
		if(empty($description)){
			redirect("task/todos_details/id/$task_id");
		}
		
		if($uType == 'AD'){
			$user_id = $this->session->GetAdminData()->admin_pid;
		}
		if($uType == 'VT'){
			$user_id = $this->session->GetVtrData()->admin_pid;
		}
		if(IsPostBack && !empty($user_id) && !empty($task_id)){
			if($this->Mtask_comments->GetFromPostData()){
				$this->Mtask_comments->user_id($user_id);
				if($this->Mtask_comments->Save()){
					//$this->AddInfo("Successfully Added",true);
					redirect("task/todos_details/id/$task_id");
				}
			}
		} else {
			redirect("task/todos");
		}
		
	}
	
	public function changeTaskStatus(){
		if($this->session->GetCurrentUserType()=="VT") die;
		$uriData = $this->GetUriArray();
		$property = "";
		$search = "";
		foreach ($uriData as $key=>$value){
			$property = $key;
			$search = $value;
		}
		$currentDateTime = date("Y-m-d H:i:s");
		$task_id = $uriData['id'];
		$this->load->model("database/Mtask");
		if (isset($task_id) && !empty($task_id)) {
			$this->Mtask->task_id($task_id);
			if($this->Mtask->Select()){
				$status = $this->Mtask->status;
				if($status == 'L'){
					redirect("task/todos/$property/$search");
				} else {
					$status = $status=='P'?'D':'P';
					$this->Mtask=new Mtask();
					$this->Mtask->task_id($task_id);
					$this->Mtask->status($status);
					$this->Mtask->completion_date($currentDateTime);
					if($this->Mtask->Update()){
						if($status == 'D'){
							$query = "UPDATE subtask SET status = 'D', completion_date = now()
										WHERE task_id = $task_id AND status = 'P'";
							$result = $this->db->query($query);
						}
						redirect("task/todos/$property/$search");
					}
					redirect("task/todos/$property/$search");
				}
			} else {
				redirect("task/todos/$property/$search");
			}
		}else{
			redirect("task/todos/$property/$search");
		}
	}
	
	public function changeSubtaskStatus(){
		//if($this->session->GetCurrentUserType()=="VT") die;
		$uriData = $this->GetUriArray();
		$property = "";
		$search = "";
		foreach ($uriData as $key=>$value){
			$property = $key;
			$search = $value;
		}
		$subtask_id = $uriData['subid'];
		$task_id = $uriData['taskid'];
		$currentDateTime = date("Y-m-d H:i:s");
		$this->load->model("database/Msubtask");
		if (isset($subtask_id) && !empty($subtask_id) && isset($task_id) && !empty($task_id)) {
			$this->Msubtask->subtask_id($subtask_id);
			if($this->Msubtask->Select()){
				$status = $this->Msubtask->status;
				$selected_task_id = $this->Msubtask->task_id;
				if($task_id != $selected_task_id){
					redirect("task/todos/$property/$search");die;
				}
				if($status == 'L'){
					redirect("task/todos/$property/$search");die;
				} else {
					$status = $status=='P'?'D':'P';
					$this->Msubtask=new Msubtask();
					$this->Msubtask->subtask_id($subtask_id);
					$this->Msubtask->status($status);
					$this->Msubtask->completion_date($currentDateTime);
					if($this->Msubtask->Update()){
						if($status == 'P'){
							$query = "UPDATE task SET status = 'P' 
							WHERE task_id = $task_id LIMIT 1";
							$result = $this->db->query($query);
						}
						redirect("task/todos/$property/$search");
					}
					redirect("task/todos/$property/$search");
				}
			} else {
				redirect("task/todos/$property/$search");
			}
		}else{
			redirect("task/todos/$property/$search");
		}
	}
	
	public function download(){
		$this->CheckSession(true);
		$uriData = $this->GetUriArray();
		$id = $uriData['id'];
		$this->load->model("database/Mattachment");
		if(!empty($id)){
			$this->Mattachment->id($id);
			if($this->Mattachment->Select()){
				$original_name = $this->Mattachment->original_file_name;
				$file_name = $this->Mattachment->file_name;
				$headers = get_headers(base_url()."attachment/".$file_name);
				$response_code = substr($headers[0], 9, 3);
				if( $response_code == "200"){
					$this->load->helper('download');
					$data = file_get_contents("./attachment/".$file_name);
					force_download($original_name, $data);
				}
			}
		}
	}
	

	
	public function archiveData() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
			
		$pdata = array();
		$pdata['errType'] = "";
		$pdata['errMsg'] = "";
		$pdata['title'] = "Pending Requests";
		$pdata['sub_title'] = "";
		$uriData = $this->GetUriArray();
	
		if (isset($uriData['table_pk']) && !empty($uriData['table_pk'])) {
			$task_pid = $uriData['table_pk'];
	
			$query = "UPDATE task SET status = 'D'
			WHERE task_id = $task_pid AND status = 'P' LIMIT 1";
				
			$result = $this->db->query($query);
	
			if($this->db->affected_rows() > 0) {
				$pdata['errType'] = "success";
				$pdata['errMsg'] = "Task has been successfuly archived.";
			} else {
				$pdata['errType'] = "error";
				$pdata['errMsg'] = "Failed to archive!!";
			}
	
		} else {
			$pdata['errType'] = "error";
			$pdata['errMsg'] = "Invalid  Id!";
		}
	
		$pdata['redirectUrl'] = site_url("task/archive_tasks");
		$pdata['LoadViews'] = "only_message";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadPanel($pdata);
	}
	

	
	public function add_todos(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$cc = $this->session->GetAdminData ()->email;
		
		$this->load->model("database/Mtask");
		$serverLimit = true;
		$task_id = $this->input->post("table_pk", true);
		$isEdit = $this->input->post("isEdit", true);
		$title = $this->input->post("title", true);
		$vtr_id = $this->input->post("vtr_id", true);
		$property = $this->input->post("property", true);
		$search = $this->input->post("search", true);
		
		//Add task
		if($task_id == 'N' && $isEdit == 'N'){
			if(IsPostBack && !empty($title)){
				if(!empty($vtr_id)){
					$this->load->model("database/Madmin");
					$this->Madmin->admin_pid($vtr_id);
					if($this->Madmin->Select()){
						$vemail = $this->Madmin->email;
						$vtr_name = $this->Madmin->lname;
							$isSuccess = $this->sendMailForTask($vemail,$title,$vtr_name,$cc);
							if($isSuccess){
								$this->AddInfo("Email successfully sent.",true);
							} else {
								//$this->AddError("Failed to send email!!",true);
							}
					} else {
						//$this->AddError("Failed to send email!!",true);
					}					
				}
				if($this->Mtask->GetFromPostData()){
					if($this->Mtask->Save()){
						$task_id=$this->Mtask->GetUpdateDB()->insert_id();
						$this->AddInfo("Task Successfully Added",true);
						//redirect("task/todos");
					}
				}
				$serverLimit = false;
			}
			
			$count = isset($_FILES['upload']) ? count($_FILES['upload']['name']) : 0;
			
			if($count > 0){
				$all_files = array();
				$file = array();
				 
				for($i=0; $i<$count; $i++){
					foreach($_FILES['upload'] as $key => $ary) {
						$file[$key] = $ary[$i];
					}
					$all_files[$i] = $file;
				}
				$pdata['all_files'] = $all_files;
				 
				$extArray = array("jpg","jpeg","png","gif","txt","pdf","doc","docx","csv","xlsx","xls");
				$size = 0;
				foreach ($all_files as $fileObject){
					$size = $size + $fileObject['size'];
				}
				if(isset($task_id) && $size < 8388500){//8388608
					foreach ($all_files as $fileObject){
						$original_file_name = $fileObject["name"];
						$ext = pathinfo($original_file_name, PATHINFO_EXTENSION);
						$lowerExtn = strtolower($ext);
				
						if(in_array( $lowerExtn, $extArray)) {
							$sqlForMax = "SELECT id FROM attachment ORDER BY id DESC LIMIT 1";
							$records = $this->db->query($sqlForMax);
							$maxId = $records->result();
							if(empty($maxId)){
								$maxId = 1;
							} else {
								$maxId = $maxId[0]->id +1;
							}
							$file_name = $maxId.".$ext";
							$sql = "INSERT INTO attachment (task_id,file_name,original_file_name) VALUES('$task_id', '$file_name','$original_file_name')";
							$records2 = $this->db->query($sql);	
							$isInsert = $this->db->affected_rows();
							$newMax = $this->db->insert_id();
							$file_name = $newMax.".$ext";
							$sql2 = "UPDATE attachment SET file_name = '$file_name' WHERE id =$newMax";
							$records3 = $this->db->query($sql2);
							$dpath=BASEPATH."../attachment/".$file_name;
							
							if($isInsert > 0){
								if(copy($fileObject["tmp_name"], $dpath)){
									$this->AddInfo("Successfully Uploaded [$original_file_name]",true);
								} else {
									$this->AddError("Error in uploading file [$original_file_name]",true);
								}
							}
						}else{
							$this->AddError("File type not supported [$original_file_name]",true);
						}
					}//end foreach
				} else {
					$this->AddError("File size exceeds limit 8MB",true);
				}
			}
			if ($serverLimit){
				//$this->AddError("File size exceeds server limit",true);
			}	
		} else {
			//**************************EDIT TASK*****************
			if(IsPostBack && !empty($title)){
				
				$this->Mtask=new Mtask();
				$this->Mtask->task_id($task_id);
				if($this->Mtask->Select()){
					$preVtr = $this->Mtask->vtr_id;
				}else{
					$preVtr = "";
				}
				
				if($preVtr != $vtr_id){
					if(!empty($vtr_id)){
						$this->load->model("database/Madmin");
						$this->Madmin->admin_pid($vtr_id);
						if($this->Madmin->Select()){
							$vemail = $this->Madmin->email;
							$vtr_name = $this->Madmin->lname;
							$isSuccess = $this->sendMailForTask($vemail,$title,$vtr_name,$cc);
							if($isSuccess){
								$this->AddInfo("Email successfully sent.",true);
							} else {
								//$this->AddError("Failed to send email!!",true);
							}
						} else {
							//$this->AddError("Failed to send email!!",true);
						}
					}
				}
				
				$this->Mtask=new Mtask();
				if($this->Mtask->GetFromPostData()){
					$this->Mtask->task_id($task_id);
					$this->Mtask->title($this->Mtask->title);
					$this->Mtask->description($this->Mtask->description);
					$this->Mtask->due_date($this->Mtask->due_date);
					$this->Mtask->vtr_id($this->Mtask->vtr_id);
					if($this->Mtask->Update()){
						$this->AddInfo("Successfully Updated",true);
						//redirect("task/todos");
					}
				}
				$serverLimit = false;
			}
			$count = isset($_FILES['upload']) ? count($_FILES['upload']['name']) : 0;
				
			if($count > 0){
				$all_files = array();
				$file = array();
					
				for($i=0; $i<$count; $i++){
					foreach($_FILES['upload'] as $key => $ary) {
						$file[$key] = $ary[$i];
					}
					$all_files[$i] = $file;
				}
				$pdata['all_files'] = $all_files;
					
				$extArray = array("jpg","jpeg","png","gif","txt","pdf","doc","docx","csv","xlsx","xls");
				$size = 0;
				foreach ($all_files as $fileObject){
					$size = $size + $fileObject['size'];
				}
				if(isset($task_id) && $size < 8388500){//8388608
					foreach ($all_files as $fileObject){
						$original_file_name = $fileObject["name"];
						$ext = pathinfo($original_file_name, PATHINFO_EXTENSION);
						$lowerExtn = strtolower($ext);
			
						if(in_array( $lowerExtn, $extArray)) {
							$sqlForMax = "SELECT id FROM attachment ORDER BY id DESC LIMIT 1";
							$records = $this->db->query($sqlForMax);
							$maxId = $records->result();
							if(empty($maxId)){
								$maxId = 1;
							} else {
								$maxId = $maxId[0]->id +1;
							}
							$file_name = $maxId.".$ext";
							$sql = "INSERT INTO attachment (task_id,file_name,original_file_name) VALUES('$task_id', '$file_name','$original_file_name')";
							$records2 = $this->db->query($sql);
							$isInsert = $this->db->affected_rows();
							$newMax = $this->db->insert_id();
							$file_name = $newMax.".$ext";
							$sql2 = "UPDATE attachment SET file_name = '$file_name' WHERE id =$newMax";
							$records3 = $this->db->query($sql2);
							$dpath=BASEPATH."../attachment/".$file_name;
								
							if($isInsert > 0){
								if(copy($fileObject["tmp_name"], $dpath)){
									$this->AddInfo("Successfully Uploaded [$original_file_name]",true);
								} else {
									$this->AddError("Error in uploading file [$original_file_name]",true);
								}
							}
						}else{
							$this->AddError("File type not supported [$original_file_name]",true);
						}
					}//end foreach
				} else {
					$this->AddError("File size exceeds limit 8MB",true);
				}
			}
			if ($serverLimit){
				//$this->AddError("File size exceeds server limit",true);
			}			
		}
		
		if($task_id == 'N' && $isEdit == 'N'){
			redirect("task/todos");
		}else{
			redirect("task/todos/$property/$search");
		}
	}
	
	public function add_todos_from_calendar(){
		$this->CheckSession(true);
		$cc = $this->session->GetAdminData ()->email;
		if($this->session->GetCurrentUserType()=="VT") die;
		$this->load->model("database/Mtask");
		$serverLimit = true;
		$title = $this->input->post("title", true);
		$vtr_id = $this->input->post("vtr_id", true);
		$due_date = $this->input->post("due_date", true);
	
		if(IsPostBack && !empty($title)){
			if(!empty($vtr_id)){
				$this->load->model("database/Madmin");
				$this->Madmin->admin_pid($vtr_id);
				if($this->Madmin->Select()){
					$vemail = $this->Madmin->email;
					$vtr_name = $this->Madmin->lname;
					$isSuccess = $this->sendMailForTask($vemail,$title,$vtr_name,$cc);
					if($isSuccess){
						//$this->AddInfo("Email successfully sent.",true);
					} else {
						//$this->AddError("Failed to send email!!",true);
					}
				} else {
					//$this->AddError("Failed to send email!!",true);
				}
			}
			if($this->Mtask->GetFromPostData()){
				if($this->Mtask->Save()){
					$task_id=$this->Mtask->GetUpdateDB()->insert_id();
					//$this->AddInfo("Task Successfully Added",true);
					//redirect("task/todos");
				}
			}
			$serverLimit = false;
		}
				
		$count = isset($_FILES['upload']) ? count($_FILES['upload']['name']) : 0;
			
		if($count > 0){
			$all_files = array();
			$file = array();
				
			for($i=0; $i<$count; $i++){
				foreach($_FILES['upload'] as $key => $ary) {
					$file[$key] = $ary[$i];
				}
				$all_files[$i] = $file;
			}
			$pdata['all_files'] = $all_files;
				
			$extArray = array("jpg","jpeg","png","gif","txt","pdf","doc","docx","csv","xlsx","xls");
			$size = 0;
			foreach ($all_files as $fileObject){
				$size = $size + $fileObject['size'];
			}
			if(isset($task_id) && $size < 8388500){//8388608
				foreach ($all_files as $fileObject){
					$original_file_name = $fileObject["name"];
					$ext = pathinfo($original_file_name, PATHINFO_EXTENSION);
					$lowerExtn = strtolower($ext);

					if(in_array( $lowerExtn, $extArray)) {
						$sqlForMax = "SELECT id FROM attachment ORDER BY id DESC LIMIT 1";
						$records = $this->db->query($sqlForMax);
						$maxId = $records->result();
						if(empty($maxId)){
							$maxId = 1;
						} else {
							$maxId = $maxId[0]->id +1;
						}
						$file_name = $maxId.".$ext";
						$sql = "INSERT INTO attachment (task_id,file_name,original_file_name) VALUES('$task_id', '$file_name','$original_file_name')";
						$records2 = $this->db->query($sql);
						$isInsert = $this->db->affected_rows();
						$newMax = $this->db->insert_id();
						$file_name = $newMax.".$ext";
						$sql2 = "UPDATE attachment SET file_name = '$file_name' WHERE id =$newMax";
						$records3 = $this->db->query($sql2);
						$dpath=BASEPATH."../attachment/".$file_name;
							
						if($isInsert > 0){
							if(copy($fileObject["tmp_name"], $dpath)){
								//$this->AddInfo("Successfully Uploaded [$original_file_name]",true);
							} else {
								//$this->AddError("Error in uploading file [$original_file_name]",true);
							}
						}
					}else{
						//$this->AddError("File type not supported [$original_file_name]",true);
					}
				}//end foreach
			} else {
				//$this->AddError("File size exceeds limit 8MB",true);
			}
		}
		if ($serverLimit){
			//$this->AddError("File size exceeds server limit",true);
		}
		redirect("task/calendar/date/$due_date");
	}
	
	public function getTaskData() {
		$this->CheckSession(true);
		$tid = $_REQUEST["tid"];
	
		$query = "SELECT * FROM task WHERE task_id = $tid";
			
		$records = $this->db->query($query);
		echo json_encode($records->result());
	}
	
	public function getTaskDataForCalendar() {
		$this->CheckSession(true);
		$tid = $_REQUEST["tid"];
		
		$this->load->model("database/Mtask");
		$this->Mtask->task_id($tid);
		$task_data = $this->Mtask->SelectJoin2();
		echo json_encode($task_data);
	}
	/*
	[{"title":"All Day Event","start":"2016-01-01"},{"title":"Long Event","start":"2016-01-07","end":"2016-01-10"
	},{"id":"999","title":"Repeating Event","start":"2016-01-09T16:00:00-05:00"},{"id":"999","title":"Repeating
 Event","start":"2016-01-16T16:00:00-05:00"},{"title":"Conference","start":"2016-01-11","end":"2016-01-13"
	},{"title":"Meeting","start":"2016-01-12T10:30:00-05:00","end":"2016-01-12T12:30:00-05:00"},{"title"
	:"Lunch","start":"2016-01-12T12:00:00-05:00"},{"title":"Meeting","start":"2016-01-12T14:30:00-05:00"
	},{"title":"Happy Hour","start":"2016-01-12T17:30:00-05:00"},{"title":"Dinner","start":"2016-01-12T20
:00:00+00:00"},{"title":"Birthday Party","start":"2016-01-13T07:00:00-05:00"},{"url":"http:\/\/google
.com\/","title":"Click for Google","start":"2016-01-28"}]
	*/
	public function getCalendarEvents() {
		//[{"title":"All Day Event","start":"2016-01-01"},]
		//[start] => 2016-01-31
		//[end] => 2016-03-13
		$start = $_REQUEST["start"];
		$end = $_REQUEST["end"];
		$uType = $this->session->GetCurrentUserType();
		
		if($uType == 'VT'){
			$loggedVtr = $this->session->GetVtrData()->admin_pid;
			$query = "SELECT task_id as id, title, due_date as start FROM task WHERE (due_date BETWEEN '$start' AND '$end') AND vtr_id = $loggedVtr AND status != 'L' AND status != 'H'";
		}else{
			$query = "SELECT task_id as id, title, due_date as start FROM task WHERE (due_date BETWEEN '$start' AND '$end') AND status != 'L' AND status != 'H'";
		}
		
		
		
		$records = $this->db->query($query);
		echo json_encode($records->result());
	}
	
	public function update_due_date(){
		//[tid] => 9
		//[due] => 2016-02-09
		$this->CheckSession(true);
		$tid = $_REQUEST["tid"];
		$due = $_REQUEST["due"];
		$query = "UPDATE task set due_date = '$due' WHERE task_id = $tid LIMIT 1";
		$records = $this->db->query($query);
		//echo json_encode($records->result());
	}
	
	public function archive_task_data() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		
		$tid = $_REQUEST["tid"];
		
		if(!empty($tid)){
			$query1 = "UPDATE subtask SET status = 'L' WHERE task_id = $tid AND status = 'D'";
			$query2 = "UPDATE task_comments SET status = 'L' WHERE task_id = $tid AND status = 'A'";
			$query3 = "UPDATE attachment SET status = 'L' WHERE task_id = $tid AND status = 'A'";
			$query4 = "UPDATE task SET status = 'L' WHERE task_id = $tid LIMIT 1";
			$records1 = $this->db->query($query1);
			$records2 = $this->db->query($query2);
			$records3 = $this->db->query($query3);
			$records4 = $this->db->query($query4);
			echo json_encode("s");
		}
	}
	
	public function delete_subtask_data() {
		$this->CheckSession(true);
		$uType = $this->session->GetCurrentUserType();
		$sid = $_REQUEST["sid"];
	
		if(!empty($sid)){
			if($uType == 'VT'){
				$loggedVtr = $this->session->GetVtrData()->admin_pid;
				$this->load->model("database/Msubtask");
				$this->Msubtask->subtask_id($sid);
				if($this->Msubtask->Select()){
					$subVtr = $this->Msubtask->done_vtr;
				}else{
					$subVtr = "";
				}
				if($loggedVtr == $subVtr){
					$query1 = "DELETE FROM subtask WHERE subtask_id = $sid LIMIT 1";
					$records1 = $this->db->query($query1);
				}
			}
			
			if($uType == 'AD'){
				$query1 = "DELETE FROM subtask WHERE subtask_id = $sid LIMIT 1";
				$records1 = $this->db->query($query1);				
			}

			echo json_encode("s");
		}
	}
	
	public function unlock_task() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$selectedRows = $this->input->post("selected", true);
		$Unarchive = $this->input->post("Unarchive", true);
		$Delete = $this->input->post("Delete", true);
		//$uriData = $this->GetUriArray();
		//$tid = $uriData['tid'];
		
		
		
		if(!empty($selectedRows) && !empty($Unarchive)){
			foreach ($selectedRows as $key=>$tid){
				$query1 = "UPDATE subtask SET status = 'D' WHERE task_id = $tid AND status = 'L'";
				$query2 = "UPDATE task_comments SET status = 'A' WHERE task_id = $tid AND status = 'L'";
				$query3 = "UPDATE attachment SET status = 'A' WHERE task_id = $tid AND status = 'L'";
				$query4 = "UPDATE task SET status = 'P' WHERE task_id = $tid LIMIT 1";
				$records1 = $this->db->query($query1);
				$records2 = $this->db->query($query2);
				$records3 = $this->db->query($query3);
				$records4 = $this->db->query($query4);
			}
		}
		
		if(!empty($selectedRows) && !empty($Delete)){
			foreach ($selectedRows as $key=>$tid){
				$query1 = "UPDATE subtask SET status = 'H' WHERE task_id = $tid";
				$query2 = "UPDATE task_comments SET status = 'H' WHERE task_id = $tid AND status = 'L'";
				$query3 = "UPDATE attachment SET status = 'H' WHERE task_id = $tid AND status = 'L'";
				$query4 = "UPDATE task SET status = 'H' WHERE task_id = $tid LIMIT 1";
				$records1 = $this->db->query($query1);
				$records2 = $this->db->query($query2);
				$records3 = $this->db->query($query3);
				$records4 = $this->db->query($query4);
			}
		}
		
		if(false && !empty($selectedRows) && !empty($Delete)){
			foreach ($selectedRows as $key=>$tid){
				$query1 = "DELETE FROM subtask WHERE task_id = $tid";
				$query2 = "DELETE FROM task_comments WHERE task_id = $tid AND status = 'L'";
				
				$query5 = "SELECT file_name FROM attachment WHERE task_id=$tid";
				$records5 = $this->db->query($query5);
				$files = $records5->result();
				
				$query3 = "DELETE FROM attachment WHERE task_id = $tid AND status = 'L'";
				$query4 = "DELETE FROM task WHERE task_id = $tid LIMIT 1";
				$records1 = $this->db->query($query1);
				$records2 = $this->db->query($query2);
				$records3 = $this->db->query($query3);
				$isAttDel = $this->db->affected_rows();
				$records4 = $this->db->query($query4); 
				
				if($isAttDel){
					if(!empty($files)){
						foreach ($files as $file){
							$dpath=BASEPATH."../attachment/".$file->file_name;
							//H:/web_application/htdocs/PMapp/system/../attachment/40.xlsx
							if(file_exists($dpath)){
								if(unlink($dpath)){
									//GPrint("File Delete success.");
								}else{
									//GPrint("Unsuccess");
								}
							}else{
								//GPrint("File not exists");
							}
						}
					}else{
						//GPrint("Query not found");
					}
				}else{
					//GPrint("Attachment not deleted from table.");
				}
			}
		}
		redirect("task/archive_subtasks");
	}
	
	public function delete_file() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$uriData = $this->GetUriArray();
		$id = $uriData['table_pk'];
		$this->load->model("database/Mattachment");
		if(!empty($id)){
			$this->Mattachment->id($id);
			if($this->Mattachment->Select()){
				$original_name = $this->Mattachment->original_file_name;
				$file_name = $this->Mattachment->file_name;
				$task_id = $this->Mattachment->task_id;
				if($this->Mattachment->Delete()){
					$dpath=BASEPATH."../attachment/".$file_name;
					if(file_exists($dpath)){
						unlink($dpath);
					}
				}
			}
		}
		redirect("task/todos_details/id/$task_id");
	}
	
	public function getSubtaskData() {
		$this->CheckSession(true);
		$subtask_id = $_REQUEST["subtask_id"];
	
		$query = "SELECT * FROM subtask WHERE subtask_id = $subtask_id";
			
		$records = $this->db->query($query);
		echo json_encode($records->result());
	}
	
	public function archive_tasks(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$pdata = array();
		$tot_arr = array();
		$done_arr = array();
		$pdata['title'] = "Task List";
		$pdata['sub_title'] = "Task List";
		$this->load->model("database/Mtask");
		$this->Mtask->status('D');
		$task_data = $this->Mtask->SelectJoin();
	
		$this->load->model("database/Msubtask");
	
		$query1 = "SELECT COUNT(subtask_id) as tot_sub, task_id FROM subtask GROUP BY task_id";
		$query2 = "SELECT COUNT(subtask_id) as done_sub, task_id FROM subtask WHERE `status`='D' GROUP BY task_id";
	
		$records1 = $this->db->query($query1);
		$total_sub = $records1->result();
	
		$records2 = $this->db->query($query2);
		$done_sub = $records2->result();
	
		foreach ($done_sub as $done){
			$done_arr[$done->task_id] = $done->done_sub;
		}
	
		foreach ($total_sub as $total){
			$obj = new stdClass();
			$obj->total = $total->tot_sub;
			$obj->done = array_key_exists($total->task_id, $done_arr)?$done_arr[$total->task_id]:0;
			$tot_arr[$total->task_id] = $obj;
		}
	
		//$pdata['delete_url'] = site_url("main/delete_batch");
		$pdata['action_url'] = site_url("task/archiveData");
		$pdata['task_data'] = $task_data;
		$pdata['status_data'] = $tot_arr;
		$pdata['LoadViews'] = "task_list_archive";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadPanel($pdata);
	}
	
	public function add_task() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$this->load->model("database/Mtask");
		
		if(IsPostBack){
			if($this->Mtask->GetFromPostData()){
				if($this->Mtask->Save()){
					$this->AddInfo("Successfully Added",true);
					redirect("task/tasks");
				}
			}
		}
		
		$rData=array();
		$rData['title'] = "Corporate Cup | Add Task";
		$rData['sub_title'] = "Add Task";
		$rData['taskObj']=$this->Mtask;
		$this->GetDefaultConfiguration($rData);
		$rData['LoadViews']="task_form";
		$rData['AutoMsgShow']=false;
		$this->LoadPanel($rData);
	}
	
	public function edit_task() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$this->load->model("database/Mtask");
		$pdata = array();
		$pdata['title'] = "Corporate Cup | Edit Task";
		$pdata['sub_title'] = "Edit Task";
		$pdata['isEdit']=false;
		$uriData = $this->GetUriArray(); 
		
		$this->Mtask->task_id($uriData['id']);
		$this->Mtask->Select();
		$status =  $this->Mtask->status;
		if($status == 'D'){
			$this->AddError("Permission denied!!",true);
			redirect("task/tasks");
		}
		
		if(IsPostBack){
			$this->Mtask=new Mtask();
			if($this->Mtask->GetFromPostData()){
				$this->Mtask->task_id($uriData['id']);
				$this->Mtask->title($this->Mtask->title);
				$this->Mtask->due_date($this->Mtask->due_date);
				$this->Mtask->vtr_id($this->Mtask->vtr_id);
				if($this->Mtask->Update()){
					$this->AddInfo("Successfully Updated",true);
					redirect("task/tasks");
				}
			}
		}
		if(!empty($uriData['id'])){
			$pdata['isEdit']=true;
		
			$this->Mtask=new Mtask();
			$this->Mtask->task_id($uriData['id']);
		
			if($this->Mtask->Select()){
				$pdata['taskObj'] = $this->Mtask;
			}else{
				$pdata['isEdit']=false;
				$this->AddError("Invalid Task ID !!",true);
				redirect("task/tasks");
			}
		}
		$this->GetDefaultConfiguration($pdata);
		$pdata['LoadViews']="task_form";
		$pdata['AutoMsgShow']=false;
		$this->LoadPanel($pdata);		
	}
	
	public function subtasks() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$uriData = $this->GetUriArray();
		$pdata = array();
		$pdata['title'] = "Subtask List";
		$pdata['sub_title'] = "Subtask List";
		$this->load->model("database/Msubtask");
		
		$this->load->model("database/Mtask");//for dropdown menu
		$this->Mtask->status('status != "D"',false);
		$task_data = $this->Mtask->SelectAll('task_id,title','task_id','desc');
		$pdata['task_data'] = $task_data;
		
		
		if(!IsPostBack && empty($uriData['id'])) {
			$pdata['search_value'] = $task_data[0]->task_id;
			$this->Msubtask->task_id($task_data[0]->task_id);
			//$isAddSubtask = $task_data[0]->status;			
		}
		if(!IsPostBack && !empty($uriData['id'])) {
			$pdata['search_value'] = $uriData['id'];
			$this->Msubtask->task_id($uriData['id']);
		}		
		
		if(IsPostBack){
			$searchByTask = trim($_POST['task_id']);
			$pdata['search_value'] = $searchByTask;
			$this->Msubtask->task_id($searchByTask);
		}	
		$subtask_data = $this->Msubtask->SelectJoin();
		$pdata['delete_url'] = site_url("main/delete_batch");
		$pdata['subtask_data'] = $subtask_data;
		$pdata['LoadViews'] = "subtask_list";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);		
	}
	
	public function archive_subtasks() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$uriData = $this->GetUriArray();
		$pdata = array();
		$pdata['title'] = "Archive Task List";
		$pdata['sub_title'] = "Archive Task List";
		$this->load->model("database/Msubtask");
	
		$this->load->model("database/Mtask");//for dropdown menu
		$this->Mtask->status('L');
		//$task_data = $this->Mtask->SelectAll('task_id,title','task_id','desc');
		$task_data = $this->Mtask->SelectJoin2("","task_id","desc");
		$pdata['task_data'] = $task_data;
	
		if(count($task_data)>0){
		
			if(!IsPostBack && empty($uriData['id'])) {
				$pdata['search_value'] = $task_data[0]->task_id;
				$this->Msubtask->task_id($task_data[0]->task_id);
				//$isAddSubtask = $task_data[0]->status;
			}
			if(!IsPostBack && !empty($uriData['id'])) {
				$pdata['search_value'] = $uriData['id'];
				$this->Msubtask->task_id($uriData['id']);
			}
		
			if(IsPostBack){
				$searchByTask = trim($_POST['task_id']);
				$pdata['search_value'] = $searchByTask;
				$this->Msubtask->task_id($searchByTask);
			}
			$subtask_data = $this->Msubtask->SelectJoin();
			$pdata['subtask_data'] = $subtask_data;
		}	
		
		$pdata['delete_url'] = site_url("main/delete_batch");
		$pdata['LoadViews'] = "archive_subtask_list";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);
	}
	
	public function pending_request() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$uriData = $this->GetUriArray();
		$pdata = array();
		$pdata['title'] = "Pending Request";
		$pdata['sub_title'] = "Pending Request";
		$this->load->model("database/Msubtask");
		$this->Msubtask->status('R');
		$subtask_data = $this->Msubtask->SelectJoin();
		if(count($subtask_data) < 1){
			$this->AddError("No records are found to display!!",false);
		}
		$pdata['delete_url'] = site_url("main/delete_batch");
		$pdata['subtask_data'] = $subtask_data;
		$pdata['action_url'] = site_url("task/approveBy"); //Approve by Admin and Account
		$pdata['cancel_url'] = site_url("task/cancelBy"); //Cancel by Admin and Account
		$pdata['LoadViews'] = "pending_request";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadView($pdata);
	}
	
	public function approveBy() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		 
		$pdata = array();
		$pdata['errType'] = "";
		$pdata['errMsg'] = "";
		$pdata['title'] = "Pending Requests";
		$pdata['sub_title'] = "";
		$uriData = $this->GetUriArray();
		
		if (isset($uriData['table_pk']) && !empty($uriData['table_pk'])) {
			$subtask_pid = $uriData['table_pk'];
		
			$query = "UPDATE subtask SET status = 'D'
				WHERE subtask_id = $subtask_pid AND status = 'R' LIMIT 1";
		
			$result = $this->db->query($query);
			
			if($this->db->affected_rows() > 0) {
				$pdata['errType'] = "success";
				$pdata['errMsg'] = "Request has been approved";
			} else {
				$pdata['errType'] = "error";
				$pdata['errMsg'] = "Approval Failed!!";
			}
		
		} else {
			$pdata['errType'] = "error";
			$pdata['errMsg'] = "Invalid  Id!";
		}
		
		$pdata['redirectUrl'] = site_url("task/pending_request");
		$pdata['LoadViews'] = "only_message";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadPanel($pdata);
	}
	

	
	public function cancelBy() {
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		 
		$pdata = array();
		$pdata['errType'] = "";
		$pdata['errMsg'] = "";
		$pdata['title'] = "Pending Requests";
		$pdata['sub_title'] = "";
		$uriData = $this->GetUriArray();
		
		if (isset($uriData['table_pk']) && !empty($uriData['table_pk'])) {
			$subtask_pid = $uriData['table_pk'];
			$query = "UPDATE subtask SET status = 'P'
				WHERE subtask_id = $subtask_pid AND status = 'R' LIMIT 1";
			
			$result = $this->db->query($query);
		
			if($this->db->affected_rows() > 0) {
				$pdata['errType'] = "success";
				$pdata['errMsg'] = "Request has been Canceled";
			} else {
				$pdata['errType'] = "error";
				$pdata['errMsg'] = "Cancelation Failed";
			}
		
		} else {
			$pdata['errType'] = "error";
			$pdata['errMsg'] = "Invalid  Id!";
		}
		
		$pdata['redirectUrl'] = site_url("task/pending_request");
		$pdata['LoadViews'] = "only_message";
		$this->GetDefaultConfiguration($pdata);
		$this->LoadPanel($pdata);
	}
	
	public function add_subtask(){
		$this->CheckSession(true);
		if($this->session->GetCurrentUserType()=="VT") die;
		$task_id = $this->input->post("task_id", true);
		$subtitle = $this->input->post("subtitle", true);
		
		$this->load->model("database/Mtask");
		$this->Mtask->task_id($task_id);
		
		if($this->Mtask->Select() && $this->Mtask->status != 'D'){
			$vtr_id = $this->Mtask->vtr_id;
			if(empty($vtr_id)){
				$this->AddInfo("Please assign volunteer for this subtasks.",true);
			}else{
				$this->load->model("database/Mvolunteer");
				$this->Mvolunteer->v_pid($vtr_id);
				if($this->Mvolunteer->Select()){
					$vemail = $this->Mvolunteer->email;
					$vtr_name = $this->Mvolunteer->lname;
					if(!empty($subtitle)){
						$isSuccess = $this->sendMail($vemail,$subtitle,$vtr_name);
						if($isSuccess){
							$this->AddInfo("Email successfully sent.",true);
						} else {
							$this->AddError("Failed to send email!!",true);
						}
					}
				} else {
					$this->AddError("Failed to send email!!",true);
				}
			}
				if(!empty($subtitle)){
					$sql = "INSERT INTO subtask (task_id,subtitle,done_vtr) VALUES('$task_id', '$subtitle','$vtr_id')";
					$records = $this->db->query($sql); 
					$this->AddInfo("Successfully Saved",true);
					redirect("task/subtasks/id/$task_id");
				} else {
					$this->AddError("Empty subtitle field",true);
					redirect("task/subtasks/id/$task_id");
				}				

		} else {
			$this->AddError("Invalid Task item has selected",true);
			redirect("task/subtasks");
		}
	}
	
	public function add_subtask2(){
		$this->CheckSession(true);
		$uType = $this->session->GetCurrentUserType();
		$subtitle = $this->input->post("subtitle", true);
		$vtr_id = $this->input->post("done_vtr", true);
		if($uType == 'VT'){
			$vtr_id = $this->session->GetVtrData()->admin_pid;
		}
		if($uType == 'AD'){
			$cc = $this->session->GetAdminData ()->email;
		}else {
			$cc = "";
		}
		$isEdit = $this->input->post("isEdit", true);
		$sub_id = $this->input->post("sub_id", true);
		$task_id = $this->input->post("task_id", true);
		$property = $this->input->post("property", true);
		$search = $this->input->post("search", true);
		
		$this->load->model("database/Mtask");
		
		if($isEdit == 'N' && $sub_id == 'N'){
			$this->Mtask->task_id($task_id);
			if($this->Mtask->Select() && $this->Mtask->status != 'L'){
				//$vtr_id = $this->Mtask->vtr_id;
				if(empty($vtr_id)){
					//$this->AddInfo("Please assign volunteer for this subtasks.",true);
				}else{
					$this->load->model("database/Madmin");
					$this->Madmin->admin_pid($vtr_id);
					if($this->Madmin->Select()){
						$vemail = $this->Madmin->email;
						$vtr_name = $this->Madmin->lname;
						if(!empty($subtitle) && $uType == 'AD'){
							$isSuccess = $this->sendMail($vemail,$subtitle,$vtr_name,$cc);
							if($isSuccess){
								$this->AddInfo("Email successfully sent.",true);
							} else {
								//$this->AddError("Failed to send email!!",true);
							}
						}
					} else {
						//$this->AddError("Failed to send email!!",true);
					}
				}
				if(!empty($subtitle)){
					$this->load->model("database/Msubtask");
					$this->Msubtask->task_id($task_id);
					$this->Msubtask->subtitle($subtitle);
					$this->Msubtask->done_vtr($vtr_id);
					if($this->Msubtask->Save()){
						$query = "UPDATE task SET status = 'P'
									WHERE task_id = $task_id LIMIT 1";
						$result = $this->db->query($query);
						//$this->AddInfo("Successfully Saved",true);
						redirect("task/todos/$property/$search");
					} else {
						//$this->AddError("Ubable to save data",true);
						redirect("task/todos/$property/$search");
				}
					
					//$sql = "INSERT INTO subtask (task_id,subtitle,done_vtr) VALUES('$task_id', '$subtitle','$vtr_id')";
					//$records = $this->db->query($sql);
					
				} else {
					//$this->AddError("Empty subtitle field",true);
					redirect("task/todos/$property/$search");
				}
		
			} else {
				//$this->AddError("Invalid Task item has selected",true);
				redirect("task/todos/$property/$search");
			}//end add subtask
		} else {
			//Edit Task
			$this->load->model("database/Msubtask");
			$this->Mtask->task_id($task_id);
			if($this->Mtask->Select() && $this->Mtask->status != 'L'){
				//$vtr_id = $this->Mtask->vtr_id;
				if(empty($vtr_id)){
					//$this->AddInfo("Please assign volunteer for this subtasks.",true);
				}else{
					$this->Msubtask->subtask_id($sub_id);
					$this->Msubtask->task_id($task_id);
					if($this->Msubtask->Select()){
						$preVtr = $this->Msubtask->done_vtr;
					}else{
						$preVtr = "";
					}
					
					if($vtr_id != $preVtr){
						$this->load->model("database/Madmin");
						$this->Madmin->admin_pid($vtr_id);
						if($this->Madmin->Select()){
							$vemail = $this->Madmin->email;
							$vtr_name = $this->Madmin->lname;
							if(!empty($subtitle) && $uType == 'AD'){
								$isSuccess = $this->sendMail($vemail,$subtitle,$vtr_name,$cc);
								if($isSuccess){
									$this->AddInfo("Email successfully sent.",true);
								} else {
									//$this->AddError("Failed to send email!!",true);
								}
							}
						} else {
							//$this->AddError("Failed to send email!!",true);
						}
					}
				}
				if(!empty($subtitle)){
					//$this->Msubtask->task_id($task_id);//Subtask task_id always fixed after adding
					$this->Msubtask = new Msubtask();
					$this->Msubtask->subtask_id($sub_id);
					$this->Msubtask->subtitle($subtitle);
					if($uType == 'AD'){
						$this->Msubtask->done_vtr($vtr_id);
					}
					
					if($this->Msubtask->Update()){
						redirect("task/todos/$property/$search");
					} else {
						//$this->AddError("Ubable to save data",true);
						redirect("task/todos/$property/$search");
					}
				} else {
					//$this->AddError("Empty subtitle field",true);
					redirect("task/todos/$property/$search");
				}
			
			} else {
				//$this->AddError("Invalid Task item has selected",true);
				redirect("task/todos/$property/$search");
			}			
		}
	}
	
	public function sendMail($to='',$subtask_title='',$vtr_name='', $cc='') {
		$this->load->library('email');
	
		$config['protocol'] = 'sendmail';
		$config['charset'] = 'utf-8';
		$config['wordwrap'] = TRUE;
		$config['mailtype'] = 'html';
	
		$this->email->initialize($config);
	
		$this->email->from('corporate_cup@vcccsar.org', 'Corporate Cup');
		//$this->email->from('noreply@appsynapsis.com', 'Appsynapsis');
		$this->email->to($to);
		$this->email->cc($cc);
	
		$this->email->subject('A new task');
		$this->email->message("
								<p>Dear Mr./Ms $vtr_name</p>
								<div>
									A new sub-task is assigned to you.<br>
									<b>Sutask Title: </b>$subtask_title<br>
								</div>
							");
		$mailStatus = $this->email->send();
		if ($mailStatus) {
			return true;
		} else {
			return false;
		}
	}
	
	public function sendMailForTask($to='',$subtask_title='',$vtr_name='', $cc='') {
		$this->load->library('email');
	
		$config['protocol'] = 'sendmail';
		$config['charset'] = 'utf-8';
		$config['wordwrap'] = TRUE;
		$config['mailtype'] = 'html';
	
		$this->email->initialize($config);
	
		$this->email->from('noreply@vcccsar.org', 'Corporate Cup');
		//$this->email->from('noreply@appsynapsis.com', 'Appsynapsis');
		$this->email->to($to);
		$this->email->cc($cc);
	
		$this->email->subject('A new task');
		$this->email->message("
				<p>Dear Mr./Ms $vtr_name</p>
				<div>
				A new task is assigned to you.<br>
				<b>Task Title: </b>$subtask_title<br>
				</div>
				");
				$mailStatus = $this->email->send();
				if ($mailStatus) {
				return true;
		} else {
		return false;
		}
	}
	
	public function sendMailForUserCreation($to='', $fname='', $lname='', $pass='') {
		$this->load->library('email');
	
		$config['protocol'] = 'sendmail';
		$config['charset'] = 'utf-8';
		$config['wordwrap'] = TRUE;
		$config['mailtype'] = 'html';
	
		$this->email->initialize($config);
		
		$fullName = $fname. " " .$lname;
	
		$this->email->from('noreply@vcccsar.org', 'Corporate Cup');
		//$this->email->from('noreply@appsynapsis.com', 'Appsynapsis');
		$this->email->to($to);
	
		$this->email->subject('VT Corporate Cup PM App User Created');
		$this->email->message("
				<p>Dear Mr./Ms $fullName</p>
				<div>
				An account has been created for you to use. Please click the following link to update your password and log in to the application.<br>
				<br>
				http://vcccsar.org/PMapp/
				<br>
				<p>Password: $pass</p>
				<br><br>
				Thank you,<br>
				Corporate Cup Staff 
				</div>
				");
				$mailStatus = $this->email->send();
				if ($mailStatus) {
				return true;
				} else {
				return false;
				}
	}

	public function email2(){
		$this->load->library('email');
		
		$config = array();
		$config['protocol'] = 'smtp';
		$config['smtp_host'] = 'vps7836.inmotionhosting.com';
		$config['smtp_user'] = 'corporate_cup@vcccsar.org';
		$config['smtp_pass'] = 'corporate_cup123!!';
		$config['smtp_port'] = 465;
		$config['charset'] = 'utf-8';
		$config['wordwrap'] = TRUE;
		$config['mailtype'] = 'html';
		$this->email->initialize($config);
		
		$this->email->set_newline("\r\n");
		
		
		$this->email->from('corporate_cup@vcccsar.org', 'Corporate Cup');
		$this->email->to('walid.islam77@gmail.com');
		
		$this->email->subject('Dashboard updated');
		$this->email->message('<h1>Your task has been done. Please check the dashboard.</h1>');
		$MailStatus = $this->email->send();
		
		echo "status:".$MailStatus;
	}
	
	public function sendMail22() {
		$this->load->library('email');
		$this->email->from('corporate_cup@vcccsar.org', 'PMApp');
		$this->email->to('walid.islam77@gmail.com'); 
		//$this->email->cc('name@gmail.com'); 
		//$this->email->bcc('them@their-example.com'); 
		$this->email->subject('Final result');
		$this->email->message('A Task has been assigned to you. Please login into admin panel.');	
		$this->email->send();
		echo "Email WWW SS gggsdfkgjfdgkl has been sent";
	}
	
	public function sendMail2() {
		$this->load->library('email');
		
		$config['protocol'] = 'sendmail';
		$config['charset'] = 'utf-8';
		$config['wordwrap'] = TRUE;
		$config['mailtype'] = 'html';
		
		$this->email->initialize($config);
		
		$this->email->from('walid_tee@yahoo.com', 'Walid');
		$this->email->to('walid.islam77@gmail.com');
		
		$this->email->subject('Regarding tasks');
		$this->email->message('Please forgive me');
		$KsbMailStatus = $this->email->send();
		GPrint($KsbMailStatus);
		GPrint("email sent from sendMail2");
	}
	
	public function sendMail3() {
		$to = "walid.islam77@gmail.com";
		$subject = "Regading admin panel" ;
		$body = "<div> hi hi hello .. </div>";
		
		$headers = 'From: PMAPP corporate_cup@vcccsar.org' . "\r\n" ;
		$headers .='Reply-To: '. $to . "\r\n" ;
		$headers .='X-Mailer: PHP/' . phpversion();
		$headers .= "MIME-Version: 1.0\r\n";
		$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
		if(mail($to, $subject, $body,$headers)) {
			echo('<br>'."Email Sent ;D ".'</br>');
		}
		else
		{
			echo("<p>Email Message delivery failed...</p>");
		}
	}
	
	public function sendMail4() {
		$this->load->library('email');
		$config = array(
				'mailtype' => 'html',
				'protocol' => 'smtp',
				'smtp_user' => 'corporate_cup@vcccsar.org',
				'smtp_pass' => 'corporate_cup123!!',
				'smtp_port' => '465',
				'smtp_host' => 'vps7836.inmotionhosting.com',
				'mail_path' => 'ssl://smtp.gmail.com'
		);
		$this->email->initialize($config);
		$this->email->set_newline("\r\n");
		$this->email->from("corporate_cup@vcccsar.org","Corporate");
		$message = "Dear Admin,<br /><br />";
		$this->email->subject('Notification');
		$this->email->message($message);
		$this->email->send();
	}
	
	
	public function edit_subtask() {
		//Admin and Volunteer both can update
		$this->CheckSession(true);
		$this->load->model("database/Msubtask");
		$pdata = array();
		$pdata['title'] = "Corporate Cup | Edit Subtask";
		$pdata['sub_title'] = "Edit Subtask";
		$pdata['isEdit']=false;
		$update = false;
		$uriData = $this->GetUriArray();
		$task_id = $uriData['task_id'];
		$uType = $this->session->GetCurrentUserType();
		$this->Msubtask->subtask_id($uriData['id']);
		$this->Msubtask->Select();
		$status =  $this->Msubtask->status;
		$vtr_id = $this->Msubtask->done_vtr;
		if($status == 'R' || $status == 'D'){
			$this->AddError("Permission denied!!",true);
			if($uType == 'AD'){
				redirect("task/subtasks/id/$task_id");
			}
			if($uType == 'VT'){
				redirect("task/vtask/id/$task_id");
			}
		}
		
		if($uType == 'VT'){
			$loggedVtr = $this->session->GetVtrData()->admin_pid;
			if($vtr_id != $loggedVtr){
				$this->AddError("Permission denied!!",true);
				redirect("task/vtask/id/$task_id");
			}
		}
		
		if(IsPostBack){
			if($uType == 'AD'){
				$newVtr = $this->input->post("done_vtr", true);
				$subtitle = $this->input->post("subtitle", true);
				if($vtr_id != $newVtr){
					$this->load->model("database/Mvolunteer");
					$this->Mvolunteer->v_pid($newVtr);
					if($this->Mvolunteer->Select() && !empty($subtitle)){
						$vemail = $this->Mvolunteer->email;
						$vtr_name = $this->Mvolunteer->lname;
						if(!empty($vemail)){
							$isSuccess = $this->sendMail($vemail,$subtitle,$vtr_name);
							if($isSuccess){
								$this->AddInfo("Email successfully sent.",true);
							} else {
								$this->AddError("Failed to send email!!",true);
							}
						}
					}else{
						//statement: if subtitle is empty and not found particular volunteer
					}
				} else {
					//statement: update only subtask title but not change volunteer
				}
			}
			$this->Msubtask=new Msubtask();
			if($this->Msubtask->GetFromPostData()){
				$this->Msubtask->subtask_id($uriData['id']);
				$this->Msubtask->subtitle($this->Msubtask->subtitle);
				$this->Msubtask->done_vtr($this->Msubtask->done_vtr);
				$this->Msubtask->status($this->Msubtask->status);
				
				if($this->Msubtask->Update()){
					$this->AddInfo("Successfully Updated",true);
					if($uType == 'AD'){
						redirect("task/subtasks/id/$task_id");
					}
					
					if($uType == 'VT'){
						redirect("task/vtask/id/$task_id");
					}
					
				}
			}
		}
		if(!empty($uriData['id'])){
			$pdata['isEdit']=true;
		
			$this->Msubtask=new Msubtask();
			$this->Msubtask->subtask_id($uriData['id']);
		
			if($this->Msubtask->Select()){
				$pdata['subtaskObj'] = $this->Msubtask;
			}else{
				$pdata['isEdit']=false;
			}
		}
		$this->GetDefaultConfiguration($pdata);
		$pdata['LoadViews']="subtask_form";
		$pdata['AutoMsgShow']=false;
		$this->LoadPanel($pdata);		
	}
	
	
	private function LoadView($rData) {
		$this->load->view("common_view",$rData);
	}
	
	private  function LoadPanel($rData){
		$this->load->view("userBody",$rData);
	}
	


}
?>