I'm still in the middle of moving onto a ledger based system. However, I'm am now changing how transactions and entries relate back to the customer. I'll be using a ledger for each lease (for rent, late charges, security deposits, etc), and a ledger for each customer (for POS, non-specific deposits such as reservations or covering mulitple units, bad debt writeoff, and possibly customer credits, when not obviously lease specific). This coming change might not be in the right direction, so I want to capture the work as is right now. This change set is not fully functional. Many operations do work, but there are obviously transaction problems with units and customers.
git-svn-id: file:///svn-source/pmgr/branches/ledger_transactions_20090605/site@71 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
189
views/customers/view.ctp
Normal file
189
views/customers/view.ctp
Normal file
@@ -0,0 +1,189 @@
|
||||
<?php /* -*- mode:PHP -*- */ ?>
|
||||
|
||||
<div class="customer view">
|
||||
|
||||
<?php
|
||||
|
||||
function currency($number) {
|
||||
if ($number < 0)
|
||||
return "($ " . number_format(-1*$number, 2) . ")";
|
||||
else
|
||||
return "$ " . number_format($number, 2);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
* Customer Detail Main Section
|
||||
*/
|
||||
|
||||
$rows = array(array('Name', $customer['Customer']['name']),
|
||||
array('Comment', $customer['Customer']['comment']));
|
||||
|
||||
echo $this->element('table',
|
||||
array('class' => 'item customer detail',
|
||||
'caption' => 'Tenant Info',
|
||||
'rows' => $rows,
|
||||
'column_class' => array('field', 'value')));
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Customer Info Box
|
||||
*/
|
||||
|
||||
?>
|
||||
<DIV CLASS="infobox">
|
||||
<DIV CLASS="summary grand deposit">
|
||||
Security Deposit: <?php echo currency($outstandingDeposit); ?>
|
||||
</DIV>
|
||||
<DIV CLASS="summary grand balance">
|
||||
Balance: <?php echo currency($outstandingBalance); ?>
|
||||
</DIV>
|
||||
</DIV>
|
||||
|
||||
<DIV CLASS="detail supporting">
|
||||
<?php
|
||||
; // Editor alignment
|
||||
|
||||
/**********************************************************************
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
* Supporting Elements Section
|
||||
*/
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Contacts
|
||||
*/
|
||||
echo $this->element('contacts',
|
||||
array('caption' => 'Customer Contacts',
|
||||
'contacts' => $customer['Contact']));
|
||||
|
||||
|
||||
/* foreach ($customer['Contact'] AS $contact) { */
|
||||
|
||||
/* /\********************************************************************** */
|
||||
/* * Phones */
|
||||
/* *\/ */
|
||||
/* $headers = array('Phone', 'Preference', 'Comment'); */
|
||||
/* $rows = array(); */
|
||||
/* foreach($contact['ContactPhone'] AS $phone) { */
|
||||
/* $rows[] = array(phone($phone['phone']) . */
|
||||
/* ($phone['ext'] ? " x".$phone['ext'] : ""), */
|
||||
/* $phone['ContactsMethod']['preference'] . " / " . */
|
||||
/* $phone['ContactsMethod']['type'] . " / " . */
|
||||
/* $phone['type'], */
|
||||
/* $phone['comment']); */
|
||||
/* } */
|
||||
|
||||
/* echo $this->element('table', */
|
||||
/* array('class' => 'item phone list', */
|
||||
/* 'caption' => 'Phone', */
|
||||
/* 'headers' => $headers, */
|
||||
/* 'rows' => $rows, */
|
||||
/* 'column_class' => $headers)); */
|
||||
|
||||
|
||||
/* /\********************************************************************** */
|
||||
/* * Emails */
|
||||
/* *\/ */
|
||||
/* $headers = array('Email', 'Preference', 'Comment'); */
|
||||
/* $rows = array(); */
|
||||
/* foreach($contact['ContactEmail'] AS $email) { */
|
||||
/* $rows[] = array($email['email'], */
|
||||
/* $email['ContactsMethod']['preference'] . " / " . */
|
||||
/* $email['ContactsMethod']['type'], */
|
||||
/* $email['comment']); */
|
||||
/* } */
|
||||
|
||||
/* echo $this->element('table', */
|
||||
/* array('class' => 'item email list', */
|
||||
/* 'caption' => 'Email', */
|
||||
/* 'headers' => $headers, */
|
||||
/* 'rows' => $rows, */
|
||||
/* 'column_class' => $headers)); */
|
||||
|
||||
|
||||
/* /\********************************************************************** */
|
||||
/* * Addresses */
|
||||
/* *\/ */
|
||||
/* $headers = array('Address', 'Preference', 'Comment'); */
|
||||
/* $rows = array(); */
|
||||
/* foreach($contact['ContactAddress'] AS $address) { */
|
||||
/* $rows[] = array(preg_replace("/\n/", "<BR>\n", $address['address']) . "<BR>\n" . */
|
||||
/* $address['city'] . ", " . */
|
||||
/* $address['state'] . " " . */
|
||||
/* $address['postcode'], */
|
||||
/* //. ? "<BR>\n" . $address['country'], */
|
||||
/* $address['ContactsMethod']['preference'] . " / " . */
|
||||
/* $address['ContactsMethod']['type'], */
|
||||
/* $address['comment']); */
|
||||
/* } */
|
||||
|
||||
/* echo $this->element('table', */
|
||||
/* array('class' => 'item address list', */
|
||||
/* 'caption' => 'Address', */
|
||||
/* 'headers' => $headers, */
|
||||
/* 'rows' => $rows, */
|
||||
/* 'column_class' => $headers)); */
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Lease History
|
||||
*/
|
||||
$headers = array('Lease', 'Unit', 'Signed', 'Move-In', 'Move-Out', 'Rent', 'Deposit', 'Comment');
|
||||
$rows = array();
|
||||
foreach($customer['Lease'] AS $lease) {
|
||||
$rows[] = array('#'.$lease['number'],
|
||||
$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 $this->element('table',
|
||||
array('class' => 'item lease list',
|
||||
'caption' => 'Lease History',
|
||||
'headers' => $headers,
|
||||
'rows' => $rows,
|
||||
'column_class' => $headers));
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Ledger History
|
||||
*/
|
||||
echo $this->element('ledger',
|
||||
array('caption' => 'Ledger History',
|
||||
'transactions' => $customer['Transaction'],
|
||||
'ledger' => array('mix'=>1)));
|
||||
|
||||
/* End "detail supporting" DIV */ ?>
|
||||
</DIV>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user