Added ability to get a customer's running balance. It's quite flaky, doesn't tolerate having a grid with sub-pages, is actually incorrect for at least some customers (not sure why), but it helps answer a fundamental question for most customers. If I had a better solution, I would surely go for it.
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1036 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
@@ -157,13 +157,14 @@ echo $this->element('contacts', array
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Customer Account History
|
||||
* Customer Statement History
|
||||
*/
|
||||
|
||||
echo $this->element('statement_entries', array
|
||||
(// Grid configuration
|
||||
'config' => array
|
||||
('caption' => 'Customer Statement',
|
||||
'grid_setup' => array('hiddengrid' => true),
|
||||
'filter' => array('Customer.id' => $customer['Customer']['id'],
|
||||
'type !=' => 'VOID'),
|
||||
//'include' => array('Sub-Total'),
|
||||
@@ -171,6 +172,28 @@ echo $this->element('statement_entries', array
|
||||
)));
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Customer Transaction History
|
||||
*/
|
||||
|
||||
echo $this->element('transactions', array
|
||||
(// Grid configuration
|
||||
'config' => array
|
||||
('caption' => 'Balance History',
|
||||
'limit' => 10000,
|
||||
'limitOptions' => array('10000'),
|
||||
'sort_column' => 'Timestamp',
|
||||
'sort_order' => 'ASC',
|
||||
'grid_setup' => array('hiddengrid' => true),
|
||||
'filter' => array('Customer.id' => $customer['Customer']['id']),
|
||||
'include' => array('Comment', 'PosNeg', 'Balance'),
|
||||
'exclude' => array('Amount', 'Entries'),
|
||||
'remap' => array(//'ID' => 'Invoice',
|
||||
'PosNeg' => 'Amount',
|
||||
//'Entries' => 'Charges',
|
||||
),
|
||||
)));
|
||||
|
||||
/* End "detail supporting" div */
|
||||
echo '</div>' . "\n";
|
||||
|
||||
|
||||
@@ -11,9 +11,11 @@ $cols['ID'] = array('index' => 'Transaction.id', 'formatter' =
|
||||
$cols['Type'] = array('index' => 'Transaction.type', 'formatter' => 'enum');
|
||||
$cols['Customer'] = array('index' => 'Customer.name', 'formatter' => 'longname');
|
||||
$cols['Timestamp'] = array('index' => 'Transaction.stamp', 'formatter' => 'date');
|
||||
$cols['Comment'] = array('index' => 'Transaction.comment', 'formatter' => 'comment', 'sortable' => false);
|
||||
$cols['Entries'] = array('index' => 'entries', 'formatter' => 'number');
|
||||
$cols['Amount'] = array('index' => 'Transaction.amount', 'formatter' => 'currency');
|
||||
$cols['Comment'] = array('index' => 'Transaction.comment', 'formatter' => 'comment');
|
||||
$cols['PosNeg'] = array('index' => 'balance', 'formatter' => 'currency');
|
||||
$cols['Balance'] = array('index' => 'subtotal-balance', 'formatter' => 'currency', 'sortable' => false);
|
||||
|
||||
// Render the grid
|
||||
$grid
|
||||
@@ -22,4 +24,4 @@ $grid
|
||||
->defaultFields(array('ID', 'Timestamp'))
|
||||
->searchFields(array('Type', 'Comment'))
|
||||
->render($this, isset($config) ? $config : null,
|
||||
array_merge($include, array_diff(array_keys($cols), array('Customer', 'Comment'))));
|
||||
array_merge($include, array_diff(array_keys($cols), array('Customer', 'PosNeg', 'Balance', 'Comment'))));
|
||||
|
||||
Reference in New Issue
Block a user