<?php

/* App Controller */

class AppController extends Controller {

    var $components = array('RequestHandler');

    var $uses = array('User');
    var $helpers = array('Javascript', 'Time', 'Html', 'Form');
    function beforeFilter() {

	// Find the user that matches the HTTP basic auth user
	$user = $this->User->find('first', array('recursive' => 0, 'conditions' => array('User.username'=>$_SERVER["PHP_AUTH_USER"])));
	$this->set("currentuser", $user);

	if($this->RequestHandler->isAjax()) {
	    Configure::write('debug', 0);
	}

    }


    /**
     * Check if the current logged in user is an admin
     * @return boolean
     */
    function isAdmin() {
	$currentuser = $this->getCurrentUser();
	if($currentuser['access_level'] == 'admin') {
	    return true;
	}
	else {
	    return false;
	}
    }


    function isManager() {
	$currentuser = $this->getCurrentUser();
	if($currentuser['access_level'] == 'manager') {
	    return true;
	}
	else {
	    return false;
	}
    }


    /**
     * Read the current logged in user.
     * @return array - the currently logged in user.
     */
    function getCurrentUser() {
    	$user = $this->User->find('first', array('recursive' => 0, 'conditions' => array('User.username'=>$_SERVER["PHP_AUTH_USER"])));
	return $user;
    }

    /**
     * Return the id of the current user. False if not logged in.
     */
    function getCurrentUserID() {
	$currentuser = $this->getCurrentUser();
	if($currentuser) {
	    return $currentuser['User']['id'];
	}
	else {
	    return false;
	}
    }



    function calculateTotals($document, $gst) {
	$totals = array('subtotal'=>0, 'gst'=>0, 'total'=>0);


	foreach($document['LineItem'] as $lineitem) {
	    if($lineitem['option'] == 1) {
		$totals['subtotal'] = 'TBA';
		$totals['total'] = 'TBA';
		$totals['gst'] = 'TBA';
		return $totals;
	    }
	    else {
		$totals['subtotal'] += $lineitem['net_price'];
	    }
	}

	if($gst == 1) {
	    $totals['gst'] = 0.1*$totals['subtotal'];
	}
	$totals['total'] = $totals['gst'] + $totals['subtotal'];
	return $totals;

    }

    function unset_keys($array, $keys) {
	foreach($keys as $key ) {
	    $array[$key] = null;
	}
	return $array;
    }

    function unset_multiple_keys($array, $keys) {
	foreach($array as $index => $item) {
	    $array[$index]['id'] = null;
	    $array[$index]['document_id'] = null;
	    $array[$index]['costing_id'] = null;
	}
    }


     /**
     *
     * @param <type> $year
     * @param <type> $prevYear
     * @return <type>
     */
    function getFirstDayFY($year,$prevYear = false) {
	if($prevYear == false) {
	    return mktime(0,0,0,7,1,$year);

	}
	else {
	    return mktime(0,0,0,7,1,$year-1);
	}
    }
    /**
     *
     * @param <type> $year
     * @return <int>
     */
    function getLastDayFY($year) {
	return mktime(23,59,59,6,30,$year);

    }




}
?>
