Fixes to OSB to work with KH 3.3
This commit is contained in:
73
modules/adsl/classes/Model/ADSL/Supplier.php
Normal file
73
modules/adsl/classes/Model/ADSL/Supplier.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?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 ORM_OSB {
|
||||
// Relationships
|
||||
protected $_has_many = array(
|
||||
'ADSL_supplier_plan'=>array('foreign_key'=>'supplier_id','far_key'=>'id'),
|
||||
);
|
||||
|
||||
protected $_updated_column = FALSE;
|
||||
|
||||
/**
|
||||
* Return a list of plans that this supplier makes available
|
||||
*/
|
||||
public function plans($active=TRUE) {
|
||||
$a = $this->ADSL_supplier_plan;
|
||||
|
||||
if ($active)
|
||||
$a->where_active();
|
||||
|
||||
return $a;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a list of plans that we provide by this supplier
|
||||
*/
|
||||
public function adsl_plans($active=TRUE) {
|
||||
$return = array();
|
||||
|
||||
foreach ($this->plans($active)->find_all() as $po)
|
||||
foreach ($po->ADSL_plan->find_all() as $apo)
|
||||
$return[$apo->id] = $apo;
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
$plans = array_keys($this->adsl_plans(FALSE));
|
||||
|
||||
// Start with all our ADSL Plans
|
||||
foreach (ORM::factory('Service')->list_bylistgroup('ADSL') as $so)
|
||||
if (! $active OR $so->status)
|
||||
if (in_array($so->product->prod_plugin_data,$plans) OR in_array($so->plugin()->provided_adsl_plan_id,$plans))
|
||||
array_push($services,$so);
|
||||
|
||||
// @todo poor cludge, we should find them without using list_bylistgroup()
|
||||
if (! $services)
|
||||
foreach (ORM::factory('Service')->list_bylistgroup('HSPA') as $so)
|
||||
if (! $active OR $so->status)
|
||||
if (in_array($so->product->prod_plugin_data,$plans) OR in_array($so->plugin()->provided_adsl_plan_id,$plans))
|
||||
array_push($services,$so);
|
||||
|
||||
return $services;
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user