diff --git a/scripts/sitelink2pmgr.pl b/scripts/sitelink2pmgr.pl index 54bd007..5fd40ff 100644 --- a/scripts/sitelink2pmgr.pl +++ b/scripts/sitelink2pmgr.pl @@ -4,7 +4,8 @@ use DBI; use Data::Dumper; use File::Copy; -my $use_ir = 1; +my $use_invoice = 0; +my $use_receipt = 1; # Internally adjust all numbers coming from the database to # be in inches. Not necessary to go to this detail, but the @@ -926,6 +927,7 @@ foreach $row (@{query($sdbh, $query)}) { addRow('transactions', { 'stamp' => $stamp, + #'comment' => "Invoice Transaction", }); $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}} @@ -945,39 +947,51 @@ foreach $row (@{query($sdbh, $query)}) { ]{'deposit'} = $row->{'ChargeAmount'}; } - addRow('transactions', - { 'stamp' => $stamp, - }); - - $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'charge_tx'} - = $newdb{'tables'}{'transactions'}{'autoid'}; - # Invoice must debit the A/R ledger... $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'debit_ledger_id'} = $newdb{'lookup'}{'account'}{'A/R'}{'ledger_id'}; - # ...and credit the Invoice ledger. - $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'credit_ledger_id'} - = $newdb{'lookup'}{'account'}{'Invoice'}{'ledger_id'}; + if ($use_invoice) { + addRow('transactions', + { 'stamp' => $stamp, + #'comment' => "Charges Transaction", + }); - # Create the invoice entry - # debit: A/R credit: Invoice - addRow('ledger_entries', - { 'effective_date' => $effective_date, - 'through_date' => $through_date, - 'monetary_source_id' => $newdb{'ids'}{'monetary_source'}{'internal'}, - 'transaction_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'tx'}, - 'root_transaction_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'charge_tx'}, - 'debit_ledger_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'debit_ledger_id'}, - 'credit_ledger_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'credit_ledger_id'}, - 'customer_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'customer_id'}, - 'lease_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'lease_id'}, - 'amount' => $row->{'InvoiceAmount'}, - #'comment' => "Invoice: Charge: $row->{'ChargeID'}", - }); + $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'charge_tx'} + = $newdb{'tables'}{'transactions'}{'autoid'}; + + # ...and credit the Invoice ledger. + $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'credit_ledger_id'} + = $newdb{'lookup'}{'account'}{'Invoice'}{'ledger_id'}; + + # Create the invoice entry + # debit: A/R credit: Invoice + addRow('ledger_entries', + { 'effective_date' => $effective_date, + 'through_date' => $through_date, + 'monetary_source_id' => $newdb{'ids'}{'monetary_source'}{'internal'}, + 'transaction_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'tx'}, + 'root_transaction_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'charge_tx'}, + 'debit_ledger_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'debit_ledger_id'}, + 'credit_ledger_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'credit_ledger_id'}, + 'customer_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'customer_id'}, + 'lease_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'lease_id'}, + 'amount' => $row->{'InvoiceAmount'}, + #'comment' => "Invoice: Charge: $row->{'ChargeID'}", + }); + + $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'ledger_entry_id'} + = $newdb{'tables'}{'ledger_entries'}{'autoid'}; + } + else { + # OK, no invoice ledger + $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'charge_tx'} + = $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'tx'}; + + $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'credit_ledger_id'} + = $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'debit_ledger_id'}; + } - $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'ledger_entry_id'} - = $newdb{'tables'}{'ledger_entries'}{'autoid'}; } @@ -998,11 +1012,11 @@ foreach $row (@{query($sdbh, $query)}) { $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'lease_id'} = $newdb{'lookup'}{'ledger'}{$row->{'LedgerID'}}{'lease_id'}; - # Charge must credit the invoice ledger... + # Charge must credit the Charge ledger... $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'credit_ledger_id'} = $newdb{'lookup'}{'charge_type'}{$row->{'ChargeDescription'}}{'ledger_id'}; - # ...and debit the A/R ledger. + # ...and debit the Invoice ledger. $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'debit_ledger_id'} = $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'credit_ledger_id'}; @@ -1018,23 +1032,29 @@ foreach $row (@{query($sdbh, $query)}) { 'customer_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'customer_id'}, 'lease_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'lease_id'}, 'amount' => $row->{'ChargeAmount'}, - #'comment' => "Charge: $row->{'ChargeID'}; Ledger: $row->{'LedgerID'}", + #'comment' => "Charge: $row->{'ChargeID'}; Ledger: $row->{'LedgerID'}", }); $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'ledger_entry_id'} = $newdb{'tables'}{'ledger_entries'}{'autoid'}; - # Reconcile the Invoice account. Our two entries look like: - # debit: Invoice credit: Rent/LateCharge/Etc - # debit: A/R credit: Invoice - # Since this is from the perspective of the Invoice account, - # the credit entry is the Invoice<->A/R, and the debit - # entry is the actual charge ledger entry. - addRow('reconciliations', - { 'debit_ledger_entry_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'ledger_entry_id'}, - 'credit_ledger_entry_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'ledger_entry_id'}, - 'amount' => $row->{'ChargeAmount'}, - }); + if ($use_invoice) { + # Reconcile the Invoice account. Our two entries look like: + # debit: Invoice credit: Rent/LateCharge/Etc + # debit: A/R credit: Invoice + # Since this is from the perspective of the Invoice account, + # the credit entry is the Invoice<->A/R, and the debit + # entry is the actual charge ledger entry. + addRow('reconciliations', + { 'debit_ledger_entry_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'ledger_entry_id'}, + 'credit_ledger_entry_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'ledger_entry_id'}, + 'amount' => $row->{'ChargeAmount'}, + }); + } + else { + $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'ledger_entry_id'} + = $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'ledger_entry_id'}; + } next unless $row->{'TaxAmount'}; @@ -1050,23 +1070,25 @@ foreach $row (@{query($sdbh, $query)}) { 'customer_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'customer_id'}, 'lease_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'lease_id'}, 'amount' => $row->{'TaxAmount'}, - #'comment' => "Tax for ChargeID:$row->{'ChargeID'}", + #'comment' => "Tax for ChargeID:$row->{'ChargeID'}", }); $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'tax_ledger_entry_id'} = $newdb{'tables'}{'ledger_entries'}{'autoid'}; - # Reconcile the Invoice account. Our two entries look like: - # debit: Invoice credit: Tax - # debit: A/R credit: Invoice - # Since this is from the perspective of the Invoice account, - # the credit entry is the Invoice<->A/R, and the debit - # entry is the actual tax ledger entry. - addRow('reconciliations', - { 'debit_ledger_entry_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'tax_ledger_entry_id'}, - 'credit_ledger_entry_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'ledger_entry_id'}, - 'amount' => $row->{'TaxAmount'}, - }); + if ($use_invoice) { + # Reconcile the Invoice account. Our two entries look like: + # debit: Invoice credit: Tax + # debit: A/R credit: Invoice + # Since this is from the perspective of the Invoice account, + # the credit entry is the Invoice<->A/R, and the debit + # entry is the actual tax ledger entry. + addRow('reconciliations', + { 'debit_ledger_entry_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'tax_ledger_entry_id'}, + 'credit_ledger_entry_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'invoice'}{'ledger_entry_id'}, + 'amount' => $row->{'TaxAmount'}, + }); + } } @@ -1176,7 +1198,8 @@ foreach $row (@{query($sdbh, $query)}) { if (!$newdb{'lookup'}{'receipt'}{$row->{'ReceiptNum'}}) { addRow('transactions', { 'stamp' => $stamp, - }); + #'comment' => "Receipt Transaction", + }); $newdb{'lookup'}{'receipt'}{$row->{'ReceiptNum'}} = {'tx' => $newdb{'tables'}{'transactions'}{'autoid'}, 'date' => $stamp, @@ -1184,6 +1207,7 @@ foreach $row (@{query($sdbh, $query)}) { addRow('transactions', { 'stamp' => $stamp, + #'comment' => "Payment Split Transaction", }); $newdb{'lookup'}{'receipt'}{$row->{'ReceiptNum'}}{'payment_tx'} = $newdb{'tables'}{'transactions'}{'autoid'}; @@ -1245,7 +1269,7 @@ foreach $row (@{query($sdbh, $query)}) { 'debit_ledger_id' => $newdb{'lookup'}{'receipt'}{$row->{'ReceiptNum'}}{$row->{'PaymentType'}}{'debit_ledger_id'}, 'credit_ledger_id' => $newdb{'lookup'}{'receipt'}{$row->{'ReceiptNum'}}{$row->{'PaymentType'}}{'credit_ledger_id'}, 'amount' => $row->{'ReceiptAmount'}, - #'comment' => "Receipt: $row->{'ReceiptNum'}; ", + #'comment' => "Receipt: $row->{'ReceiptNum'}; ", }); $newdb{'lookup'}{'receipt'}{$row->{'ReceiptNum'}}{$row->{'PaymentType'}}{'ledger_entry_id'} @@ -1301,7 +1325,7 @@ foreach $row (@{query($sdbh, $query)}) 'customer_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'customer_id'}, 'lease_id' => $newdb{'lookup'}{'charge'}{$row->{'ChargeID'}}{'lease_id'}, 'amount' => $row->{'PaymentAmount'}, - #'comment' => "Receipt: $row->{'ReceiptNum'}; Charge: $row->{'ChargeID'}; Payment: $row->{'PaymentID'}", + #'comment' => "Split; Receipt: $row->{'ReceiptNum'}; Charge: $row->{'ChargeID'}; Payment: $row->{'PaymentID'}", }); $newdb{'lookup'}{'payment'}{$row->{'PaymentID'}}{'ledger_entry_id'} @@ -1408,248 +1432,8 @@ addRow('ledger_entries', }); - - ###################################################################### -## Fake Data for Testing - -my %fake = - ('customer_id' => 4, - 'ledger_id' => 4, - 'invoice' => [ { 'id' => 1000, - 'date' => '2009-05-05', - 'entry' => [ { 'id' => 2100, - 'account_name' => 'Security Deposit', - 'amount' => 10, - 'tax' => 0 }, - ], - }, - { 'id' => 1001, - 'date' => '2009-05-01', - 'thru' => '2009-05-31', - 'entry' => [ { 'id' => 2110, - 'account_name' => 'Rent', - 'amount' => 100, - 'tax' => 5 }, - ], - }, - { 'id' => 1002, - 'date' => '2009-05-11', - 'entry' => [ { 'id' => 2120, - 'account_name' => 'Late Charge', - 'amount' => 25, - 'tax' => 0 }, - ], - }, - ], - 'receipt' => [ { 'id' => 2000, - 'date' => '2009-05-15', - 'entry' => [ { 'id' => 2200, - 'track' => [ { 'debit'=>2100, 'amount'=>10 }, - { 'debit'=>2110, 'amount'=>5 } ], - 'type' => 1, - 'amount' => 15 }, - { 'id' => 2201, - 'track' => [ { 'debit'=>2110, 'amount'=>10 } ], - 'type' => 2, - 'amount' => 10 }, - { 'id' => 2202, - 'track' => [ { 'debit'=>2110, 'amount'=>5 } ], - 'type' => 3, - 'amount' => 5 }, - ], - }, - { 'id' => 2001, - 'date' => '2009-05-18', - 'entry' => [ { 'id' => 2210, - 'track' => [ { 'debit'=>2110, 'amount'=>30 } ], - 'type' => 5, - 'amount' => 30 }, - { 'id' => 2211, - 'track' => [ { 'debit'=>2110, 'amount'=>20 } ], - 'type' => 6, - 'amount' => 20 }, - ], - }, - { 'id' => 2002, - 'date' => '2009-05-22', - 'entry' => [ { 'id' => 2220, - 'track' => [ { 'debit'=>2110, 'amount'=>10 } ], - 'type' => 1, - 'amount' => 10 }, - { 'id' => 2221, - 'track' => [ { 'debit'=>2110, 'amount'=>5 } ], - 'type' => 2, - 'amount' => 5 }, - { 'id' => 2222, - 'track' => [ { 'debit'=>2110, 'amount'=>15 }, - { 'debit'=>2111, 'amount'=>5 }, - { 'debit'=>2120, 'amount'=>5 } ], - 'type' => 7, - 'amount' => 25 }, - { 'id' => 2223, - 'track' => [ { 'debit'=>2120, 'amount'=>20 } ], - 'type' => 8, - 'amount' => 30 }, - ], - }, - ], - - ); - -sub fakeTesting { - $newdb{'ids'}{'ledger'}{'Cash-Old'} = - $newdb{'lookup'}{'account'}{'Cash'}{'ledger_id'}; - - addRow('ledgers', - { 'account_id' => $newdb{'lookup'}{'account'}{'Cash'}{'account_id'}, - 'open_stamp' => 'NOW()', - 'sequence' => 2, - 'comment' => 'Opened new ledger for testing' }); - - $newdb{'lookup'}{'account'}{'Cash'}{'ledger_id'} = - $newdb{'tables'}{'ledgers'}{'autoid'}; - - my $balance = 0; - foreach $row (@{$newdb{'tables'}{'ledger_entries'}{'rows'}}) { - next unless defined $row; - $balance += $row->{'amount'} - if $row->{'debit_ledger_id'} == $newdb{'ids'}{'ledger'}{'Cash-Old'}; - $balance -= $row->{'amount'} - if $row->{'credit_ledger_id'} == $newdb{'ids'}{'ledger'}{'Cash-Old'}; - } - - addRow('transactions', - { 'stamp' => '2009-04-30' }); - - addRow('ledger_entries', - { 'monetary_source_id' => $newdb{'ids'}{'monetary_source'}{'internal'}, - 'transaction_id' => $newdb{'tables'}{'transactions'}{'autoid'}, - 'debit_ledger_id' => $newdb{'lookup'}{'account'}{'Cash'}{'ledger_id'}, - 'credit_ledger_id' => $newdb{'ids'}{'ledger'}{'Cash-Old'}, - 'amount' => $balance, - 'name' => "Close Out ($newdb{'ids'}{'ledger'}{'Cash-Old'} -> $newdb{'tables'}{'transactions'}{'autoid'})", - 'comment' => "Carrying forward old ledger balance onto new ledger" }); -# NOTE: no tracking for the Cash account - - $newdb{'tables'}{'ledgers'}{'rows'}[$newdb{'ids'}{'ledger'}{'Cash-Old'}]{'closed'} = 1; - $newdb{'tables'}{'ledgers'}{'rows'}[$newdb{'ids'}{'ledger'}{'Cash-Old'}]{'close_stamp'} = 'NOW()'; - - foreach my $ir ('invoice', 'receipt') { - foreach my $tx (@{$fake{$ir}}) { - #print Dumper ${%$tx{'date'}}; - #exit; - addRow('transactions', - { 'id' => $tx->{'id'}, - 'stamp' => $tx->{'date'}, - 'through_date' => $tx->{'thru'}, - 'comment' => "Fake $ir" }, - 1); - - foreach my $e (@{$tx->{'entry'}}) { - my $ircrdr = ($ir eq 'invoice') ? 'Invoice' : 'Receipt'; - my $dr = ($ir eq 'invoice') ? 'A/R' : 'Cash'; - my $cr = ($ir eq 'invoice') ? $e->{'account_name'} : 'A/R'; - my $crdr; - my $monetary_source_id; - - if (defined $e->{'type'}) { - addRow('monetary_sources', - { 'name' => "Money of type " . $e->{'type'}, - 'comment' => "Fake Money For " . $e->{'id'} }); - $monetary_source_id = $newdb{'tables'}{'monetary_sources'}{'autoid'}; - } - else { - $monetary_source_id = $newdb{'ids'}{'monetary_source'}{'internal'}; - } - - $crdr = $dr; - if ($use_ir) { - $crdr = $ircrdr; - addRow('ledger_entries', - { 'id' => $e->{'id'}+10000, - 'monetary_source_id' => ($ir eq 'invoice' ? undef : $monetary_source_id), - 'transaction_id' => $tx->{'id'}, - 'debit_ledger_id' => $newdb{'lookup'}{'account'}{$dr}{'ledger_id'}, - 'credit_ledger_id' => $newdb{'lookup'}{'account'}{$crdr}{'ledger_id'}, - 'customer_id' => $fake{'customer_id'}, - #'lease_id' => $fake{'lease_id'}, - 'amount' => $e->{'amount'}, - 'comment' => "Fake $ir entry" }, - 1); - } - - addRow('ledger_entries', - { 'id' => $e->{'id'}, - 'monetary_source_id' => ($ir eq 'invoice' ? $monetary_source_id : undef), - 'transaction_id' => $tx->{'id'}, - 'debit_ledger_id' => $newdb{'lookup'}{'account'}{$crdr}{'ledger_id'}, - 'credit_ledger_id' => $newdb{'lookup'}{'account'}{$cr}{'ledger_id'}, - 'customer_id' => $fake{'customer_id'}, - 'lease_id' => $fake{'lease_id'}, - 'amount' => $e->{'amount'}, - 'comment' => "Fake Entry" }, - 1); - - if ($use_ir) { - addRow('reconciliations', - { 'debit_ledger_entry_id' => $e->{'id'} + ($ir eq 'invoice' ? 10000 : 0), - 'credit_ledger_entry_id' => $e->{'id'} + ($ir eq 'invoice' ? 0 : 10000), - 'amount' => $e->{'amount'}, - }); - } - - foreach my $t (@{$e->{'track'}}) { - addRow('reconciliations', - { 'debit_ledger_entry_id' => $t->{'debit'}, - 'credit_ledger_entry_id' => $e->{'id'}, - 'amount' => $t->{'amount'} - }); - } - - next unless $e->{'tax'}; - - $crdr = $dr; - if ($use_ir) { - $crdr = $ircrdr; - addRow('ledger_entries', - { 'id' => $e->{'id'}+10001, - 'monetary_source_id' => ($ir eq 'invoice' ? undef : $monetary_source_id), - 'transaction_id' => $tx->{'id'}, - 'debit_ledger_id' => $newdb{'lookup'}{'account'}{$dr}{'ledger_id'}, - 'credit_ledger_id' => $newdb{'lookup'}{'account'}{$crdr}{'ledger_id'}, - 'customer_id' => $fake{'customer_id'}, - #'lease_id' => $fake{'lease_id'}, - 'amount' => $e->{'tax'}, - 'comment' => "Fake Tax Invoice Entry" }, - 1); - } - - addRow('ledger_entries', - { 'id' => $e->{'id'}+1, - 'monetary_source_id' => ($ir eq 'invoice' ? $monetary_source_id : undef), - 'transaction_id' => $tx->{'id'}, - 'debit_ledger_id' => $newdb{'lookup'}{'account'}{$crdr}{'ledger_id'}, - 'credit_ledger_id' => $newdb{'lookup'}{'account'}{'Tax'}{'ledger_id'}, - 'customer_id' => $fake{'customer_id'}, - 'lease_id' => $fake{'lease_id'}, - 'amount' => $e->{'tax'}, - 'comment' => "Fake Tax Entry" }, - 1); - - if ($use_ir) { - addRow('reconciliations', - { 'debit_ledger_entry_id' => $e->{'id'} + ($ir eq 'invoice' ? 10001 : 1), - 'credit_ledger_entry_id' => $e->{'id'} + ($ir eq 'invoice' ? 1 : 10001), - 'amount' => $e->{'tax'}, - }); - } - } - } - } -} - -#fakeTesting(); +## Build the Database $Data::Dumper::Sortkeys = 1; # print Dumper \%newdb; diff --git a/site/models/transaction.php b/site/models/transaction.php index 27f739a..6870b11 100644 --- a/site/models/transaction.php +++ b/site/models/transaction.php @@ -36,16 +36,6 @@ class Transaction extends AppModel { foreach ($data['LedgerEntry'] AS $entry) $grand_total += $entry['amount']; - $ids = $this->LedgerEntry->Ledger->Account->postLedgerEntry - (array_intersect_key($data, array('Transaction'=>1, 'transaction_id'=>1)), - null, - array('debit_ledger_id' => $A->currentLedgerID($A->accountReceivableAccountID()), - 'credit_ledger_id' => $A->currentLedgerID($A->invoiceAccountID()), - 'customer_id' => $customer_id, - 'lease_id' => $lease_id, - 'amount' => $grand_total)); - $ar_entry_id = $ids['id']; - // Go through the entered charges $invoice_transaction = array_intersect_key($data, array('Transaction'=>1, 'transaction_id'=>1)); foreach ($data['LedgerEntry'] AS $entry) { @@ -56,13 +46,11 @@ class Transaction extends AppModel { ($invoice_transaction, array_intersect_key($entry, array('MonetarySource'=>1)) + array_intersect_key($entry, array('account_id'=>1)), - array('debit_ledger_id' => $A->currentLedgerID($A->invoiceAccountID()), + array('debit_ledger_id' => $A->currentLedgerID($A->accountReceivableAccountID()), 'credit_ledger_id' => $A->currentLedgerID($entry['account_id']), 'customer_id' => $customer_id, 'lease_id' => $lease_id) - + $entry, - array('debit' => array(array('LedgerEntry' => array('id' => $ar_entry_id, - 'amount' => $entry['amount'])))) + + $entry ); if ($ids['error'])