<?php

class StatHrController extends BaseController {

	/**
	 * Constructor
	 */
	public function __construct() {
		// Establish Filters
		$this->beforeFilter('auth');
		$this->beforeFilter('hasRole:' . Role::ROLE_CRM_STAT);

		if (Auth::check()) {
			$this->user			 = Auth::user();
			$this->projects	 = $this->user->projects()->whereUsecrm(1)->whereType(Project::TYPE_HR)->get();
		}
		$this->projectPrefix = 'stat_hr';
		parent::__construct();
	}

	public function leads() {

		$this->user	 = Auth::user();
		$input			 = Input::all();

		if (Input::has('startDate')) {
			Session::put('stat_startDate', $input['startDate']);
		}
		else {
			$input['startDate'] = Session::get('stat_startDate');
			if (!$input['startDate']) {
				$input['startDate'] = date("d.m.Y");
			}
		}
		if (Input::has('endDate')) {
			Session::put('stat_endDate', $input['endDate']);
		}
		else {
			$input['endDate'] = Session::get('stat_endDate');
			if (!$input['endDate']) {
				$input['endDate'] = date('d.m.Y');
			}
		}

		$startDate = explode('.', $input['startDate']);
		if (checkdate($startDate[1], $startDate[0], $startDate[2])) {
			$startDate = "{$startDate[2]}-{$startDate[1]}-{$startDate[0]}";
		}
		$endDate = explode('.', $input['endDate']);
		if (checkdate($endDate[1], $endDate[0], $endDate[2])) {
			$endDate = "{$endDate[2]}-{$endDate[1]}-{$endDate[0]}";
		}

		$dateWhere	 = DB::raw("((`partners`.lead_created_at IS NOT NULL AND DATE(`partners`.lead_created_at)>=DATE('{$startDate}') AND DATE(`partners`.lead_created_at)<=DATE('{$endDate}')) OR (`partners`.lead_created_at IS NULL AND DATE(`partners`.created_at)>=DATE('{$startDate}') AND DATE(`partners`.created_at)<=DATE('{$endDate}')))");
//		DB::raw("DATE(`partners`.lead_created_at)>=DATE('2014-10-06') AND DATE(`partners`.lead_created_at1)<=DATE('2014-10-06')")
		$dateWhere2	 = DB::raw("DATE(`leads`.created_at)>=DATE('{$startDate}') AND DATE(`leads`.created_at)<=DATE('{$endDate}')");

		if (!Input::has('projectId')) {
			$input['projectId'] = Session::get($this->projectPrefix . '_work_projectId');
		}
		$project = false;
		if (!$input['projectId']) {
			$project						 = $this->user->projects()->whereUsecrm(1)->whereType(Project::TYPE_HR)->first();
			$input['projectId']	 = $project->id;
		}
		if (!$project) {
			$project = $this->user->projects()->whereUsecrm(1)->whereType(Project::TYPE_HR)->whereId($input['projectId'])->first();
		}
		if (!$project) {
			$project						 = $this->user->projects()->whereUsecrm(1)->whereType(Project::TYPE_HR)->first();
			$input['projectId']	 = $project->id;
		}
		Session::put($this->projectPrefix . '_work_projectId', $input['projectId']);
		if (!$project) {
			return \App::abort(404);
		}

		$projects = $this->user->projects()->whereUsecrm(1)->whereType(Project::TYPE_HR)->whereProjectId($project->id)->get();

		return $this->setupLayout('stat.hr.leads')
										->with('dateWhere', $dateWhere)
										->with('dateWhere2', $dateWhere2)
										->with('projects', $projects)
										->with('user', $this->user)
										->with('input', $input)
										->with('months', $this->months);
	}

}
