Still trying to figure out what issuing a refund should look like. I switched the entry to be negative, which may (should) make reporting easier.

git-svn-id: file:///svn-source/pmgr/branches/invoice_receipt_20090629@350 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
abijah
2009-07-16 07:27:18 +00:00
parent b2ab134996
commit 3313a18407
6 changed files with 66 additions and 19 deletions

View File

@@ -211,6 +211,25 @@ class Account extends AppModel {
return $payment_accounts;
}
/**************************************************************************
**************************************************************************
**************************************************************************
* function: collectableAccounts
* - Returns an array of accounts suitable to show income collection
*/
function collectableAccounts() {
$accounts = $this->paymentAccounts();
foreach(array($this->nsfAccountID(),
$this->securityDepositAccountID())
AS $account_id) {
$accounts[$account_id] = $this->name($account_id);
}
return $accounts;
}
/**************************************************************************
**************************************************************************

View File

@@ -251,7 +251,7 @@ class LedgerEntry extends AppModel {
* - Reverses the ledger entry
*/
function reverse($id, $amount = null, $transaction_id = null, $rec_id = null) {
function reverse1($id, $amount = null, $transaction_id = null, $rec_id = null) {
/* pr(array('LedgerEntry::reverse', */
/* compact('id', 'amount', 'transaction_id', 'rec_id'))); */
@@ -378,8 +378,8 @@ class LedgerEntry extends AppModel {
/**************************************************************************
**************************************************************************
**************************************************************************
* function: refund
* - Flags the given items as refunded
* function: reverse
* - Reverses the charges
*
* SAMPLE MOVE IN w/ PRE PAYMENT
* DEPOSIT RENT A/R RECEIPT CHECK PETTY BANK
@@ -427,20 +427,26 @@ OPTION 2
* | | | | | | |
*
*/
function refund($ledger_entries, $stamp = null) {
pr(array('LedgerEntry::refund',
function reverse($ledger_entries, $stamp = null) {
pr(array('LedgerEntry::reverse',
compact('ledger_entries', 'stamp')));
// If the user only wants to reverse one ID, we'll allow it
if (!is_array($ledger_entries))
$ledger_entries = $this->find
('all', array
('contain' => false,
'conditions' => array('LedgerEntry.id' => $ledger_entries)));
$A = new Account();
$cp_account_id = $A->creditPayableAccountID();
$cp_account_id = $A->accountReceivableAccountID();
$ar_account_id = $A->accountReceivableAccountID();
$receipt_account_id = $A->receiptAccountID();
$transaction_id = null;
foreach ($ledger_entries AS $entry) {
$entry = $entry['LedgerEntry'];
$amount = $entry['amount'];
$amount = -1*$entry['amount'];
if (isset($entry['credit_account_id']))
$refund_account_id = $entry['credit_account_id'];
@@ -455,8 +461,8 @@ OPTION 2
$ids = $A->postLedgerEntry
(array('transaction_id' => $transaction_id),
null,
array('debit_ledger_id' => $A->currentLedgerID($refund_account_id),
'credit_ledger_id' => $A->currentLedgerID($cp_account_id),
array('debit_ledger_id' => $A->currentLedgerID($ar_account_id),
'credit_ledger_id' => $A->currentLedgerID($refund_account_id),
'effective_date' => $entry['effective_date'],
'through_date' => $entry['through_date'],
'amount' => $amount,
@@ -476,7 +482,7 @@ OPTION 2
$transaction_id = $ids['transaction_id'];
pr(array('checkpoint' => 'Posted Refund Ledger Entry',
compact('ids', 'amount', 'refund_account_id', 'cp_account_id')));
compact('ids', 'amount', 'refund_account_id', 'ar_account_id')));
}
return true;