TRUE, 'listbycheckout'=>TRUE, 'listexpiring'=>TRUE, 'listinvoicesoon'=>TRUE, ); /** * Show a list of services */ public function action_list() { Block::factory() ->title('Customer Services') ->title_icon('icon-th-list') ->body(Table::factory() ->jssort('services') ->data(ORM::factory('Service')->where_authorised($this->ao)->find_all()) ->columns(array( 'id'=>'ID', 'service_name()'=>'Service', 'recur_schedule'=>'Billing', 'price(TRUE,TRUE)'=>'Price', 'status(TRUE)'=>'Active', 'account->accnum()'=>'Cust ID', 'account->name()'=>'Customer', )) ->prepend(array( 'id'=>array('url'=>URL::link('user','service/view/')), )) ); } /** * List all services by their default checkout method */ public function action_listbycheckout() { $svs = array(); // @todo This needs to be configurable $go = ORM::factory('Group',array('name'=>'Personal')); foreach (ORM::factory('Account')->where_active()->where_authorised($this->ao,'id')->find_all() as $ao) if ($ao->has_any('group',array($go))) foreach ($ao->service->list_active() as $so) if (! $so->service_billing->checkout_id) array_push($svs,$so); if ($svs) Block::factory() ->title('Services that should be auto-billed') ->title_icon('icon-pencil') ->body(Table::factory() ->jssort('services') ->data($svs) ->columns(array( 'id'=>'ID', 'service_name()'=>'Service', 'recur_schedule'=>'Billing', 'price(TRUE,TRUE)'=>'Price', 'account->accnum()'=>'Cust ID', 'account->name()'=>'Customer', 'date_next_invoice'=>'Next Invoice', 'due(TRUE)'=>'Due Invoices', )) ->prepend(array( 'id'=>array('url'=>URL::link('user','service/view/')), )) ); foreach (ORM::factory('Checkout')->find_all() as $co) { $svs = array(); foreach ($co->account->where('account.id','IN',$this->ao->RTM->customers($this->ao->RTM))->find_all() as $ao) foreach ($ao->service->list_active() as $so) if ($so->service_billing->checkout_id == $co->id) array_push($svs,$so); if ($svs) Block::factory() ->title($co->name) ->title_icon('icon-repeat') ->body(Table::factory() ->jssort($co->id) ->data($svs) ->columns(array( 'id'=>'ID', 'service_name()'=>'Service', 'recur_schedule'=>'Billing', 'price(TRUE,TRUE)'=>'Price', 'account->accnum()'=>'Cust ID', 'account->name()'=>'Customer', 'date_next_invoice'=>'Next Invoice', 'due(TRUE)'=>'Due Invoices', )) ->prepend(array( 'id'=>array('url'=>URL::link('user','service/view/')), )) ); } } /** * Show a list of expring services */ public function action_listexpiring() { Block::factory() ->title('Customer Services Expiring') ->title_icon('icon-th-list') ->body(Table::factory() ->jssort('services') ->data(ORM::factory('Service')->where_authorised($this->ao)->list_expiring()) ->columns(array( 'id'=>'ID', 'expire(TRUE)'=>'Expiry', 'service_name()'=>'Service', 'recur_schedule'=>'Billing', 'price(TRUE,TRUE)'=>'Price', 'account->accnum()'=>'Cust ID', 'account->name()'=>'Customer', )) ->prepend(array( 'id'=>array('url'=>URL::link('user','service/view/')), )) ); } /** * Show a list of expring services */ public function action_listinvoicesoon() { Block::factory() ->title('Customer Services soon to be Invoiced') ->title_icon('icon-th-list') ->body(Table::factory() ->jssort('services') ->data(ORM::factory('Service')->where_authorised($this->ao)->list_invoicesoon(ORM::factory('Invoice')->config('GEN_SOON_DAYS')+30)) ->columns(array( 'id'=>'ID', 'expire(TRUE)'=>'Expiry', 'service_name()'=>'Service', 'recur_schedule'=>'Billing', 'price(TRUE,TRUE)'=>'Price', 'charges(TRUE,TRUE)'=>'Charges', 'account->accnum()'=>'Cust ID', 'account->name()'=>'Customer', 'date_next_invoice'=>'Next Invoice', )) ->prepend(array( 'id'=>array('url'=>URL::link('user','service/view/')), )) ); } } ?>