<?php defined('SYSPATH') or die('No direct access allowed.'); /** * This class provides charge item capabilities. * * @package Charge * @category Models * @author Deon George * @copyright (c) 2009-2013 Open Source Billing * @license http://dev.osbill.net/license.html */ class Model_Charge extends ORM_OSB { // Charge doesnt use the update column protected $_updated_column = FALSE; protected $_serialize_column = array( 'attributes', ); protected $_belongs_to = array( 'account'=>array(), ); protected $_display_filters = array( 'date_orig'=>array( array('Config::date',array(':value')), ), 'amount'=>array( array('Currency::display',array(':value')), ), ); /** * Render some details for specific calls, eg: invoice */ public function details($type) { switch ($type) { case 'invoice_detail_items': return array('Other Charge'=>sprintf('%s (%s@%s)',$this->description,$this->quantity,Currency::display($this->amount))); default: throw new Kohana_Exception('Unkown detail request :type',array(':type'=>$type)); } } public function total($format=FALSE) { $result = $this->quantity * $this->amount; if ($this->taxable) $result = Tax::add($result); return $format ? Currency::display($result) : $result; } } ?>