<?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); } } ?>