From 335e8e65bd03e886488d14fd1614a10e25e9cbf8 Mon Sep 17 00:00:00 2001 From: Deon George Date: Fri, 11 Oct 2013 15:02:56 +1100 Subject: [PATCH] Added Traffic Data matching --- .../adsl/classes/Controller/Admin/Adsl.php | 70 +++++++++++++++++++ modules/adsl/classes/Model/ADSL/Supplier.php | 1 + .../Model/Service/Plugin/Adsl/Traffic.php | 4 ++ 3 files changed, 75 insertions(+) create mode 100644 modules/adsl/classes/Controller/Admin/Adsl.php diff --git a/modules/adsl/classes/Controller/Admin/Adsl.php b/modules/adsl/classes/Controller/Admin/Adsl.php new file mode 100644 index 00000000..b294c8d9 --- /dev/null +++ b/modules/adsl/classes/Controller/Admin/Adsl.php @@ -0,0 +1,70 @@ +TRUE, + 'traffic'=>TRUE, + ); + + public function action_index() { + $output = ''; + + $output .= Form::open(URL::link('admin','adsl/traffic')); + $output .= Form::select('sid',ORM::factory('ADSL_Supplier')->list_select()); + $output .= Form::button('submit','Submit',array('class'=>'btn btn-primary')); + $output .= Form::close(); + + Block::factory() + ->title('Select ADSL Supplier') + ->title_icon('icon-share') + ->body($output); + } + + /** + * Reconcile billing for an ADSL supplier + */ + public function action_traffic() { + if (empty($_POST['sid'])) + HTTP::redirect(URL::link('admin','adsl/index')); + + $aso = ORM::factory('ADSL_Supplier',$_POST['sid']); + if (! $aso->loaded()) + HTTP::redirect(URL::link('admin','adsl/index')); + + $t = ORM::factory('Service_Plugin_Adsl_Traffic'); + $date = date('Y-m-d',time()-86400); + + Block::factory() + ->title(sprintf('ADSL Traffic for %s',$date)) + ->title_icon('icon-th-list') + ->body(Table::factory() + ->jssort('traffic') + ->data($aso->traffic->where('date','=',$date)->find_all()) + ->columns(array( + 'service'=>'Service Login', + 'plan->service->id'=>'Service', + 'plan->service_number'=>'Service', + 'plan->service->status(TRUE)'=>'Active', + 'up_peak'=>'Up Peak', + 'down_peak'=>'Down Peak', + 'up_offpeak'=>'Up OffPeak', + 'down_offpeak'=>'Down OffPeak', + 'peer'=>'Peer', + 'internal'=>'Internal', + )) + ->prepend(array( + 'plan->service->id'=>array('url'=>URL::link('user','service/view/')), + )) + ); + } +} +?> diff --git a/modules/adsl/classes/Model/ADSL/Supplier.php b/modules/adsl/classes/Model/ADSL/Supplier.php index 56ad5949..492183a0 100644 --- a/modules/adsl/classes/Model/ADSL/Supplier.php +++ b/modules/adsl/classes/Model/ADSL/Supplier.php @@ -15,6 +15,7 @@ class Model_ADSL_Supplier extends ORM_OSB { // Relationships protected $_has_many = array( 'adsl_supplier_plan'=>array('model'=>'ADSL_Supplier_Plan','foreign_key'=>'supplier_id','far_key'=>'id'), + 'traffic'=>array('model'=>'Service_Plugin_Adsl_Traffic','foreign_key'=>'supplier_id','far_key'=>'id'), ); protected $_form = array('id'=>'id','value'=>'name'); diff --git a/modules/adsl/classes/Model/Service/Plugin/Adsl/Traffic.php b/modules/adsl/classes/Model/Service/Plugin/Adsl/Traffic.php index bce0028b..906d0316 100644 --- a/modules/adsl/classes/Model/Service/Plugin/Adsl/Traffic.php +++ b/modules/adsl/classes/Model/Service/Plugin/Adsl/Traffic.php @@ -17,6 +17,10 @@ class Model_Service_Plugin_Adsl_Traffic extends ORM_OSB { protected $_created_column = FALSE; protected $_updated_column = FALSE; + protected $_has_one = array( + 'plan'=>array('model'=>'Service_Plugin_Adsl','foreign_key'=>'service_username','far_key'=>'service'), + ); + public function rules() { $result = parent::rules();