140 lines
3.2 KiB
PHP
140 lines
3.2 KiB
PHP
|
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||
|
|
||
|
/**
|
||
|
* This class is for access company information.
|
||
|
*
|
||
|
* @package OSB
|
||
|
* @category Helpers
|
||
|
* @author Deon George
|
||
|
* @copyright (c) 2009-2013 Open Source Billing
|
||
|
* @license http://dev.osbill.net/license.html
|
||
|
*/
|
||
|
class Company {
|
||
|
// Our Company Setup object
|
||
|
private $so;
|
||
|
|
||
|
public function __construct(Model_Setup $so) {
|
||
|
$this->so = $so;
|
||
|
|
||
|
if (! $this->so->loaded())
|
||
|
throw new Kohana_Exception(_('Site [:site] not defined in DB?'),array(':site'=>URL::base('http')));
|
||
|
|
||
|
Kohana::$environment = (int)$this->so->status;
|
||
|
}
|
||
|
|
||
|
public static function instance() {
|
||
|
return new Company(ORM::factory('Setup',array('url'=>URL::base('http'))));
|
||
|
}
|
||
|
|
||
|
public function admin() {
|
||
|
return $this->so->account->name();
|
||
|
}
|
||
|
|
||
|
public function address($ln='<br/>') {
|
||
|
return implode($ln,array($this->street($ln),sprintf('%s, %s %s',$this->city(),$this->state(),$this->pcode())));
|
||
|
}
|
||
|
|
||
|
public function city() {
|
||
|
return $this->so->site_details('city');
|
||
|
}
|
||
|
|
||
|
public function contacts() {
|
||
|
return 'Tel: '.$this->phone();
|
||
|
}
|
||
|
|
||
|
public function country() {
|
||
|
return $this->so->country;
|
||
|
}
|
||
|
|
||
|
public function date_format() {
|
||
|
return $this->so->date_format;
|
||
|
}
|
||
|
|
||
|
public function decimals() {
|
||
|
return $this->so->decimal_place;
|
||
|
}
|
||
|
|
||
|
public function email() {
|
||
|
return $this->so->site_details('email');
|
||
|
}
|
||
|
|
||
|
public function fax() {
|
||
|
return $this->so->site_details('fax');
|
||
|
}
|
||
|
|
||
|
public function language() {
|
||
|
return $this->so->language->iso;
|
||
|
}
|
||
|
|
||
|
public function logo() {
|
||
|
return Config::logo();
|
||
|
}
|
||
|
|
||
|
public function logo_file() {
|
||
|
list ($path,$suffix) = explode('.',Config::$logo);
|
||
|
|
||
|
return ($x=Kohana::find_file(sprintf('media/site/%s',$this->site()),$path,$suffix)) ? $x : Kohana::find_file('media',$path,$suffix);
|
||
|
}
|
||
|
|
||
|
public function name() {
|
||
|
return $this->so->site_details('name');
|
||
|
}
|
||
|
|
||
|
public function module_config($item) {
|
||
|
return $this->so->module_config($item);
|
||
|
}
|
||
|
|
||
|
public function pcode() {
|
||
|
return $this->so->site_details('pcode');
|
||
|
}
|
||
|
|
||
|
public function phone() {
|
||
|
return $this->so->site_details('phone');
|
||
|
}
|
||
|
|
||
|
public function site($format=FALSE) {
|
||
|
return $format ? sprintf('%02s',$this->so->id) : $this->so->id;
|
||
|
}
|
||
|
|
||
|
public function so() {
|
||
|
return $this->so;
|
||
|
}
|
||
|
|
||
|
public function state() {
|
||
|
return $this->so->site_details('state');
|
||
|
}
|
||
|
|
||
|
public function street($ln='<br/>') {
|
||
|
return $this->so->site_details('address2') ? implode($ln,array($this->so->site_details('address1'),$this->so->site_details('address2'))) : $this->so->site_details('address1');
|
||
|
}
|
||
|
|
||
|
public function sitemode() {
|
||
|
return $this->so->status;
|
||
|
}
|
||
|
|
||
|
public function taxid() {
|
||
|
// Tax ID details are stored in invoice config
|
||
|
$mc = $this->so->module_config('invoice');
|
||
|
|
||
|
if (empty($mc['TAX_ID_NAME']))
|
||
|
return empty($mc['TAX_ID']) ? '' : $mc['TAX_ID'];
|
||
|
else
|
||
|
return sprintf('%s: %s',$mc['TAX_ID_NAME'],empty($mc['TAX_ID']) ? '' : $mc['TAX_ID']);
|
||
|
}
|
||
|
|
||
|
public function time_format() {
|
||
|
return $this->so->time_format;
|
||
|
}
|
||
|
|
||
|
public static function bsb() {
|
||
|
// @todo Details should be obtained from DB
|
||
|
return Kohana::$config->load('config')->bsb;
|
||
|
}
|
||
|
|
||
|
public static function account() {
|
||
|
// @todo Details should be obtained from DB
|
||
|
return Kohana::$config->load('config')->accnum;
|
||
|
}
|
||
|
}
|
||
|
?>
|