Experiment to group ledger entries by their transaction ID instead of their entry ID.
git-svn-id: file:///svn-source/pmgr/branches/ledger_transactions_20090605@177 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
@@ -96,7 +96,7 @@ class LedgerEntriesController extends AppController {
|
||||
? $params['custom']['account_type']
|
||||
: null);
|
||||
|
||||
return $model->ledgerContextFields($ledger_id, $account_type);
|
||||
return $model->ledgerContextFields2($ledger_id, $account_type);
|
||||
}
|
||||
|
||||
function jqGridDataConditions(&$params, &$model) {
|
||||
@@ -135,6 +135,20 @@ class LedgerEntriesController extends AppController {
|
||||
return parent::jqGridRecordLinks($params, $model, $records, $links);
|
||||
}
|
||||
|
||||
function jqGridDataGroup(&$params, &$model) {
|
||||
if (isset($params['custom']['notxgroup']))
|
||||
return parent::jqGridDataGroup($params, $model);
|
||||
|
||||
return $model->alias.'.transaction_id';
|
||||
}
|
||||
|
||||
function jqGridDataOrder(&$params, &$model, $index, $direction) {
|
||||
/* if ($index === 'balance') */
|
||||
/* return ($index .' '. $direction); */
|
||||
|
||||
return parent::jqGridDataOrder($params, $model, $index, $direction);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
**************************************************************************
|
||||
|
||||
@@ -237,7 +237,7 @@ class TransactionsController extends AppController {
|
||||
'amount' => 100,
|
||||
'debit_ledger_id' => 1,
|
||||
'credit_ledger_id' => 2,
|
||||
'transaction_id' => 1,
|
||||
'transaction_id' => 66,
|
||||
'DebitReconciliationLedgerEntry' =>
|
||||
array('amount' => 44,
|
||||
//'debit_ledger_entry_id'
|
||||
|
||||
@@ -84,6 +84,29 @@ class LedgerEntry extends AppModel {
|
||||
return $fields;
|
||||
}
|
||||
|
||||
function ledgerContextFields2($ledger_id = null, $account_type = null) {
|
||||
$fields = array('id', 'name', 'comment', 'amount');
|
||||
|
||||
if (isset($ledger_id)) {
|
||||
$fields[] = ("IF(LedgerEntry.debit_ledger_id = $ledger_id," .
|
||||
" SUM(LedgerEntry.amount), NULL) AS debit");
|
||||
$fields[] = ("IF(LedgerEntry.credit_ledger_id = $ledger_id," .
|
||||
" SUM(LedgerEntry.amount), NULL) AS credit");
|
||||
|
||||
if (isset($account_type)) {
|
||||
if (in_array($account_type, array('ASSET', 'EXPENSE')))
|
||||
$ledger_type = 'debit';
|
||||
else
|
||||
$ledger_type = 'credit';
|
||||
|
||||
$fields[] = ("(IF(LedgerEntry.{$ledger_type}_ledger_id = $ledger_id," .
|
||||
" 1, -1) * SUM(LedgerEntry.amount)) AS balance");
|
||||
}
|
||||
}
|
||||
|
||||
return $fields;
|
||||
}
|
||||
|
||||
function ledgerContextConditions($ledger_id, $account_type) {
|
||||
if (isset($ledger_id)) {
|
||||
return array
|
||||
|
||||
@@ -2,8 +2,11 @@
|
||||
|
||||
// Define the table columns
|
||||
$cols = array();
|
||||
$cols['Transaction'] = array('index' => 'Transaction.id', 'formatter' => 'id');
|
||||
$cols['Entry'] = array('index' => 'LedgerEntry.id', 'formatter' => 'id');
|
||||
if (isset($notxgroup))
|
||||
$cols['Entry'] = array('index' => 'LedgerEntry.id', 'formatter' => 'id');
|
||||
else
|
||||
$cols['Transaction'] = array('index' => 'Transaction.id', 'formatter' => 'id');
|
||||
|
||||
$cols['Date'] = array('index' => 'Transaction.stamp', 'formatter' => 'date');
|
||||
if (isset($account_ftype) || isset($ledger_id)) {
|
||||
$cols['Account'] = array('index' => 'Account.name', 'formatter' => 'longname');
|
||||
@@ -25,7 +28,7 @@ if (isset($reconcile_id)) {
|
||||
$cols['Applied'] = array('index' => "Reconciliation.amount", 'formatter' => 'currency');
|
||||
}
|
||||
|
||||
$custom_post_data = compact('ledger_id', 'account_type', 'account_ftype');
|
||||
$custom_post_data = compact('ledger_id', 'account_type', 'account_ftype', 'notxgroup');
|
||||
|
||||
$jqGrid_options = array('jqGridColumns' => $cols,
|
||||
'controller' => 'ledger_entries',
|
||||
|
||||
@@ -55,6 +55,7 @@ echo '<div CLASS="detail supporting">' . "\n";
|
||||
echo $this->element('ledger_entries',
|
||||
array('caption' => 'Entries in Transaction',
|
||||
'ledger_entries' => $transaction['LedgerEntry'],
|
||||
'notxgroup' => true,
|
||||
));
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user