Hopeful fix for the bug affecting customer security deposit balance. It was introduced when we added the Customer Credit account, since Security Deposit no longer _directly_ pays charges like it used to. Now, it's converted to customer credit, and _that_ account is the one that pays. The security deposit situation is a bit shaky, but seems to be working again.
git-svn-id: file:///svn-source/pmgr/branches/yafr_20090716@600 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
@@ -101,12 +101,35 @@ class Customer extends AppModel {
|
||||
$this->prEnter(compact('id', 'query'));
|
||||
$this->queryInit($query);
|
||||
|
||||
$query['conditions'][] = array('StatementEntry.customer_id' => $id);
|
||||
$query['conditions'][] = array('StatementEntry.account_id' =>
|
||||
$this->StatementEntry->Account->securityDepositAccountID());
|
||||
$sd_account_id =
|
||||
$this->StatementEntry->Account->securityDepositAccountID();
|
||||
|
||||
$stats = $this->StatementEntry->stats(null, $query);
|
||||
return $this->prReturn($stats['account_balance']);
|
||||
$squery = $query;
|
||||
$squery['conditions'][] = array('StatementEntry.customer_id' => $id);
|
||||
$squery['conditions'][] = array('StatementEntry.account_id' => $sd_account_id);
|
||||
$stats = $this->StatementEntry->stats(null, $squery);
|
||||
$this->pr(26, compact('squery', 'stats'));
|
||||
|
||||
// OK, we know now how much we charged for a security
|
||||
// deposit, as well as how much we received to pay for it.
|
||||
// Now we need to know if any has been released.
|
||||
// Yes... this sucks.
|
||||
$lquery = $query;
|
||||
$lquery['link'] = array('Transaction' =>
|
||||
array('fields' => array(),
|
||||
'Customer' =>
|
||||
(empty($query['link'])
|
||||
? array('fields' => array())
|
||||
: $query['link'])));
|
||||
$lquery['conditions'][] = array('Transaction.customer_id' => $id);
|
||||
$lquery['conditions'][] = array('LedgerEntry.account_id' => $sd_account_id);
|
||||
$lquery['conditions'][] = array('LedgerEntry.crdr' => 'DEBIT');
|
||||
$lquery['fields'][] = 'SUM(LedgerEntry.amount) AS total';
|
||||
$released = $this->StatementEntry->Transaction->LedgerEntry->find
|
||||
('first', $lquery);
|
||||
$this->pr(26, compact('lquery', 'released'));
|
||||
|
||||
return $this->prReturn($stats['Charge']['disbursement'] - $released[0]['total']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user