TRUE, 'list'=>TRUE, 'view'=>TRUE, ); /** * Download an invoice */ public function action_download() { $io = ORM::factory('Invoice',$this->request->param('id')); if (! $io->loaded() OR ! Auth::instance()->authorised($io->account)) throw HTTP_Exception::factory(403,'Service either doesnt exist, or you are not authorised to see it'); // Log the download $imo = $io->invoice_memo; $imo->invoice_id = $io->id; $imo->account_id = $this->ao->id; $imo->type = 'download'; $imo->memo = 'Invoice Downloaded.'; $imo->save(); $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; } /** * Show a list of invoices */ public function action_list() { Block::factory() ->title(sprintf('Invoices for Account: %s',$this->ao->accnum())) ->title_icon('icon-th-list') ->body(Table::factory() ->jssort('invoices') ->data($this->ao->invoice->find_all()) ->columns(array( 'id'=>'ID', 'date_orig'=>'Date Issued', 'due_date'=>'Date Due', 'total(TRUE)'=>'Total', 'total_credits(TRUE)'=>'Credits', 'payments_total(TRUE)'=>'Payments', 'due(TRUE)'=>'Still Due', )) ->prepend(array( 'id'=>array('url'=>URL::link('user','invoice/view/')), )) ); } /** * View an Invoice */ public function action_view() { list($id,$output) = Table::page(__METHOD__); $io = ORM::factory('Invoice',$id); if (! $io->loaded() OR ! Auth::instance()->authorised($io->account)) throw HTTP_Exception::factory(403,'Service either doesnt exist, or you are not authorised to see it'); $output .= View::factory('invoice/user/view') ->set('o',$io); if ($io->due() AND ! $io->cart_exists()) $output .= View::factory('invoice/user/view/pay') ->set('mid',$io->mid()) ->set('o',$io); if (! $io->status) { Style::factory() ->type('file') ->data('media/css/pages/invoice.css'); $output .= '
Invoice CANCELLED.
'; } Block::factory() ->title(sprintf('%s: %s - %s',_('Invoice'),$io->refnum(),$io->account->name())) ->title_icon('icon-list-alt') ->body($output); $x = $io->invoice_memo->find_all(); if ($x->count()) Block::factory() ->title('Invoice Memos') ->title_icon('icon-list-alt') ->body(Table::factory() ->data($x) ->columns(array( 'id'=>'ID', 'date_orig'=>'Date', 'account->name()'=>'Account', 'memo'=>'Memo', ))); } } ?>