Added preliminary support for units. The queries are giving me a heck of a time, so I've cheated in some places. For the most part though, it's working. Also, something went wrong with svn, and view/contacts/view.ctp was not right (a checkin seems to have been omitted on it). This checking brings it up to date.
git-svn-id: file:///svn-source/pmgr/branches/initial_20090526@28 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
123
site/controllers/units_controller.php
Normal file
123
site/controllers/units_controller.php
Normal file
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
class UnitsController extends AppController {
|
||||
var $helpers = array('Html');
|
||||
|
||||
var $paginate = array('limit' => 100,
|
||||
'order' => array('Unit.sort_order' => 'ASC'));
|
||||
|
||||
function index() {
|
||||
$this->all();
|
||||
}
|
||||
|
||||
function vacant() {
|
||||
$this->Unit->recursive = 0;
|
||||
$this->Unit->bindModel(array('hasOne' => array('UnitsLease',
|
||||
'Lease' => array(
|
||||
'foreignKey' => false,
|
||||
'conditions' => array('Lease.id = UnitsLease.lease_id')
|
||||
))),
|
||||
false);
|
||||
|
||||
$this->set('units', $this->paginate(array('Lease.close_date IS NULL',
|
||||
'UnitsLease.type != "ALTERNATE"')));
|
||||
$this->render('index');
|
||||
}
|
||||
|
||||
function occupied() {
|
||||
$this->Unit->recursive = 0;
|
||||
$this->Unit->bindModel(array('hasOne' => array('UnitsLease',
|
||||
'Lease' => array(
|
||||
'foreignKey' => false,
|
||||
'conditions' => array('Lease.id = UnitsLease.lease_id')
|
||||
))),
|
||||
false);
|
||||
|
||||
$this->set('units', $this->paginate(array('Lease.close_date IS NULL',
|
||||
'UnitsLease.type != "ALTERNATE"')));
|
||||
$this->render('index');
|
||||
}
|
||||
|
||||
function all() {
|
||||
$this->Unit->recursive = 2;
|
||||
/* $this->Unit->UnitSize->unbindModel(array('hasMany' => array('Unit'))); */
|
||||
/* $this->Unit->UnitSize->UnitType->unbindModel(array('hasMany' => array('UnitSize'))); */
|
||||
//$this->Unit->bindModel(array('hasOne' => array('UnitType')));
|
||||
//function paginate($conditions, $fields, $order, $limit, $page = 1, $recursive = null) {
|
||||
$this->set('units', $this->paginate(null, null, null, null, null, 2));
|
||||
$this->render('index');
|
||||
}
|
||||
|
||||
function view($id = null) {
|
||||
if (!$id) {
|
||||
$this->Session->setFlash(__('Invalid Item.', true));
|
||||
$this->redirect(array('action'=>''));
|
||||
}
|
||||
$this->Unit->recursive = 4;
|
||||
$this->Unit->UnitSize->unbindModel(array('hasMany' => array('Unit')));
|
||||
$this->Unit->UnitSize->UnitType->unbindModel(array('hasMany' => array('UnitSize')));
|
||||
$this->Unit->Lease->unbindModel(array('belongsTo' => array('Unit')));
|
||||
$this->Unit->Lease->LeaseType->unbindModel(array('hasMany' => array('Lease')));
|
||||
$this->Unit->Lease->Charge->unbindModel(array('belongsTo' => array('Lease')));
|
||||
$this->Unit->Lease->Charge->ChargeType->unbindModel(array('hasMany' => array('Charge')));
|
||||
$this->Unit->Lease->Charge->Receipt->unbindModel(array('hasMany' => array('ChargesReceipt')));
|
||||
|
||||
/* //$this->Unit->Lease->unbindModel(array('hasMany' => array('Contact'))); */
|
||||
/* $this->Unit->Lease->unbindModel(array('hasAndBelongsToMany' => array('Contact'))); */
|
||||
/* //$this->Unit->Lease->unbindModel(array('hasOne' => array('Contact'))); */
|
||||
/* //$this->Unit->Lease->unbindModel(array('belongsTo' => array('Contact'))); */
|
||||
/* //$this->Unit->Lease->bindModel(array('hasOne' => array('ContactsLease'))); */
|
||||
/* //$this->Unit->Lease->bindModel(array('hasOne' => array('Contact'))); */
|
||||
/* /\* $this->Unit->Lease->bindModel(array('hasOne' => array('ContactsLease', *\/ */
|
||||
/* /\* 'Contact' => array( *\/ */
|
||||
/* /\* 'foreignKey' => false, *\/ */
|
||||
/* /\* 'conditions' => *\/ */
|
||||
/* /\* array('Contact.id = ContactsLease.contact_id', *\/ */
|
||||
/* /\* //'ContactsLease.type = "TENANT"' *\/ */
|
||||
/* /\* ))))); *\/ */
|
||||
|
||||
/* $this->Unit->bindModel(array('hasOne' => array('Lease' => array( */
|
||||
/* 'foreignKey' => false, */
|
||||
/* 'conditions' => array('Lease.unit_id = Unit.id') */
|
||||
/* ), */
|
||||
/* 'ContactsLease' => array( */
|
||||
/* 'foreignKey' => false, */
|
||||
/* 'conditions' => array('ContactsLease.lease_id = Lease.id') */
|
||||
/* ), */
|
||||
/* 'Contact' => array( */
|
||||
/* 'foreignKey' => false, */
|
||||
/* 'conditions' => array('Contact.id = ContactsLease.contact_id') */
|
||||
/* ))), */
|
||||
/* false); */
|
||||
|
||||
|
||||
/* $this->Unit->Lease->bindModel(array('hasOne' => array('Contact' => array( */
|
||||
/* 'className' => 'ContactsLease', */
|
||||
/* 'foreignKey' => false, */
|
||||
/* 'conditions' => */
|
||||
/* array('ContactsLease.lease_id = Lease.id', */
|
||||
/* 'ContactsLease.type = "TENANT"'))))); */
|
||||
|
||||
/* # 'hasOne' => array( */
|
||||
/* # 'RecipesTag', */
|
||||
/* # 'FilterTag' => array( */
|
||||
/* # 'className' => 'Tag', */
|
||||
/* # 'foreignKey' => false, */
|
||||
/* # 'conditions' => array('FilterTag.id = RecipesTag.tag_id') */
|
||||
/* # )))); */
|
||||
|
||||
$this->set('unit', $this->Unit->read(null, $id));
|
||||
/* $this->Unit->id = $id; */
|
||||
/* if ($id !== null && $id !== false) { */
|
||||
/* $this->Unit->data = $this->Unit->find('first', */
|
||||
/* array('conditions' => array( */
|
||||
/* $this->Unit->alias . '.' . $this->Unit->primaryKey => $id, */
|
||||
/* 'ContactsLease.type = "TENANT"' */
|
||||
/* ) */
|
||||
/* )); */
|
||||
/* $this->set('unit', $this->Unit->data); */
|
||||
/* } */
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -13,7 +13,6 @@ class UnitSize extends AppModel {
|
||||
'amount' => array('money')
|
||||
);
|
||||
|
||||
//The Associations below have been created with all possible keys, those that are not needed can be removed
|
||||
var $belongsTo = array(
|
||||
'UnitType' => array(
|
||||
'className' => 'UnitType',
|
||||
|
||||
@@ -8,7 +8,6 @@ class UnitType extends AppModel {
|
||||
'name' => array('notempty')
|
||||
);
|
||||
|
||||
//The Associations below have been created with all possible keys, those that are not needed can be removed
|
||||
var $hasMany = array(
|
||||
'UnitSize' => array(
|
||||
'className' => 'UnitSize',
|
||||
|
||||
@@ -6,22 +6,145 @@
|
||||
<?php
|
||||
|
||||
function currency($number) {
|
||||
if ($number < 0) {
|
||||
if ($number < 0)
|
||||
return "($ " . number_format(-1*$number, 2) . ")";
|
||||
} else {
|
||||
else
|
||||
return "$ " . number_format($number, 2);
|
||||
}
|
||||
}
|
||||
|
||||
$rows = array();
|
||||
foreach($tenant['Contact'] AS $col => $val) {
|
||||
$rows[] = array(array($col, 'width=1%'), $val);
|
||||
function phone($phone) {
|
||||
$phone = preg_replace("/\D/", "", $phone);
|
||||
if(strlen($phone) == 7)
|
||||
return preg_replace("/(\d{3})(\d{4})/", "$1-$2", $phone);
|
||||
elseif(strlen($phone) == 10)
|
||||
return preg_replace("/(\d{3})(\d{3})(\d{4})/", "$1-$2-$3", $phone);
|
||||
else
|
||||
return $phone;
|
||||
}
|
||||
|
||||
function datefmt($date) {
|
||||
$date_fmt = 'm/d/Y';
|
||||
return ($date
|
||||
? date_format(date_create($date), $date_fmt)
|
||||
: null);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* Tenant Info
|
||||
*/
|
||||
echo('<table cellpadding="0" cellspacing="0">' . "\n");
|
||||
echo(' <CAPTION>Tenant Info</CAPTION>' . "\n");
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"));
|
||||
echo $html->tableCells(array(array('Name', $tenant['Contact']['display_name']),
|
||||
array('Company', $tenant['Contact']['company_name']),
|
||||
array('SSN', $tenant['Contact']['id_federal']),
|
||||
array('ID', $tenant['Contact']['id_num']
|
||||
. ($tenant['Contact']['id_state']
|
||||
? " - ".$tenant['Contact']['id_state']
|
||||
: "")),
|
||||
array('Comment', $tenant['Contact']['comment'])),
|
||||
null, array('class' => "altrow"), false, false);
|
||||
echo('</table>' . "\n");
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Phones
|
||||
*/
|
||||
$headers = array('Location', 'Preference', 'Type', 'Phone', 'Extension', 'Comment');
|
||||
$rows = array();
|
||||
foreach($tenant['ContactPhone'] AS $phone) {
|
||||
$rows[] = array($phone['ContactsMethod']['type'],
|
||||
$phone['ContactsMethod']['preference'],
|
||||
$phone['type'],
|
||||
phone($phone['phone']),
|
||||
$phone['ext'],
|
||||
$phone['comment']);
|
||||
}
|
||||
|
||||
if (count($rows)) {
|
||||
echo('<table cellpadding="0" cellspacing="0">' . "\n");
|
||||
echo(' <CAPTION>Phone</CAPTION>' . "\n");
|
||||
echo $html->tableHeaders($headers);
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"), false, false);
|
||||
echo('</table>' . "\n");
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Emails
|
||||
*/
|
||||
$headers = array('Location', 'Preference', 'Email', 'Comment');
|
||||
$rows = array();
|
||||
foreach($tenant['ContactEmail'] AS $email) {
|
||||
$rows[] = array($email['ContactsMethod']['type'],
|
||||
$email['ContactsMethod']['preference'],
|
||||
$email['email'],
|
||||
$email['comment']);
|
||||
}
|
||||
|
||||
if (count($rows)) {
|
||||
echo('<table cellpadding="0" cellspacing="0">' . "\n");
|
||||
echo(' <CAPTION>Email</CAPTION>' . "\n");
|
||||
echo $html->tableHeaders($headers);
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"), false, false);
|
||||
echo('</table>' . "\n");
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Addresses
|
||||
*/
|
||||
$headers = array('Location', 'Preference', 'Address', 'City', 'State', 'Zip', 'Country', 'Comment');
|
||||
$rows = array();
|
||||
foreach($tenant['ContactAddress'] AS $address) {
|
||||
$rows[] = array($address['ContactsMethod']['type'],
|
||||
$address['ContactsMethod']['preference'],
|
||||
$address['address'],
|
||||
$address['city'],
|
||||
$address['state'],
|
||||
$address['postcode'],
|
||||
$address['country'],
|
||||
$address['comment']);
|
||||
}
|
||||
|
||||
if (count($rows)) {
|
||||
echo('<table cellpadding="0" cellspacing="0">' . "\n");
|
||||
echo(' <CAPTION>Address</CAPTION>' . "\n");
|
||||
echo $html->tableHeaders($headers);
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"), false, false);
|
||||
echo('</table>' . "\n");
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Lease History
|
||||
*/
|
||||
$headers = array('Lease', 'Unit', 'Signed', 'Move-In', 'Move-Out', 'Rent', 'Deposit', 'Comment');
|
||||
$rows = array();
|
||||
foreach($tenant['Lease'] AS $lease) {
|
||||
$rows[] = array('#'.$lease['id'],
|
||||
$html->link($lease['Unit']['name'],
|
||||
array('controller' => 'units',
|
||||
'action' => 'view',
|
||||
$lease['Unit']['id'])),
|
||||
datefmt($lease['lease_date']),
|
||||
datefmt($lease['movein_date']),
|
||||
datefmt($lease['moveout_date']),
|
||||
$lease['amount'],
|
||||
$lease['deposit'],
|
||||
$lease['comment']);
|
||||
}
|
||||
|
||||
echo('<table cellpadding="0" cellspacing="0">' . "\n");
|
||||
echo(' <CAPTION>Lease History</CAPTION>' . "\n");
|
||||
echo $html->tableHeaders($headers);
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"), false, false);
|
||||
echo('</table>' . "\n");
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Ledger History
|
||||
*/
|
||||
$security_deposit = 0;
|
||||
$grand_total = 0;
|
||||
foreach($tenant['Lease'] AS $lease) {
|
||||
$headers = array('Date', /*'Through',*/ /*'Charge/Receipt'*/'ID', 'Type', 'Comment', 'Amount', 'Total');
|
||||
@@ -31,8 +154,7 @@ foreach($tenant['Lease'] AS $lease) {
|
||||
foreach($lease['Charge'] AS $charge) {
|
||||
$amount = $charge['total'];
|
||||
$running_total += $amount;
|
||||
$rows[] = array(date_format(date_create($charge['charge_date']), 'm-d-Y') . ' - ' .
|
||||
date_format(date_create($charge['charge_to_date']), 'm-d-Y'),
|
||||
$rows[] = array(datefmt($charge['charge_date']) .' - '. datefmt($charge['charge_to_date']),
|
||||
'#'.$charge['id'],
|
||||
$charge['ChargeType']['name'],
|
||||
$charge['comment'],
|
||||
@@ -42,10 +164,13 @@ foreach($tenant['Lease'] AS $lease) {
|
||||
foreach ($charge['Receipt'] AS $receipt) {
|
||||
$amount = -1 * $receipt['ChargesReceipt']['amount'];
|
||||
$running_total += $amount;
|
||||
$rows[] = array(' -- ' .date_format(date_create($receipt['stamp']), 'm-d-Y'),
|
||||
//null,
|
||||
// REVISIT <AP> 20090527:
|
||||
// Using hardcoded value for security deposit... can't be good!
|
||||
if ($charge['charge_type_id'] == 1)
|
||||
$security_deposit += $receipt['ChargesReceipt']['amount'];
|
||||
$rows[] = array(' -- ' . datefmt($receipt['stamp']),
|
||||
'#'.$receipt['id'],
|
||||
'Receipt',
|
||||
'Payment/Receipt',
|
||||
$receipt['comment'],
|
||||
currency($amount),
|
||||
currency($running_total));
|
||||
@@ -54,13 +179,14 @@ foreach($tenant['Lease'] AS $lease) {
|
||||
$grand_total += $running_total;
|
||||
|
||||
echo('<table cellpadding="0" cellspacing="0">' . "\n");
|
||||
echo(' <CAPTION>Lease #'.$lease['number'].' (Unit '.$lease['Unit']['name'].')</CAPTION>' . "\n");
|
||||
echo(' <CAPTION>Lease #'.$lease['number'].' ('.$lease['Unit']['name'].')</CAPTION>' . "\n");
|
||||
echo $html->tableHeaders($headers);
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"));
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"), false, false);
|
||||
echo('</table>' . "\n");
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
<DIV ALIGN=RIGHT><H3>Grand Total: <?php echo currency($grand_total); ?></H3></DIV>
|
||||
<DIV ALIGN=RIGHT><H3>Total Security Deposit: <?php echo currency($security_deposit); ?></H3></DIV>
|
||||
<DIV ALIGN=RIGHT><H3>Outstanding Balance: <?php echo currency($grand_total); ?></H3></DIV>
|
||||
</div>
|
||||
|
||||
59
site/views/elements/units.ctp
Normal file
59
site/views/elements/units.ctp
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php /* -*- mode:PHP -*- */ ?>
|
||||
|
||||
<p>
|
||||
<?php
|
||||
if (isset($heading))
|
||||
echo $heading;
|
||||
else
|
||||
echo '<h2>'.__('Units',true).'</h2>';
|
||||
?>
|
||||
</p>
|
||||
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
|
||||
<?php
|
||||
{
|
||||
if (isset($paginator)) {
|
||||
echo $paginator->counter(array(
|
||||
'format' => __('Page %page% of %pages%, showing %current% records (%start% - %end%) of %count% total', true)));
|
||||
|
||||
$rows = array($paginator->sort('id'),
|
||||
$paginator->sort('name'),
|
||||
$paginator->sort('unit_size_id'),
|
||||
$paginator->sort('status'),
|
||||
$paginator->sort('comment'));
|
||||
} else {
|
||||
$rows = array('Id', 'Name', 'Size', 'Status', 'Comment');
|
||||
}
|
||||
echo $html->tableHeaders($rows);
|
||||
|
||||
$rows = array();
|
||||
foreach ($units as $unit) {
|
||||
$rows[] = array($html->link($unit['Unit']['id'],
|
||||
array('controller' => 'units',
|
||||
'action' => 'view',
|
||||
$unit['Unit']['id'])),
|
||||
$html->link($unit['Unit']['name'],
|
||||
array('controller' => 'units',
|
||||
'action' => 'view',
|
||||
$unit['Unit']['id'])),
|
||||
$unit['UnitSize']['name'],
|
||||
$unit['Unit']['status'],
|
||||
$unit['Unit']['comment']);
|
||||
}
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"), false, false);
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
|
||||
<?php
|
||||
if (isset($paginator)) {
|
||||
echo('<div class="paging">' . "\n");
|
||||
echo $paginator->prev('<< '.__('previous', true), array(), null, array('class'=>'disabled'));
|
||||
echo(' | ');
|
||||
echo $paginator->numbers();
|
||||
echo(' | ');
|
||||
echo $paginator->next(__('next', true).' >>', array(), null, array('class'=>'disabled'));
|
||||
echo('</div>' . "\n");
|
||||
}
|
||||
?>
|
||||
3
site/views/units/index.ctp
Normal file
3
site/views/units/index.ctp
Normal file
@@ -0,0 +1,3 @@
|
||||
<div class="units index">
|
||||
<?php echo $this->element('units') ?>
|
||||
</div>
|
||||
113
site/views/units/view.ctp
Normal file
113
site/views/units/view.ctp
Normal file
@@ -0,0 +1,113 @@
|
||||
<?php /* -*- mode:PHP -*- */ ?>
|
||||
|
||||
<div class="units view">
|
||||
<h2><?php __('Unit'); ?></h2>
|
||||
|
||||
<?php
|
||||
|
||||
function currency($number) {
|
||||
if ($number < 0)
|
||||
return "($ " . number_format(-1*$number, 2) . ")";
|
||||
else
|
||||
return "$ " . number_format($number, 2);
|
||||
}
|
||||
|
||||
function datefmt($date) {
|
||||
$date_fmt = 'm/d/Y';
|
||||
return ($date
|
||||
? date_format(date_create($date), $date_fmt)
|
||||
: null);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* Unit Info
|
||||
*/
|
||||
$rows = array();
|
||||
foreach($unit['Unit'] AS $col => $val) {
|
||||
$rows[] = array(array($col, 'width=1%'), $val);
|
||||
}
|
||||
|
||||
echo('<table cellpadding="0" cellspacing="0">' . "\n");
|
||||
echo(' <CAPTION>Unit Info</CAPTION>' . "\n");
|
||||
echo $html->tableCells(array(array('Name', $unit['Unit']['name']),
|
||||
array('Status', $unit['Unit']['status']),
|
||||
array('Comment', $unit['Unit']['comment'])),
|
||||
null, array('class' => "altrow"), false, false);
|
||||
echo('</table>' . "\n");
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Lease History
|
||||
*/
|
||||
$headers = array('Lease', 'Tenant', 'Signed', 'Move-In', 'Move-Out', 'Rent', 'Deposit', 'Comment');
|
||||
$rows = array();
|
||||
foreach($unit['Lease'] AS $lease) {
|
||||
$rows[] = array('#'.$lease['id'],
|
||||
$html->link($lease['Contact'][0]['display_name'],
|
||||
array('controller' => 'contacts',
|
||||
'action' => 'view',
|
||||
$lease['Contact'][0]['id'])),
|
||||
datefmt($lease['lease_date']),
|
||||
datefmt($lease['movein_date']),
|
||||
datefmt($lease['moveout_date']),
|
||||
$lease['amount'],
|
||||
$lease['deposit'],
|
||||
$lease['comment']);
|
||||
}
|
||||
|
||||
echo('<table cellpadding="0" cellspacing="0">' . "\n");
|
||||
echo(' <CAPTION>Lease History</CAPTION>' . "\n");
|
||||
echo $html->tableHeaders($headers);
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"), false, false);
|
||||
echo('</table>' . "\n");
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Ledger History
|
||||
*/
|
||||
$security_deposit = 0;
|
||||
$grand_total = 0;
|
||||
foreach($unit['Lease'] AS $lease) {
|
||||
$headers = array('Date', /*'Through',*/ /*'Charge/Receipt'*/'ID', 'Type', 'Comment', 'Amount', 'Total');
|
||||
|
||||
$rows = array();
|
||||
$running_total = 0;
|
||||
foreach($lease['Charge'] AS $charge) {
|
||||
$amount = $charge['total'];
|
||||
$running_total += $amount;
|
||||
$rows[] = array(datefmt($charge['charge_date']) .' - '. datefmt($charge['charge_to_date']),
|
||||
'#'.$charge['id'],
|
||||
$charge['ChargeType']['name'],
|
||||
$charge['comment'],
|
||||
currency($amount),
|
||||
currency($running_total));
|
||||
|
||||
foreach ($charge['Receipt'] AS $receipt) {
|
||||
$amount = -1 * $receipt['ChargesReceipt']['amount'];
|
||||
$running_total += $amount;
|
||||
// REVISIT <AP> 20090527:
|
||||
// Using hardcoded value for security deposit... can't be good!
|
||||
if ($charge['charge_type_id'] == 1)
|
||||
$security_deposit += $receipt['ChargesReceipt']['amount'];
|
||||
$rows[] = array(' -- ' . datefmt($receipt['stamp']),
|
||||
'#'.$receipt['id'],
|
||||
'Payment/Receipt',
|
||||
$receipt['comment'],
|
||||
currency($amount),
|
||||
currency($running_total));
|
||||
}
|
||||
}
|
||||
$grand_total += $running_total;
|
||||
|
||||
echo('<table cellpadding="0" cellspacing="0">' . "\n");
|
||||
echo(' <CAPTION>Lease #'.$lease['number'].' ('.$lease['Contact'][0]['display_name'].')</CAPTION>' . "\n");
|
||||
echo $html->tableHeaders($headers);
|
||||
echo $html->tableCells($rows, null, array('class' => "altrow"), false, false);
|
||||
echo('</table>' . "\n");
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
<DIV ALIGN=RIGHT><H3>Total Security Deposit: <?php echo currency($security_deposit); ?></H3></DIV>
|
||||
<DIV ALIGN=RIGHT><H3>Outstanding Balance: <?php echo currency($grand_total); ?></H3></DIV>
|
||||
</div>
|
||||
Reference in New Issue
Block a user