Implemented more around lease closings.

git-svn-id: file:///svn-source/pmgr/branches/invoice_receipt_20090629/site@278 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
abijah
2009-07-09 02:57:43 +00:00
parent a45fd6879d
commit 7483f6ed2c
2 changed files with 101 additions and 13 deletions

View File

@@ -228,27 +228,90 @@ class Lease extends AppModel {
* - Moves the customer out of the specified lease
*/
function moveOut($id = null, $status = 'VACANT',
function moveOut($id, $status = 'VACANT',
$stamp = null, $close = false) {
$this->create(false);
// Use NOW if not given a moveout date
if (!isset($stamp))
$stamp = date('Y-m-d G:i:s');
// Reset the data
$this->create();
$this->id = $id;
// Set the customer move-out date
$this->data['Lease']['moveout_date'] = $stamp;
// Save it!
$this->save($this->data, false);
// Close the lease, if so requested
if ($close)
$this->close($id, $stamp);
// Finally, update the unit status
$this->recursive = -1;
$this->read();
$this->Unit->updateStatus($this->data['Lease']['unit_id'], $status);
}
/**************************************************************************
**************************************************************************
**************************************************************************
* function: close
* - Closes the lease to further action
*/
function close($id, $stamp = null) {
if (!$this->closeable($id))
return false;
// Reset the data
$this->create();
$this->id = $id;
// Use NOW if not given a moveout date
if (!isset($stamp))
$stamp = date('Y-m-d G:i:s');
// Move customer out of the lease, and possibly close it
$this->data['Lease']['moveout_date'] = $stamp;
if ($close)
$this->data['Lease']['close_date'] = $stamp;
// Set the close date
$this->data['Lease']['close_date'] = $stamp;
// Save it!
$this->save($this->data, false);
return true;
}
// Finally, update the unit status
/**************************************************************************
**************************************************************************
**************************************************************************
* function: closeable
* - Indicates whether or not the lease can be closed
*/
function closeable($id) {
$this->recursive = -1;
$this->read();
$this->Unit->updateStatus($this->data['Lease']['unit_id'], $status);
$this->read(null, $id);
// We can't close a lease that's still in use
if (!isset($this->data['Lease']['moveout_date']))
return false;
// We can't close a lease that's already closed
if (isset($this->data['Lease']['close_date']))
return false;
$deposits = $this->findSecurityDeposits($id);
$stats = $this->stats($id);
// A lease can only be closed if there are no outstanding
// security deposits, and if the account balance is zero.
if ($deposits['summary']['balance'] != 0 || $stats['balance'] != 0)
return false;
// Apparently this lease meets all the criteria!
return true;
}