<?php

App::uses('AppController', 'Controller');

class SearchController extends AppController {

	/**
	 * This controller use User Model
	 *
	 * @var array
	 */
	 
	public $uses = array('DreamjobWorker','DreamjobJobOpening','DreamjobCompany',
						'DreamjobListBranch','DreamjobListCity','DreamjobListKindofjob','DreamjobListGraducation');
	public $components = array('MiconwareSession');
	
	private static $TYPE_id = array('education'=>5,'academy'=>6,'internship'=>4);
	
	
	/**
	 * Displays a view
	 *
	 * @param mixed What page to display
	 * @return void
	 * @throws NotFoundException When the view file could not be found
	 *	or MissingViewException in debug mode.
	 */
	public function beforeFilter(){
		$this->Security->unlockedActions[]="opening";
		$this->Security->unlockedActions[]="company";
		$this->Security->unlockedActions[]="auto";
		$this->Security->unlockedActions[]="education";
		$this->Security->unlockedActions[]="academy";
		$this->Security->unlockedActions[]="internship";
		parent::beforeFilter();
		$this->set('MENU_SEARCH', true);
	}
	
	public function choose() {
		$this->MiconwareSession->init($this);
		
		$profil = $this->MiconwareSession->getCompany();
		if(!empty($profil) and count($profil) > 0){
			$this->worker();
		}else{
			$this->opening();
		}
	}
	
	private function spezial($type) {
		$this->MiconwareSession->init($this);
		$this->MiconwareSession->initWeb($this);
		$profil = $this->MiconwareSession->getWorker();
		if(!empty($profil) and count($profil) > 0 and isset(self::$TYPE_id[$type])){
			$con = $this->MiconwareSession->getOpeningCondition();
			$con['DreamjobJobOpening.kindofjob_id'] = self::$TYPE_id[$type];
		
			if(!empty($this->request->data['DreamjobJobOpening']['branch_id']))
				$con['DreamjobJobOpening.branch_id']=$this->request->data['DreamjobJobOpening']['branch_id'];
		
			
			if(!empty($this->request->data['DreamjobJobOpening']['title']))
				$con['DreamjobJobOpening.title LIKE'] = '%'.$this->request->data['DreamjobJobOpening']['title'].'%';
				
			if(!empty($this->request->data['DreamjobUser']['city']) and $this->request->data['DreamjobUser']['city'] != 48){
				$con['DreamjobUser.city_id']=$this->request->data['DreamjobUser']['city'];
			}
		
		
			$openings = $this->DreamjobJobOpening->find('all',array('conditions' => $con));
			$this->set("branches",$this->DreamjobListBranch->find('list'));
			$this->set("cities",$this->DreamjobListCity->find('list'));
			$this->set("openings",$openings);
			$this->render('/Search/'.$type);
		}else{
			$this->set('error', 'dreamjob.error.noPermision');
			$this->render('/Home/error');
		}
		
	}
	
	public function opening() {
		$this->MiconwareSession->init($this);
		
		$this->MiconwareSession->initWeb($this);
		$con = $this->MiconwareSession->getOpeningCondition();
		
		if(!empty($this->request->data['DreamjobJobOpening']['branch_id']))
			$con['DreamjobJobOpening.graducation_id']=$this->request->data['DreamjobJobOpening']['branch_id'];
		
		if(!empty($this->request->data['DreamjobJobOpening']['graducation_id']))
			$con['DreamjobJobOpening.graducation_id']=$this->request->data['DreamjobJobOpening']['graducation_id'];
		
		if(!empty($this->request->data['DreamjobJobOpening']['kindofjob_id']))
			$con['DreamjobJobOpening.kindofjob_id']=$this->request->data['DreamjobJobOpening']['kindofjob_id'];
		
		if(!empty($this->request->data['DreamjobJobOpening']['city']) and $this->request->data['DreamjobJobOpening']['city'] != 48){
				$con['DreamjobJobOpening.city_id']=$this->request->data['DreamjobJobOpening']['city'];
			}
		if(!empty($this->request->data['DreamjobJobOpening']['postcode']))
			$con['DreamjobJobOpening.postcode LIKE'] = '%'.$this->request->data['DreamjobJobOpening']['postcode'].'%';
		
		if(!empty($this->request->data['DreamjobJobOpening']['title']))
			$con['DreamjobJobOpening.title LIKE'] = '%'.$this->request->data['DreamjobJobOpening']['title'].'%';
		
		
		
		$openings = $this->DreamjobJobOpening->find('all',array('conditions' => $con));
		$this->set("branches",$this->DreamjobListBranch->find('list'));
		$this->set("cities",$this->DreamjobListCity->find('list'));
		$this->set("graducations",$this->DreamjobListGraducation->find('list'));
		$this->set("kindofjobs",$this->DreamjobListKindofjob->find('list'));
		
		$this->set("openings",$openings);
		$this->render('/Search/opening');
		
	}
	public function company() {
		$this->MiconwareSession->init($this);
		
		$this->MiconwareSession->initWeb($this);
		
		$con=array();
		if(!empty($this->request->data['DreamjobCompany']['branch_id']))
			$con['DreamjobCompany.branch_id']=$this->request->data['DreamjobCompany']['branch_id'];
		
		if(!empty($this->request->data['DreamjobUser']['city']) and $this->request->data['DreamjobUser']['city'] != 48){
			$con['DreamjobUser.city_id']=$this->request->data['DreamjobUser']['city'];
		}
		if(!empty($this->request->data['AppUser']['nickname']))
			$con['AppUser.nickname LIKE'] = '%'.$this->request->data['AppUser']['nickname'].'%';
			
		$companies = $this->DreamjobCompany->find('all',array('conditions' => $con));
		
		$this->set("branches",$this->DreamjobListBranch->find('list'));
		$this->set("cities",$this->DreamjobListCity->find('list'));
		
		$this->set("companies",$companies);
		$this->render('/Search/company');
		
	}
	
	public function auto() {
		$this->MiconwareSession->init($this);
		
		$this->MiconwareSession->initWeb($this);
		$profil = $this->MiconwareSession->getWorker();
		if(!empty($profil) and count($profil) > 0){
			$con = $this->MiconwareSession->getOpeningCondition();
			
			
			
			
			$openings = $this->DreamjobJobOpening->find('all',array('conditions' => $con));
			$this->set("openings",$openings);
			$this->render('/Search/auto');
		}else{
			$this->set('error', 'dreamjob.error.noPermision');
			$this->render('/Home/error');
		}
	}
	
	public function worker(){
		$this->MiconwareSession->init($this);
		
		$this->MiconwareSession->initWeb($this);
		$profil = $this->MiconwareSession->getCompany();
		if(!empty($profil) and count($profil) > 0){
			//TODO iam
			$workers = $this->DreamjobWorker->find('all',array('conditions' => array('DreamjobWorker.searchhidden'=>false)));
			$this->set("workers",$workers);
			$this->render('/Search/worker');
		}else{
			$this->set('error', 'dreamjob.error.noPermision');
			$this->render('/Home/error');
		}
	}
	
	
	public function education() {
		$this->spezial('education');
		
	}
	public function academy() {
		$this->spezial('academy');
		
	}
	public function internship() {
		$this->spezial('internship');
		
	}
}