<?php defined('SYSPATH') or die('No direct access allowed.');

/**
 * This class provides a tax information
 *
 * @package    OSB
 * @subpackage Tax
 * @category   Helpers
 * @author     Deon George
 * @copyright  (c) 2010 Deon George
 * @license    http://dev.leenooks.net/license.html
 */
class Tax {
	/**
	 * Return array of taxes
	 *
	 * @param $cid
	 * @param $zone
	 * @param $value
	 * @return array Tax Information
	 */
	public static function detail($cid,$zone,$value=0) {
		$tax = ORM::factory('tax')
			->where('country_id','=',$cid)
			->and_where('zone','=',$zone);

		$taxes = array();
		foreach ($tax->find_all() as $item) {
			$total = array();

			$total['id'] = $item->id;
			$total['description'] = $item->description;
			$total['amount'] = $item->rate*$value;
			$total['rate'] = $item->rate;

			array_push($taxes,$total);
		}

		return $taxes;
	}

	// Calculate the tax amount
	public static function total($cid,$zone,$value) {
		$total = 0;

		foreach (static::detail($cid,$zone,$value) as $tax)
			$total += $tax['amount'];

		return $total;
	}

	public static function add($value) {
		// @todo Tax details should come from session
		// @todo Rounding should be a global config
		return round($value+static::total(61,NULL,$value),2);
	}
}
?>