This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/modules/tax/classes/Tax.php

59 lines
1.2 KiB
PHP
Raw Permalink Normal View History

2010-11-29 22:41:08 +00:00
<?php defined('SYSPATH') or die('No direct access allowed.');
/**
* This class provides a tax information
*
2013-03-19 22:35:19 +00:00
* @package Tax
2010-11-29 22:41:08 +00:00
* @category Helpers
* @author Deon George
2013-03-19 22:35:19 +00:00
* @copyright (c) 2009-2013 Open Source Billing
* @license http://dev.osbill.net/license.html
2010-11-29 22:41:08 +00:00
*/
class Tax {
/**
* Return array of taxes
*
* @param $cid
* @param $zone
* @param $value
* @return array Tax Information
*/
public static function detail($cid,$zone,$value=0) {
2012-11-09 23:13:57 +00:00
$tax = ORM::factory('Tax')
2010-11-29 22:41:08 +00:00
->where('country_id','=',$cid)
->and_where('zone','=',$zone)
->find_all();
2010-11-29 22:41:08 +00:00
$taxes = array();
foreach ($tax as $to) {
2010-11-29 22:41:08 +00:00
$total = array();
$total['id'] = $to->id;
$total['description'] = $to->description;
$total['amount'] = $to->rate*$value;
$total['rate'] = $to->rate;
2010-11-29 22:41:08 +00:00
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);
}
}
?>