git-svn-id: file:///svn-source/pmgr/branches/yafr_20090716@352 97e9348a-65ac-dc4b-aefc-98561f571b83
163 lines
6.4 KiB
PHP
163 lines
6.4 KiB
PHP
<?php /* -*- mode:PHP -*- */
|
|
|
|
echo '<div class="ledger-entry view">' . "\n";
|
|
|
|
// The two entry ids, debit and credit, are actually individual
|
|
// entries in separate accounts (each make up one of the two
|
|
// entries required for "double entry"). This, when we provide
|
|
// reconcile information, we're really providing reconcile info
|
|
// for two independent accounts. The reconciling entries,
|
|
// therefore, are those on the opposite side of the ledger in
|
|
// each account. For example, assume this "double" entry is
|
|
//
|
|
// debit: A/R credit: Cash amount: 55
|
|
//
|
|
// Then, our accounts might look like:
|
|
//
|
|
// RENT TAX A/R CASH BANK
|
|
// ------- ------- ------- ------- -------
|
|
// |20 | 20| | | <-- Unrelated
|
|
// | | |20 20| | <-- Unrelated
|
|
// | | | | |
|
|
// |50 | 50| | | <-- Rent paid by this entry
|
|
// | |5 5| | | <-- Tax paid by this entry
|
|
// | | |55 55| | <-- THIS ENTRY
|
|
// | | | | |
|
|
// | | | |75 75| <-- Deposit includes this entry
|
|
// | | | | |
|
|
//
|
|
// In this case, we're looking to provide reconcile information
|
|
// of A/R for (the credit side of) this entry, and also of Cash
|
|
// (for the debit side). Taking the accounts as individual
|
|
// entries, instead of the "double entry" representation in the
|
|
// database, we're actually providing information on the two
|
|
// A/R entries, 50 & 5, which are both debits, i.e. opposite
|
|
// entries to the credit of A/R. The cash account entry
|
|
// reconciles against the credit of 75. Again, this is the
|
|
// opposite entry to the debit of Cash.
|
|
//
|
|
// Thus, for our debit_ledger_id, we're reconciling against
|
|
// credits, and for our credit_ledger_id, against debits.
|
|
|
|
|
|
/**********************************************************************
|
|
**********************************************************************
|
|
**********************************************************************
|
|
**********************************************************************
|
|
* LedgerEntry Detail Main Section
|
|
*/
|
|
|
|
$transaction = $entry['Transaction'];
|
|
$ledgers = array('debit' => $entry['DebitLedger'],
|
|
'credit' => $entry['CreditLedger']);
|
|
$entries = array('debit' => $entry['DebitEntry'],
|
|
'credit' => $entry['CreditEntry']);
|
|
$customer = $entry['Customer'];
|
|
$lease = $entry['Lease'];
|
|
$entry = $entry['DoubleEntry'];
|
|
|
|
$rows = array();
|
|
$rows[] = array('ID', $entry['id']);
|
|
$rows[] = array('Transaction', $html->link('#'.$transaction['id'],
|
|
array('controller' => 'transactions',
|
|
'action' => 'view',
|
|
$transaction['id'])));
|
|
$rows[] = array('Timestamp', FormatHelper::datetime($transaction['stamp']));
|
|
$rows[] = array('Effective', FormatHelper::date($entry['effective_date']));
|
|
//$rows[] = array('Through', FormatHelper::date($entry['through_date']));
|
|
$rows[] = array('Customer', (isset($customer['name'])
|
|
? $html->link($customer['name'],
|
|
array('controller' => 'customers',
|
|
'action' => 'view',
|
|
$customer['id']))
|
|
: null));
|
|
$rows[] = array('Lease', (isset($lease['id'])
|
|
? $html->link('#'.$lease['id'],
|
|
array('controller' => 'leases',
|
|
'action' => 'view',
|
|
$lease['id']))
|
|
: null));
|
|
$rows[] = array('Comment', $entry['comment']);
|
|
|
|
echo $this->element('table',
|
|
array('class' => 'item ledger-entry detail',
|
|
'caption' => 'Double Ledger Entry Detail',
|
|
'rows' => $rows,
|
|
'column_class' => array('field', 'value')));
|
|
|
|
|
|
/**********************************************************************
|
|
* LedgerEntry Info Box
|
|
*/
|
|
|
|
/* echo '<div class="infobox">' . "\n"; */
|
|
/* foreach ($ledgers AS $type => $ledger) { */
|
|
/* //pr($ledger); */
|
|
/* if (!$ledger['Account']['trackable']) */
|
|
/* continue; */
|
|
|
|
/* $applied_caption = "Transfers applied"; */
|
|
/* $remaining_caption = "Unapplied amount"; */
|
|
|
|
/* $rows = array(); */
|
|
/* $rows[] = array($applied_caption, */
|
|
/* FormatHelper::currency($stats[$type]['amount_reconciled'])); */
|
|
/* $rows[] = array($remaining_caption, */
|
|
/* FormatHelper::currency($stats[$type]['amount_remaining'])); */
|
|
/* echo $this->element('table', */
|
|
/* array('class' => 'item summary', */
|
|
/* 'caption' => "{$ledger['Account']['name']} Ledger Entry", */
|
|
/* 'rows' => $rows, */
|
|
/* 'column_class' => array('field', 'value'), */
|
|
/* //'suppress_alternate_rows' => true, */
|
|
/* )); */
|
|
/* } */
|
|
|
|
/* echo '</div>' . "\n"; */
|
|
|
|
echo ('<DIV CLASS="ledger-double-entry">' . "\n");
|
|
foreach ($ledgers AS $type => $ledger) {
|
|
$rows = array();
|
|
|
|
$rows[] = array('ID', $html->link('#' . $entries[$type]['id'],
|
|
array('controller' => 'entries',
|
|
'action' => 'view',
|
|
$entries[$type]['id'])));
|
|
$rows[] = array('Account', $html->link($ledger['Account']['name'],
|
|
array('controller' => 'accounts',
|
|
'action' => 'view',
|
|
$ledger['Account']['id'])));
|
|
$rows[] = array('Ledger', $html->link('#' . $ledger['Account']['id']
|
|
. '-' . $ledger['sequence'],
|
|
array('controller' => 'ledgers',
|
|
'action' => 'view',
|
|
$ledger['id'])));
|
|
$rows[] = array('Amount', FormatHelper::currency($entry['amount']));
|
|
$rows[] = array('Effect', $ledger['Account']['ftype'] == $type ? 'INCREASE' : 'DECREASE');
|
|
|
|
echo $this->element('table',
|
|
array('class' => array('item', $type, 'detail'),
|
|
'caption' => ucfirst($type) . ' Ledger Entry',
|
|
'rows' => $rows,
|
|
'column_class' => array('field', 'value')));
|
|
}
|
|
echo ('</DIV>' . "\n");
|
|
|
|
|
|
|
|
/**********************************************************************
|
|
**********************************************************************
|
|
**********************************************************************
|
|
**********************************************************************
|
|
* Supporting Elements Section
|
|
*/
|
|
|
|
echo '<div CLASS="detail supporting">' . "\n";
|
|
|
|
|
|
/* End "detail supporting" div */
|
|
echo '</div>' . "\n";
|
|
|
|
/* End page div */
|
|
echo '</div>' . "\n";
|