diff options
Diffstat (limited to 'balance.cc')
-rw-r--r-- | balance.cc | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/balance.cc b/balance.cc deleted file mode 100644 index 0cf5305f..00000000 --- a/balance.cc +++ /dev/null @@ -1,128 +0,0 @@ -#include "ledger.h" - -#include <unistd.h> - -namespace ledger { - -extern bool show_cleared; -extern bool show_virtual; -extern bool show_children; -extern bool show_empty; -extern bool show_subtotals; -extern bool full_names; -extern bool get_quotes; - -extern std::time_t begin_date; -extern bool have_beginning; -extern std::time_t end_date; -extern bool have_ending; - -static void display_total(std::ostream& out, totals& balance, - account * acct, bool top_level) -{ - bool displayed = false; - - if (acct->checked == 1 && - (show_empty || ! acct->balance.is_zero())) { - displayed = true; - - acct->balance.print(out, 20); - if (show_subtotals && top_level) - balance.credit(acct->balance); - - if (acct->parent && ! full_names && ! top_level) { - for (const account * a = acct; a; a = a->parent) - out << " "; - out << acct->name << std::endl; - } else { - out << " " << acct->as_str() << std::endl; - } - } - - // Display balances for all child accounts - - for (accounts_map_iterator i = acct->children.begin(); - i != acct->children.end(); - i++) - display_total(out, balance, (*i).second, ! displayed); -} - -////////////////////////////////////////////////////////////////////// -// -// Balance reporting code -// - -void report_balances(std::ostream& out, regexps_map& regexps) -{ - // Walk through all of the ledger entries, computing the account - // totals - - for (entries_list_iterator i = main_ledger->entries.begin(); - i != main_ledger->entries.end(); - i++) { - if ((have_beginning && difftime((*i)->date, begin_date) < 0) || - (have_ending && difftime((*i)->date, end_date) >= 0) || - (show_cleared && ! (*i)->cleared)) - continue; - - for (std::list<transaction *>::iterator x = (*i)->xacts.begin(); - x != (*i)->xacts.end(); - x++) { - if (! show_virtual && (*x)->is_virtual) - continue; - - for (account * acct = (*x)->acct; - acct; - acct = show_subtotals ? acct->parent : NULL) { - if (acct->checked == 0) { - if (regexps.empty()) { - if (! (show_children || ! acct->parent)) - acct->checked = 2; - else - acct->checked = 1; - } - else { - bool by_exclusion; - bool match = matches(regexps, acct->as_str(), - &by_exclusion); - if (! match) { - acct->checked = 2; - } - else if (by_exclusion) { - if (! (show_children || ! acct->parent)) - acct->checked = 2; - else - acct->checked = 1; - } - else { - acct->checked = 1; - } - } - } - - if (acct->checked == 1) - acct->balance.credit((*x)->cost->street(get_quotes)); - } - } - } - - // Walk through all the top-level accounts, giving the balance - // report for each, and then for each of their children. - - totals balance; - - for (accounts_map_iterator i = main_ledger->accounts.begin(); - i != main_ledger->accounts.end(); - i++) - display_total(out, balance, (*i).second, true); - - // Print the total of all the balances shown - - if (show_subtotals && ! balance.is_zero()) { - out << "--------------------" << std::endl; - balance.print(out, 20); - out << std::endl; - } -} - -} // namespace ledger |