array('model'=>'ADSL_Supplier_Plan','foreign_key'=>'supplier_id','far_key'=>'id'), ); protected $_form = array('id'=>'id','value'=>'name'); /** * Return a list of plans that we provide by this supplier * @deprecated */ public function plans($active=TRUE) { $result = array(); foreach ($this->find_plans($active)->find_all() as $po) foreach ($po->adsl_plan->find_all() as $apo) $result[$apo->id] = $apo; return $result; } /** * Return the class that takes care of processing invoices */ public function billing() { $b = Kohana::classname('ADSL_Billing_'.$this->name); if (! class_exists($b)) throw HTTP_Exception::factory(501,'Billing class doesnt exist for :name',array(':name'=>$this->name)); return new $b; } /** * Return a list of plans that this supplier makes available */ public function find_plans($active=TRUE) { return $active ? $this->adsl_supplier_plan->where_active() : $this->adsl_supplier_plan; } /** * 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) { $result = array(); foreach ($this->find_plans(FALSE)->find_all() as $aspo) { foreach ($aspo->adsl_plan->find_all() as $apo) { foreach ($apo->products(FALSE)->find_all() as $po) { foreach ($po->services($active)->find_all() as $so) { array_push($result,$so); } } } } return $result; } } ?>