OSB enhancements to date
This commit is contained in:
59
modules/adsl/classes/model/adsl/plan.php
Normal file
59
modules/adsl/classes/model/adsl/plan.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class supports ADSL Plans
|
||||
*
|
||||
* @package OSB
|
||||
* @subpackage ADSL
|
||||
* @category Models
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 Open Source Billing
|
||||
* @license http://dev.osbill.net/license.html
|
||||
*/
|
||||
class Model_ADSL_Plan extends ORMOSB {
|
||||
// Relationships
|
||||
protected $_belongs_to = array(
|
||||
'adsl_supplier_plan'=>array(),
|
||||
);
|
||||
protected $_has_many = array(
|
||||
'service'=>array('through'=>'service__adsl'),
|
||||
);
|
||||
|
||||
protected $_formats = array(
|
||||
'extra_down_peak'=>array(
|
||||
'Tax::add'=>array(),
|
||||
'Currency::display'=>array(),
|
||||
),
|
||||
'extra_down_offpeak'=>array(
|
||||
'Tax::add'=>array(),
|
||||
'Currency::display'=>array(),
|
||||
),
|
||||
'extra_up_peak'=>array(
|
||||
'Tax::add'=>array(),
|
||||
'Currency::display'=>array(),
|
||||
),
|
||||
'extra_up_offpeak'=>array(
|
||||
'Tax::add'=>array(),
|
||||
'Currency::display'=>array(),
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* Show the ADSL allowance as a peak/offpeak metric
|
||||
*/
|
||||
public function allowance($string=TRUE) {
|
||||
$output = ADSL::allowance(array(
|
||||
'base_down_peak'=>$this->base_down_peak,
|
||||
'base_down_offpeak'=>$this->base_down_offpeak,
|
||||
'base_up_peak'=>$this->base_up_peak,
|
||||
'base_up_offpeak'=>$this->base_up_offpeak,
|
||||
'extra_down_peak'=>$this->extra_down_peak,
|
||||
'extra_down_offpeak'=>$this->extra_down_offpeak,
|
||||
'extra_up_peak'=>$this->extra_up_peak,
|
||||
'extra_up_offpeak'=>$this->extra_up_offpeak,
|
||||
));
|
||||
|
||||
return $string ? implode('/',$output) : $output;
|
||||
}
|
||||
}
|
||||
?>
|
40
modules/adsl/classes/model/adsl/supplier.php
Normal file
40
modules/adsl/classes/model/adsl/supplier.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class supports ADSL Suppliers
|
||||
*
|
||||
* @package OSB
|
||||
* @subpackage ADSL
|
||||
* @category Models
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 Open Source Billing
|
||||
* @license http://dev.osbill.net/license.html
|
||||
*/
|
||||
class Model_ADSL_Supplier extends ORMOSB {
|
||||
// Relationships
|
||||
protected $_has_many = array(
|
||||
'adsl_supplier_plan'=>array('foreign_key'=>'supplier_id'),
|
||||
);
|
||||
|
||||
protected $_updated_column = FALSE;
|
||||
|
||||
/**
|
||||
* Return a list of services for this supplier
|
||||
*
|
||||
* @param boolean $active TRUE List only active Services|False List all services
|
||||
*/
|
||||
public function services($active=TRUE) {
|
||||
$services = array();
|
||||
|
||||
// Get a list of plans made for this supplier
|
||||
foreach ($this->adsl_supplier_plan->find_all() as $aspo)
|
||||
// Find all the plan who use this supplier plan
|
||||
foreach ($aspo->adsl_plan->find_all() as $apo)
|
||||
// Find all the services who use this plan
|
||||
foreach ($apo->service->find_all() as $so)
|
||||
array_push($services,$so);
|
||||
|
||||
return $services;
|
||||
}
|
||||
}
|
||||
?>
|
39
modules/adsl/classes/model/adsl/supplier/plan.php
Normal file
39
modules/adsl/classes/model/adsl/supplier/plan.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class supports ADSL Plans
|
||||
*
|
||||
* @package OSB
|
||||
* @subpackage ADSL
|
||||
* @category Models
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 Open Source Billing
|
||||
* @license http://dev.osbill.net/license.html
|
||||
*/
|
||||
class Model_ADSL_Supplier_Plan extends ORMOSB {
|
||||
// Relationships
|
||||
protected $_has_many = array(
|
||||
'adsl_plan'=>array(),
|
||||
);
|
||||
protected $_belongs_to = array(
|
||||
'adsl_supplier'=>array('foreign_key'=>'supplier_id'),
|
||||
);
|
||||
|
||||
/**
|
||||
* Show the ADSL allowance as a peak/offpeak metric
|
||||
*/
|
||||
public function allowance() {
|
||||
return sprintf('%s/%s',$this->base_down_peak+$this->base_up_peak,$this->base_down_offpeak+$this->base_up_offpeak);
|
||||
}
|
||||
|
||||
public function tax() {
|
||||
// @todo This should be taken from the users session
|
||||
// @todo rounding should be a system default
|
||||
return round($this->base_cost*.1,2);
|
||||
}
|
||||
|
||||
public function name() {
|
||||
return $this->product_id;
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user