Several minor changes including a couple minor bugfixes.

git-svn-id: file:///svn-source/pmgr/branches/surplus_account_20090815@592 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
abijah
2009-08-17 02:15:02 +00:00
parent 4afe0bd77b
commit 90ecbda541
8 changed files with 45 additions and 19 deletions

View File

@@ -66,6 +66,7 @@ class AppController extends Controller {
$menu[] = array('name' => 'Accounts', 'url' => array('controller' => 'accounts', 'action' => 'index')); $menu[] = array('name' => 'Accounts', 'url' => array('controller' => 'accounts', 'action' => 'index'));
$menu[] = array('name' => 'Contacts', 'url' => array('controller' => 'contacts', 'action' => 'index')); $menu[] = array('name' => 'Contacts', 'url' => array('controller' => 'contacts', 'action' => 'index'));
$menu[] = array('name' => 'Ledgers', 'url' => array('controller' => 'ledgers', 'action' => 'index')); $menu[] = array('name' => 'Ledgers', 'url' => array('controller' => 'ledgers', 'action' => 'index'));
$menu[] = array('name' => 'Tenders', 'url' => array('controller' => 'tenders', 'action' => 'index'));
$menu[] = array('name' => 'Transactions', 'url' => array('controller' => 'transactions', 'action' => 'index')); $menu[] = array('name' => 'Transactions', 'url' => array('controller' => 'transactions', 'action' => 'index'));
$menu[] = array('name' => 'Ldgr Entries', 'url' => array('controller' => 'ledger_entries', 'action' => 'index')); $menu[] = array('name' => 'Ldgr Entries', 'url' => array('controller' => 'ledger_entries', 'action' => 'index'));
$menu[] = array('name' => 'Stmt Entries', 'url' => array('controller' => 'statement_entries', 'action' => 'index')); $menu[] = array('name' => 'Stmt Entries', 'url' => array('controller' => 'statement_entries', 'action' => 'index'));

View File

@@ -143,12 +143,9 @@ class AccountsController extends AppController {
$account = $this->Account->read(null, $id); $account = $this->Account->read(null, $id);
$account = $account['Account']; $account = $account['Account'];
$payment_accounts = $this->Account->collectableAccounts(); $accounts = $this->Account->collectableAccounts();
//$payment_accounts[$this->Account->nameToID('Closing')] = 'Closing'; $payment_accounts = $accounts['all'];
//$payment_accounts[$this->Account->nameToID('Equity')] = 'Equity'; $default_accounts = $accounts['default'];
//$payment_accounts[$id] = 'Reversals';
$default_accounts = array_diff_key($this->Account->receiptAccounts(),
array($this->Account->concessionAccountID() => 1));
$this->set(compact('payment_accounts', 'default_accounts')); $this->set(compact('payment_accounts', 'default_accounts'));
$title = ($account['name'] . ': Collected Report'); $title = ($account['name'] . ': Collected Report');

View File

@@ -178,7 +178,8 @@ class TendersController extends AppController {
&& empty($tender['Tender']['nsf_transaction_id']) && empty($tender['Tender']['nsf_transaction_id'])
// Hard to tell what types of items can come back as NSF. // Hard to tell what types of items can come back as NSF.
// For now, assume iff it is a named item, it can be NSF. // For now, assume iff it is a named item, it can be NSF.
&& !empty($tender['TenderType']['data1_name']) // (or if we're in development mode)
&& (!empty($tender['TenderType']['data1_name']) || !empty($this->params['dev']))
) { ) {
$this->sidemenu_links[] = $this->sidemenu_links[] =
array('name' => 'NSF', array('name' => 'NSF',

View File

@@ -212,7 +212,6 @@ class UnitsController extends AppController {
), ),
'conditions' => array('Unit.id' => $id), 'conditions' => array('Unit.id' => $id),
)); ));
$unit['Unit'] = $unit[0] + $unit['Unit'];
// Get the balance on each lease. // Get the balance on each lease.
foreach ($unit['Lease'] AS &$lease) { foreach ($unit['Lease'] AS &$lease) {

View File

@@ -139,8 +139,17 @@ class Account extends AppModel {
function invoiceAccountID() { return $this->nameToID('Invoice'); } function invoiceAccountID() { return $this->nameToID('Invoice'); }
function receiptAccountID() { return $this->nameToID('Receipt'); } function receiptAccountID() { return $this->nameToID('Receipt'); }
function badDebtAccountID() { return $this->nameToID('Bad Debt'); } function badDebtAccountID() { return $this->nameToID('Bad Debt'); }
function customerCreditAccountID() { return $this->nameToID('Credit'); } function customerCreditAccountID() { return $this->nameToID(
// REVISIT <AP>: 20090816
// Use of A/R works, and saves an excess of accounts.
// However, a dedicated account is nice, since it can
// quickly be spotted how much is _really_ due, vs
// how much has been pre-paid. Customer credits in
// A/R is not as clear, although a report is an
// obvious solution.
//'A/R'
'Credit'
); }
/************************************************************************** /**************************************************************************
************************************************************************** **************************************************************************
@@ -224,13 +233,28 @@ class Account extends AppModel {
function collectableAccounts() { function collectableAccounts() {
$accounts = $this->receiptAccounts(); $accounts = $this->receiptAccounts();
foreach(array($this->nsfAccountID(), foreach(array($this->customerCreditAccountID(),
$this->securityDepositAccountID(),
$this->nsfAccountID(),
$this->waiverAccountID(),
$this->badDebtAccountID(), $this->badDebtAccountID(),
$this->securityDepositAccountID()) //$this->nameToID('Closing'),
//$this->nameToID('Equity'),
)
AS $account_id) { AS $account_id) {
$accounts[$account_id] = $this->name($account_id); $accounts[$account_id] = $this->name($account_id);
} }
$accounts['all'] = $accounts['default'] = $accounts;
foreach(array($this->concessionAccountID(),
$this->waiverAccountID(),
$this->badDebtAccountID(),
)
AS $account_id) {
unset($accounts['default'][$account_id]);
}
return $accounts; return $accounts;
} }

View File

@@ -224,9 +224,11 @@ class StatementEntry extends AppModel {
$result = $this->Transaction->addReversal $result = $this->Transaction->addReversal
($charge, $stamp, 'Charge Reversal'); ($charge, $stamp, 'Charge Reversal');
// Mark the charge as reversed if (empty($result['error'])) {
$this->id = $id; // Mark the charge as reversed
$this->saveField('reverse_transaction_id', $result['transaction_id']); $this->id = $id;
$this->saveField('reverse_transaction_id', $result['transaction_id']);
}
return $this->prReturn($result); return $this->prReturn($result);
} }

View File

@@ -1169,9 +1169,12 @@ class Transaction extends AppModel {
$squery['fields'][] = "SUM(Transaction.amount) AS total"; $squery['fields'][] = "SUM(Transaction.amount) AS total";
$squery['fields'][] = "COUNT(Transaction.id) AS count"; $squery['fields'][] = "COUNT(Transaction.id) AS count";
$stats = $this->find('first', $squery); $stats = $this->find('first', $squery);
if (empty($stats))
return $this->prReturn(array());
$stats = $stats[0]; $stats = $stats[0];
unset($stats[0]); unset($stats[0]);
foreach ($this->hasMany AS $table => $association) { foreach ($this->hasMany AS $table => $association) {
// Only calculate stats for *Entry types // Only calculate stats for *Entry types
if (!preg_match("/Entry$/", $table) && if (!preg_match("/Entry$/", $table) &&

View File

@@ -166,12 +166,11 @@ echo $this->element('statement_entries', array
'grid_div_class' => 'text-below', 'grid_div_class' => 'text-below',
'grid_events' => array('loadComplete' => 'onGridLoadComplete()'), 'grid_events' => array('loadComplete' => 'onGridLoadComplete()'),
'grid_setup' => array('hiddengrid' => true), 'grid_setup' => array('hiddengrid' => true),
//'caption' => '<SPAN id="receipt-charges-caption"></SPAN>',
'caption' => 'Collected ' . Inflector::pluralize($account['name']), 'caption' => 'Collected ' . Inflector::pluralize($account['name']),
'action' => 'collected', 'action' => 'collected',
'filter' => array(//'StatementEntry.type' => 'DISBURSEMENT', 'filter' => array('ChargeEntry.account_id' => $account['id']),
'ChargeEntry.account_id' => $account['id']), 'include' => array('Amount'),
'exclude' => array('Account', 'Charge', 'Type'), 'exclude' => array(/*'Type',*/ 'Debit', 'Credit'),
), ),
)); ));