65 lines
1.6 KiB
PHP
65 lines
1.6 KiB
PHP
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
|
|
/**
|
|
* This class provides User Invoice functions
|
|
*
|
|
* @package OSB
|
|
* @subpackage Invoice
|
|
* @category Controllers/User
|
|
* @author Deon George
|
|
* @copyright (c) 2010 Deon George
|
|
* @license http://dev.leenooks.net/license.html
|
|
*/
|
|
class Controller_User_Invoice extends Controller_TemplateDefault {
|
|
public $secure_actions = array(
|
|
'list'=>TRUE,
|
|
'view'=>FALSE,
|
|
);
|
|
|
|
/**
|
|
* Show a product
|
|
*/
|
|
public function action_list() {
|
|
$id = Auth::instance()->get_user()->id;
|
|
$ao = ORM::factory('account',$id);
|
|
|
|
if (! $ao->loaded())
|
|
throw new Kohana_Exception('Account doesnt exist :account ?',array(':account'=>$id));
|
|
|
|
Block::add(array(
|
|
'title'=>sprintf('%s: %s - %s',_('Invoices For'),$ao->accnum(),$ao->name(TRUE)),
|
|
'body'=>View::factory('invoice/list')
|
|
->set('invoices',$ao->invoice->find_all()),
|
|
));
|
|
|
|
$this->template->content = Block::factory();
|
|
}
|
|
|
|
/**
|
|
* View an Invoice
|
|
*/
|
|
public function action_view($id) {
|
|
$io = ORM::factory('invoice',$id);
|
|
|
|
if (! $io->loaded() OR ! Auth::instance()->authorised($io->account_id)) {
|
|
$this->template->content = 'Unauthorised or doesnt exist?';
|
|
return FALSE;
|
|
}
|
|
|
|
// @todo media path probably should be a config item
|
|
$this->template->content = View::factory('invoice/html')
|
|
->set('mediapath',Route::get('default/media'))
|
|
->set('invoice',$io);
|
|
}
|
|
|
|
/**
|
|
* Download an invoice
|
|
*/
|
|
public function action_download($id) {
|
|
$io = ORM::factory('invoice',$id);
|
|
|
|
return Invoice::instance()->pdf($io)->Output(sprintf('%s.pdf',$io->refnum()),'D');
|
|
}
|
|
}
|
|
?>
|