diff --git a/models/account.php b/models/account.php index 9538803..b8b29fd 100644 --- a/models/account.php +++ b/models/account.php @@ -100,13 +100,11 @@ class Account extends AppModel { $contain = array('CurrentLedger' => array('fields' => array('CurrentLedger.id'))); } - $this->Behaviors->attach('Containable'); $account = $this->find('first', array ('contain' => $contain, 'fields' => array(), 'conditions' => array(array('Account.id' => $id)), )); - $this->Behaviors->detach('Containable'); if ($all) { $ledger_ids = array(); @@ -199,7 +197,8 @@ class Account extends AppModel { ************************************************************************** ************************************************************************** * function: findUnreconciledLedgerEntries - * - Returns summary data from the requested account. + * - Returns ledger entries that are not yet reconciled + * (such as charges not paid). */ function findUnreconciledLedgerEntries($id = null) { @@ -207,7 +206,7 @@ class Account extends AppModel { $unreconciled['debits'] = $this->find ('all', array ('link' => array - ('CurrentLedger' => array + ('Ledger' => array ('fields' => array(), 'DebitLedgerEntry' => array ('fields' => array('id', 'amount'), @@ -229,7 +228,7 @@ class Account extends AppModel { $unreconciled['credits'] = $this->find ('all', array ('link' => array - ('CurrentLedger' => array + ('Ledger' => array ('fields' => array(), 'CreditLedgerEntry' => array ('fields' => array('id', 'amount'), @@ -268,7 +267,6 @@ class Account extends AppModel { // (not just the balance), so we may have to query all // ledgers, as dictated by the $all parameter. - $this->Behaviors->attach('Containable'); $account = $this->find('first', array('contain' => ($all @@ -280,7 +278,6 @@ class Account extends AppModel { 'conditions' => array (array('Account.id' => $id)) )); - $this->Behaviors->detach('Containable'); $stats = array(); if ($all) { diff --git a/models/customer.php b/models/customer.php index 827026d..dc22db0 100644 --- a/models/customer.php +++ b/models/customer.php @@ -39,13 +39,11 @@ class Customer extends AppModel { /* 'args' => compact('id', 'link'), */ /* )); */ - $this->Behaviors->attach('Containable'); $customer = $this->find('first', array('contain' => array('Lease' => array('fields' => array('id'))), 'fields' => array('account_id'), 'conditions' => array(array('Customer.id' => $id)))); - $this->Behaviors->detach('Containable'); $entries = $this->Account->findLedgerEntriesRelatedToAccount ($customer['Customer']['account_id'], @@ -69,6 +67,36 @@ class Customer extends AppModel { } + /************************************************************************** + ************************************************************************** + ************************************************************************** + * function: findUnreconciledLedgerEntries + * - Returns ledger entries that are not yet reconciled + * (such as charges not paid). + */ + + function findUnreconciledLedgerEntries($id = null) { + $customer = $this->find('first', + array('contain' => + array('Lease' => array('fields' => array('id'))), + 'fields' => array('account_id'), + 'conditions' => array(array('Customer.id' => $id)))); + + $unreconciled = $this->Account->findUnreconciledLedgerEntries + ($customer['Customer']['account_id']); + + foreach ($customer['Lease'] AS $lease) { + $lease_unrec = $this->Lease->findUnreconciledLedgerEntries($lease['id']); + $unreconciled['debits'] = array_merge($unreconciled['debits'], + $lease_unrec['debits']); + $unreconciled['credits'] = array_merge($unreconciled['credits'], + $lease_unrec['credits']); + } + + return $unreconciled; + } + + /************************************************************************** ************************************************************************** ************************************************************************** @@ -132,7 +160,6 @@ class Customer extends AppModel { return null; // Get the basic information necessary - $this->Behaviors->attach('Containable'); $customer = $this->find('first', array('contain' => array('Account' => array @@ -143,7 +170,6 @@ class Customer extends AppModel { ), 'conditions' => array (array('Customer.id' => $id)))); - $this->Behaviors->detach('Containable'); // Get stats from the customer account, and each lease $stats['Account'] = $this->Account->stats($customer['Account']['id']); diff --git a/models/lease.php b/models/lease.php index a7da73e..a611e85 100644 --- a/models/lease.php +++ b/models/lease.php @@ -91,6 +91,25 @@ class Lease extends AppModel { } + /************************************************************************** + ************************************************************************** + ************************************************************************** + * function: findUnreconciledLedgerEntries + * - Returns ledger entries that are not yet reconciled + * (such as charges not paid). + */ + + function findUnreconciledLedgerEntries($id = null) { + $lease = $this->find('first', array + ('recursive' => -1, + 'fields' => array('account_id'), + 'conditions' => array(array('id' => $id)), + )); + + return $this->Account->findUnreconciledLedgerEntries($lease['Lease']['account_id']); + } + + /************************************************************************** ************************************************************************** ************************************************************************** diff --git a/models/ledger.php b/models/ledger.php index 56cbf7e..25f8f33 100644 --- a/models/ledger.php +++ b/models/ledger.php @@ -57,7 +57,6 @@ class Ledger extends AppModel { /* )); */ if (!isset($account_type)) { - $this->Behaviors->attach('Containable'); $ledger = $this->find('first', array ('contain' => array ('Account' => array @@ -67,7 +66,6 @@ class Ledger extends AppModel { 'fields' => array(), 'conditions' => array(array('Ledger.id' => $id)), )); - $this->Behaviors->detach('Containable'); $account_type = $ledger['Account']['type']; } diff --git a/models/unit.php b/models/unit.php index f7aa047..69b92e7 100644 --- a/models/unit.php +++ b/models/unit.php @@ -70,7 +70,6 @@ class Unit extends AppModel { return null; // Get the basic information necessary - $this->Behaviors->attach('Containable'); $unit = $this->find('first', array('contain' => array ('Lease' => array @@ -82,7 +81,6 @@ class Unit extends AppModel { 'conditions' => array (array('Unit.id' => $id)), )); - $this->Behaviors->detach('Containable'); // Get the stats for the current lease $stats['CurrentLease'] = $this->Lease->stats($unit['CurrentLease']['id']);