<?php

class HomeController extends BaseController {

	/**
	 * Constructor
	 */
	public function __construct() {
		// Establish Filters
		$this->beforeFilter('auth');
	}

	public function index() {
		$user = User::find(Sentry::getUser()->id);

		if ($user->hasRole(Role::ROLE_PRODUCTION) && !$user->hasRole(Role::ROLE_CRM) && !$user->hasAccess('admin')) {
			return Redirect::to('/production');
		}
		if ($user->hasRole(Role::ROLE_PACKING) && !$user->hasRole(Role::ROLE_CRM) && !$user->hasAccess('admin')) {
			return Redirect::to('/production/packing');
		}
		if ($user->hasRole(Role::ROLE_FRANCHISEES) && !$user->hasAccess('admin')) {
			if (ProjectNews::whereRaw("project_id = 9 AND type_id = 1 AND project_news.access_user_id IN ('0', ".Sentry::getUser()->id.') AND project_news.id NOT IN (SELECT project_news_viewed.project_news_id FROM  project_news_viewed WHERE user_id = '.Sentry::getUser()->id.' )')->count()) {
				return Redirect::to('/projects/9/project_news');
			} elseif (ProjectNews::whereRaw("project_id = 9 AND type_id IN (2,3,4) AND project_news.access_user_id IN ('0', ".Sentry::getUser()->id.') AND project_news.id NOT IN (SELECT project_news_viewed.project_news_id FROM  project_news_viewed WHERE user_id = '.Sentry::getUser()->id.' )')->count()){
				return Redirect::to('/projects/9/marketing');
			} elseif (ProjectNews::whereRaw("project_id = 9 AND type_id IN (5,6) AND project_news.access_user_id IN ('0', ".Sentry::getUser()->id.') AND project_news.id NOT IN (SELECT project_news_viewed.project_news_id FROM  project_news_viewed WHERE user_id = '.Sentry::getUser()->id.' )')->count()){
				return Redirect::to('/projects/9/training');
			}
			return Redirect::to('/crm');
		}
		if ($user->hasAnyRole(array(Role::ROLE_LOGISTICS, Role::ROLE_CRM, Role::ROLE_AGENT)) && !$user->hasAccess('admin')) {
			return Redirect::to('/crm');
		}
		if ($user->hasRole(Role::ROLE_SIZER) && !$user->hasAccess('admin')) {
			return Redirect::to('/crm/needsize');
		}

		$dateWhere = 'DATE(created_at)=DATE(NOW())';

		$date	 = Input::get('date');
		$today = true;
		if ($date) {
			$validator = Validator::make(
											Input::all(), array('date' => 'date_format:Y-m-d')
			);
			if ($validator->fails()) {
				return Redirect::action('HomeController@index');
			}

			$dateWhere = 'DATE(created_at)=\'' . $date . '\'';
			$today		 = false;
		}
		else {
			$date = date("Y-m-d");
		}

		for ($i = 0; $i < 3; $i++) {
			$res		 = DB::select('
				SELECT
					DATE(DATE_SUB(NOW(), INTERVAL ? DAY)) as date,
					SUM((CASE WHEN (l.deleted_at IS NULL) THEN 1 ELSE 0 END)) as cntIsNew,
					SUM((CASE WHEN (l.isbad != 1 AND l.deleted_at IS NOT NULL) THEN 1 ELSE 0 END)) as cntIsOk,
					COALESCE(COUNT(*), 0) as cntAll
				FROM leads l
				LEFT JOIN users_projects up ON up.project_id=l.project_id
				WHERE up.user_id=? AND DATE(l.created_at)=DATE(DATE_SUB(NOW(), INTERVAL ? DAY))
			', array($i, $user->id, $i));
			$stat [] = $res[0];
		}

		return View::make('home')
										->with('projects', $user->projects)
										->with('dateWhere', $dateWhere)
										->with('stat', $stat)
										->with('today', $today)
										->with('date', $date);
	}

}
