Work on HTML invoice and internal logic

This commit is contained in:
Deon George
2012-01-09 12:35:24 +11:00
parent a464d73f9a
commit f0c1f8800e
12 changed files with 431 additions and 115 deletions

View File

@@ -24,6 +24,7 @@ class Controller_Admin_Service extends Controller_TemplateDefault_Admin {
'listwebservices'=>TRUE,
'listinvoicesoon'=>TRUE,
'update'=>TRUE,
'view'=>TRUE,
);
public function action_autolist() {
@@ -591,5 +592,35 @@ class Controller_Admin_Service extends Controller_TemplateDefault_Admin {
'data'=>'css/dhtml.calendar.css',
));
}
public function action_view() {
list($id,$output) = Table::page(__METHOD__);
$so = ORM::factory('service',$id);
if (! $so->loaded() OR ! Auth::instance()->authorised($so->account_id,$so->affiliate_id)) {
$this->template->content = 'Unauthorised or doesnt exist?';
return FALSE;
}
$loutput = '';
$loutput .= View::factory($this->viewpath())
->set('so',$so);
Block::add(array(
'title'=>sprintf('Transaction History for %s: %s',$so->id(),$so->name()),
'body'=>$loutput,
));
$output .= View::factory('service/user/view')
->set('so',$so);
Block::add(array(
'title'=>sprintf('%s: %s',$so->id(),$so->service_name()),
'body'=>$output,
));
}
}
?>

View File

@@ -20,6 +20,7 @@ class Model_Service extends ORMOSB {
'service_billing'=>array('far_key'=>'account_billing_id','foreign_key'=>'id'),
);
protected $_has_many = array(
'invoice_item'=>array('far_key'=>'id'),
'invoice'=>array('through'=>'invoice_item'),
);
protected $_belongs_to = array(
@@ -118,6 +119,10 @@ class Model_Service extends ORMOSB {
return $plugin->admin_update();
}
public function transactions() {
return $this->invoice_item->order_by('date_start,date_stop')->find_all();
}
/** LIST FUNCTIONS **/
private function _list_active() {

View File

@@ -0,0 +1,41 @@
<!-- @todo NEEDS TO BE TRANSLATED -->
<table class="box-left" width="100%">
<tr>
<td class="head" colspan="2">Transactions for this service</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>ID</td>
<td>Invoice</td>
<td>Product</td>
<td>IT</td>
<td>RS</td>
<td>Start</td>
<td>Stop</td>
<td>Desc</td>
<td>Charge</td>
<td>Quantity</td>
</tr>
<?php $lp=NULL;$i=0; foreach ($so->transactions() as $iio) { ?>
<?php if (! is_null($iio->product_id) AND $lp != $iio->product_id) {
$lp = $iio->product_id; ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head" colspan="10"><?php echo sprintf('%s: %s',$iio->product_id,$iio->product->name()); ?></td>
</tr>
<?php } ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="icon" width="20px"><?php echo $iio->id; ?></td>
<td class="data"><?php echo HTML::anchor('/user/invoice/view/'.$iio->invoice_id,$iio->invoice_id); ?></td>
<td class="data"><?php echo $iio->display('product_id'); ?></td>
<td class="data"><?php echo $iio->display('item_type'); ?></td>
<td class="data"><?php echo $iio->display('recurring_schedule'); ?></td>
<td class="data"><?php echo $iio->display('date_start'); ?></td>
<td class="data"><?php echo $iio->display('date_stop'); ?></td>
<td class="data"><?php echo $iio->display('product_name'); ?></td>
<td class="data"><?php echo $iio->display('price_base'); ?></td>
<td class="data"><?php echo $iio->display('quantity'); ?></td>
</tr>
<?php } ?>
</table>