TRUE, 'list'=>TRUE, 'view'=>TRUE, ); /** * Show a list of invoices */ public function action_list() { Block::add(array( 'title'=>sprintf('%s: %s - %s',_('Invoices For'),$this->ao->accnum(),$this->ao->name(TRUE)), 'body'=>Table::display( $this->ao->invoice->find_all(), 25, array( 'id'=>array('label'=>'ID','url'=>'user/invoice/view/'), 'date_orig'=>array('label'=>'Date'), 'total_amt'=>array('label'=>'Total','class'=>'right'), 'credit_amt'=>array('label'=>'Credits','class'=>'right'), 'billed_amt'=>array('label'=>'Payments','class'=>'right'), 'due(TRUE)'=>array('label'=>'Still Due','class'=>'right'), ), array( 'page'=>TRUE, 'type'=>'select', 'form'=>'user/invoice/view', )), )); } /** * View an Invoice */ public function action_view() { $output = ''; if (! $id = $this->request->param('id')) { if (isset($_POST['id']) AND is_array($_POST['id'])) Table::post('invoice_view','id'); list($id,$output) = Table::page('invoice_view'); } else { $id = $this->request->param('id'); } $io = ORM::factory('invoice',$id); if (! $io->loaded() OR (! Auth::instance()->authorised($io->account_id,$io->affiliate_id) AND ! in_array($this->ao->affiliate->id,$io->service_affiliates()))) { $this->template->content = 'Unauthorised or doesnt exist?'; return FALSE; } $output .= View::factory('invoice/user/view') ->set('mediapath',Route::get('default/media')) ->set('io',$io); Block::add(array( 'title'=>sprintf('%s: %s',_('Invoice'),$io->refnum()), 'body'=>$output, )); } /** * Download an invoice */ public function action_download($id) { $io = ORM::factory('invoice',$id); $this->response->body(Invoice::instance($io)->pdf()->Output(sprintf('%s.pdf',$io->refnum()),'D')); $this->response->headers(array('Content-Type' => 'application/pdf')); $this->auto_render = FALSE; } } ?>