Improved User Welcome

This commit is contained in:
Deon George 2013-05-28 21:35:54 +10:00
parent ab895eab93
commit c970081cc1
9 changed files with 75 additions and 13 deletions

View File

@ -13,7 +13,7 @@ class Company {
// Our Company Setup object // Our Company Setup object
private $so; private $so;
public function __construct(Model_Setup $so) { protected function __construct(Model_Setup $so) {
$this->so = $so; $this->so = $so;
if (! $this->so->loaded()) if (! $this->so->loaded())

View File

@ -16,10 +16,60 @@ class Controller_User_Welcome extends Controller_Welcome {
); );
public function action_index() { public function action_index() {
Block::add(array( Block::factory()
'title'=>sprintf('%s: %s',$this->ao->accnum(),$this->ao->name(TRUE)), ->title(sprintf('Active Service for Account: %s',$this->ao->accnum()))
'body'=>View::factory('welcome/user'), ->title_icon('icon-info-sign')
)); ->span(6)
->body(Table::factory()
->data($this->ao->service->list_active())
->jssort('service')
->columns(array(
'id'=>'ID',
'service_name()'=>'Service',
))
->prepend(array(
'id'=>array('url'=>URL::link('user','service/view/')),
))
);
Block::factory()
->title('Quick Shortcuts')
->title_icon('icon-bookmark')
->span(6)
->body(View::factory('welcome/user/shortcuts'));
Block::factory()
->title(sprintf('Invoices Due Account: %s (%s)',$this->ao->accnum(),$this->ao->invoice->list_due_total(TRUE)))
->title_icon('icon-info-sign')
->span(6)
->body(Table::factory()
->data($this->ao->invoice->list_due())
->columns(array(
'id'=>'ID',
'due_date'=>'Date Due',
'total(TRUE)'=>'Invoice Total',
'due(TRUE)'=>'Amount Due',
))
->prepend(array(
'id'=>array('url'=>URL::link('user','invoice/view/')),
))
);
Block::factory()
->title(sprintf('Services Expiring for Account: %s',$this->ao->accnum()))
->title_icon('icon-info-sign')
->span(6)
->body(Table::factory()
->data($this->ao->service->list_expiring())
->columns(array(
'id'=>'ID',
'service_name()'=>'Service',
'expire(TRUE)'=>'Date',
))
->prepend(array(
'id'=>array('url'=>URL::link('user','service/view/')),
))
);
} }
} }
?> ?>

View File

@ -42,12 +42,11 @@ abstract class Kohana extends Kohana_Core {
'', '',
); );
foreach ($prefixes as $p) { foreach ($prefixes as $p)
if ($x = parent::find_file($dir,$p.$file,$ext,$array)) if ($x = parent::find_file($dir,$p.$file,$ext,$array))
return $x; break;
}
// We found a site path. // We found a path.
return $x; return $x;
} }

View File

@ -0,0 +1,4 @@
<div class="shortcuts">
<a href="<?php echo URL::link('user','invoice/list',TRUE); ?>" class="shortcut"><i class="shortcut-icon icon-list-alt"></i><span class="shortcut-label">Invoices</span></a>
<a href="<?php echo URL::link('user','service/list',TRUE); ?>" class="shortcut"><i class="shortcut-icon icon-list-alt"></i><span class="shortcut-label">Services</span></a>
</div>

View File

@ -4,7 +4,7 @@
* This class supports OSB exporting. * This class supports OSB exporting.
* *
* @package Export * @package Export
* @category Model * @category Models
* @author Deon George * @author Deon George
* @copyright (c) 2009-2013 Open Source Billing * @copyright (c) 2009-2013 Open Source Billing
* @license http://dev.osbill.net/license.html * @license http://dev.osbill.net/license.html

View File

@ -4,7 +4,7 @@
* This class supports OSB exporting. * This class supports OSB exporting.
* *
* @package Export * @package Export
* @category Model * @category Models
* @author Deon George * @author Deon George
* @copyright (c) 2009-2013 Open Source Billing * @copyright (c) 2009-2013 Open Source Billing
* @license http://dev.osbill.net/license.html * @license http://dev.osbill.net/license.html

View File

@ -4,7 +4,7 @@
* This class supports OSB exporting. * This class supports OSB exporting.
* *
* @package Export * @package Export
* @category Model * @category Models
* @author Deon George * @author Deon George
* @copyright (c) 2009-2013 Open Source Billing * @copyright (c) 2009-2013 Open Source Billing
* @license http://dev.osbill.net/license.html * @license http://dev.osbill.net/license.html

View File

@ -4,7 +4,7 @@
* This class supports OSB exporting. * This class supports OSB exporting.
* *
* @package Export * @package Export
* @category Model * @category Models
* @author Deon George * @author Deon George
* @copyright (c) 2009-2013 Open Source Billing * @copyright (c) 2009-2013 Open Source Billing
* @license http://dev.osbill.net/license.html * @license http://dev.osbill.net/license.html

View File

@ -620,6 +620,15 @@ class Model_Invoice extends ORM_OSB implements Cartable {
return $result; return $result;
} }
public function list_due_total($format=FALSE,$time=NULL) {
$result = 0;
foreach ($this->list_due($time) as $io)
$result += $io->due();
return $format ? Currency::display($result) : Currency::round($result);
}
/** /**
* Return a list of invoices that need to be sent. * Return a list of invoices that need to be sent.
* @todo This should be optimised a little to return only invoices to send, instead of looking for them. * @todo This should be optimised a little to return only invoices to send, instead of looking for them.