<?php

class Model_DbTable_Profile extends Zend_Db_Table {
	protected $_name = 'profile';

	public function insertData($data) {
		try {
			if (isset($data["DateOfBirth"])) {
				$time = strtotime($data["DateOfBirth"]);
				$data["DateOfBirth"] = date('Y-m-d', $time);
			}
			return $this -> insert($data);
		} catch (Exception $ex) {
			print_r($ex);
			return $ex;
		}
	}

	public function updateProfile($data, $id) {
		try {
			if (isset($data["Email"])) {
				if (empty($data["Email"])) {
					unset($data["Email"]);
				}
			}

			if (isset($data["DateOfBirth"])) {
				$time = strtotime($data["DateOfBirth"]);
				$data["DateOfBirth"] = date('Y-m-d', $time);
			}
			$this -> update($data, "UserID ='" . $id . "'");
			return $id;
		} catch (Exception $e) {
			print_r($e);
			return false;
		}
	}
	public function getUsername($id) {

        $select = $this->select();
        $select->from(array('U' => $this->_name), array("UserID", "Email"));
        $select->joinLeft(array("C" => "co_credetials"), "C.UserID = U.UserID", array("Username", "CID"));
        $select->where("U.UserID ='" . $id . "' ");
        $select->setIntegrityCheck(false);
        return $this->fetchRow($select);
    }

	public function getRow($id, $type = 0) {

		$select = $this -> select();
		$select -> from(array('U' => "UserProfile_view"));
		$select -> where("U.UserID ='" . $id . "'");
		$select -> setIntegrityCheck(false);
		return $this -> fetchRow($select);
	}

	public function DeleteRow($id) {

		$select = $this -> delete("UserID ='" . $id . "'");

		if ($select) {
			$ImageDB = new Model_DbTable_Images;
			$ImageDB -> DeleteData($id);
			$dbC = new Model_DbTable_Credentials;
			@$dbC -> delete("UserID ='" . $id . "'");
			return true;
		}

	}

	public function AdminLogig_Check_Terms($UserName) {
		$select = $this -> select();
		$select -> from(array('U' => "UserLogin_view"));
		$select -> where("U.Username ='" . $UserName . "' ");
		$select -> setIntegrityCheck(false);
		return $this -> fetchRow($select);

	}

	public function UserLogig_Check_Terms($UserName, $Password) {
		$select = $this -> select();
		$select -> from(array('U' => "UserLogin_view"));
		$select -> where("U.Username ='" . $UserName . "' AND U.Password ='" . md5($Password) . "'");
		$select -> setIntegrityCheck(false);
		return $this -> fetchRow($select);

	}

	public function getForSeason($id) {
		$select = $this -> select();
		$select -> from(array('U' => "userprofile"), array("UserID", "FirstName", "LastName", "NickName", "FullName", "Email", "Active", "UnionType", "UnionID", "JobType", "JobTitle", "Sex",  "LastLogin", "CID", "Administrator", "Age", "un_name", "RoleName", "CategoryName", "Status", "Role"));
		$select -> where("UserID ='" . $id . "'");
		$select -> setIntegrityCheck(false);
		return $this -> fetchRow($select);
	}
 public function getFullNamesByIDs($ids) {
        $select = $this->select();
        $select->from(array('U' => "Users_view"), array("UserID", "FullName"));
        $select->where("U.UserID IN (?)", $ids);
        $select->setIntegrityCheck(false);
        return $this->fetchAll($select);
    }
	public function getLive() {
		$date = date("Y-m-d H:i:s");
		$time = strtotime($date);
		$time = $time - (1 * 60);
		$time = $time - 30;
		$date = date("Y-m-d H:i:s", $time);
		$select = $this -> select();
		$select -> from(array('U' => $this -> _name), array("UserID", "LoggedIn", "LiveTime", "FirstName", "LastName"));
		$select -> where(" LoggedIn =1 AND LiveTime > '" . $date . "' ");
		$select -> setIntegrityCheck(false);
		return $this -> fetchAll($select);
	}

	public function listUsers($desc, $col, $search, $unionFilter, $type = "", $title = "", $role = "") {
		$select = $this -> select();
		$select -> from(array('U' => "ListUsers_view"));

		if ($search != null) {

			$select -> where("FirstName LIKE '%$search%' OR LastName LIKE '%$search%' OR Email LIKE '%$search%'  OR FullName LIKE '%$search%'
                        OR un_name LIKE '%$search%' OR Mobile LIKE '%$search%' OR CategoryName LIKE '%$search%'  OR IDNumber = '" . $search . "'
                        ");
		}
		if ($unionFilter > 0) {
			$select -> where("un_id ='" . $unionFilter . "' OR parentid ='" . $unionFilter . "'");
		}
		if ($type > 0) {
			$select -> where("un_type ='" . $type . "'");
		}
		if ($title > 0) {
			$select -> where("JobType ='" . $title . "'");
		}
		if ($role > 0) {
			$select -> where("JobTitle ='" . $role . "'");
		}

		if ($desc != "" && $desc != "undefined") {
			$select -> order($col . " " . $desc);
		}

		$select -> group("UserID");

		$select -> setIntegrityCheck(false);
		return $this -> fetchAll($select);
	}

	public function getFullProfileDetails($id) {
		try {
			$db = Zend_Db_Table::getDefaultAdapter();
			$stmt = $db -> query("CALL UserProfile(" . $id . ")");
$data = $stmt->fetchAll();
			if(count($data)>0){
				return $data[0];
			}
		} catch(Exception $e) {
			//Error_Log($expression);
			echo "<pre>";
			print_r($e);
			exit;
		}
		
		
		
		
	}
	
	public function getFullProfileNoImage($id) {
		try {
			$db = Zend_Db_Table::getDefaultAdapter();
			$stmt = $db -> query("CALL UserProfileNoImage(" . $id . ")");
$data = $stmt->fetchAll();
			if(count($data)>0){
				return $data[0];
			}
		} catch(Exception $e) {
			//Error_Log($expression);
			echo "<pre>";
			print_r($e);
			exit;
		}
	}
	
	public function getNewActivationsAccounts() {

       $auth = Zend_Auth::getInstance();
          $profile = $auth->getIdentity();
			if($profile->UnionType < 3) {
			return $this->getNewActivationsAccounts_All();
			}else{
				return $this->getNewActivationsAccounts_Union($profile->UnionID);
			}
    }
	
	public function getNewActivationsAccounts_All() {

        $select = $this->select();
        $select->from(array('U' => "New_Accounts_view"));
        $select->setIntegrityCheck(false);
        return $this->fetchAll($select);
    }
	public function getNewActivationsAccounts_Union($UnionID) {

        $select = $this->select();
        $select->from(array('U' => "New_Accounts_view"));
		$select->where(" un_id = '" . $UnionID . "' OR parentid  = '" . $UnionID . "' ");
        $select->setIntegrityCheck(false);
        return $this->fetchAll($select);
    }
	
	//squads
	public function GetMySquads($ID){
       
     $select = $this->select();
    $select->from(array('S'=>"SquadsPlayers_NoImage_view"),array(
	"TID","SID","RugbyCode","FormDate","SquadName","TournName","Age","Position","SquadType","Jersey","Rank","Vice","PosName"
	));
	
    
			$select->where("UserID ='".$ID."'  ");
			$select->order("FormDate Desc");
			$select->setIntegrityCheck(false);
    $return = $this->fetchAll($select);
	if(count($return)>0){
		$return = $return->toArray();
	}
		return $return;
		
	}
	public function GetMySquadsPersonnel($ID){
       
     $select = $this->select();
    $select->from(array('S'=>"SquadsCoaches_view")
    //,array("TID","SID","RugbyCode","FormDate","SquadName","TournName","Age","Position","SquadType","Jersey","Rank","Vice","PosName")
	);
	
    $select->setIntegrityCheck(false);
			$select->where("UserID ='".$ID."'  ");
    $return = $this->fetchAll($select);
	if(count($return)>0){
		$return = $return->toArray();
	}
		return $return;
		
	}
	
	public function TimePaid($ID){
       
     $select = $this->select();
    $select->from(array('S'=>"Fixture_Lineup_view"));
	
    $select->setIntegrityCheck(false);
			$select->where("UserID ='".$ID."'  ");
    $return = $this->fetchAll($select);
	if(count($return)>0){
		$return = $return->toArray();
	}
		return $return;
		
	}

}
