Commit graph

262 commits

Author SHA1 Message Date
Craig Earls
fa46f3442d fix rare bug in balance report output if the budgeted amount happens to be zero.
See emails in group from John Rakestraw circa November 2011
2014-08-24 18:40:00 -07:00
John Wiegley
07b206bf6a Add the --no-pager option 2014-04-27 20:30:21 -05:00
Alexis Hildebrandt
2b9208e850 Bump copyright information to 2014 2014-02-02 12:36:22 +01:00
Steve Purcell
d7742cd654 Commodity column in default CSV format should match the displayed amount
If one uses --exchange to force CSV display amounts into a particular
currency, then the commodity output column should match that currency.

Without this patch, the commodity column contains the original
commodity, not the commodity for the exported amount.
2014-01-06 17:37:04 +00:00
John Wiegley
0951bcebef Bump copyright information to 2013 2013-02-18 06:51:21 -06:00
Craig Earls
0df1366168 Bug 634 Added roundto function, optimized floor and ceiling
Fixes Bug634 by adding roundto(amount, places).
2013-01-30 15:35:31 -07:00
Craig Earls
3e72a51dc3 Addes tags command and --values option
Tags command reports all metadat tags in use.  With the
values option it reports tags and their values.
2013-01-29 09:42:10 -07:00
Craig Earls
b044a74bd3 Bug 634 and 488, Corrected behavior of floor, and added ceiling
This is only a partial fix for 634, since rounding is not fixed.
2012-10-25 22:28:26 -07:00
Hyrum Wright
6ccb5e9687 Fix compilation warning: be sure we call the base class copy constructor. 2012-08-14 01:23:04 -04:00
John Wiegley
4681e58d7f Converted the Ledger build system to use CMake 2012-05-20 04:48:05 -05:00
John Wiegley
f4f3058b8c Switch to using Boost.Format 2012-05-14 21:44:00 -06:00
John Wiegley
1cc618a956 Added a * for cleared entries in the time report 2012-05-10 04:03:32 -05:00
John Wiegley
ad7ace902c Allow --invert to work with --monthly
Fixes #770
2012-04-06 01:32:38 -05:00
John Wiegley
f9088f8836 Added --verify-memory and missing TRACE_[CD]TOR calls 2012-03-18 01:01:30 -05:00
John Wiegley
00ff141ee7 Always close the last report output stream
Should fix #701
2012-03-16 15:31:30 -05:00
John Wiegley
c4e942fcb1 Change abbrev_len to int(abbrev_len) 2012-03-13 10:34:51 -05:00
John Wiegley
c8dd3d28e3 Added --time-report option
This is a rather basic option at the moment which only affects the
balance report.  I use it as follows, for entering contractor hours into
a project planning application, where $1 is the contractor's timelog
file, and $2 is the date after which new entries appear in the file:

    ledger -f $1 balance                            \
           --account=payee                          \
           --time-report                            \
           -d "latest > [$2]"                       \
           --datetime-format='%m/%d/%y %I:%M %p'
2012-03-13 03:45:06 -05:00
John Wiegley
cb317f9d39 Added format_datetime valexpr function 2012-03-13 03:40:16 -05:00
John Wiegley
2a4d7e1af0 Added --immediate option 2012-03-10 21:58:28 -06:00
John Wiegley
860610fdaf Added --dc option, for debit/credit style reports 2012-03-10 21:34:51 -06:00
John Wiegley
929a734a30 -H now implies -V 2012-03-09 07:02:34 -06:00
John Wiegley
59f5ebe2df Reworked the way that options are handled 2012-03-09 03:51:53 -06:00
John Wiegley
113fb0ee6a Added --historical option 2012-03-08 01:00:16 -06:00
John Wiegley
21e8b7f6f0 Added nail_down() for pinning market value exprs 2012-03-08 00:55:06 -06:00
John Wiegley
7e250696e0 Many options now have additive effect
For example, -A and -V used to override each other, whereas now:

  -A    report the average amount
  -V    report all amounts at current value
  -AV   report the current value of the average
  -VA   report the average of all current values
2012-03-07 12:46:46 -06:00
John Wiegley
b1107f85ae Removed value_t::price and balance_t::price 2012-03-07 10:32:24 -06:00
John Wiegley
dc9ecc600a Guard against double-freeing of report objects 2012-03-05 15:17:59 -06:00
John Wiegley
e2afc783db Increased file copyrights to 2012 2012-02-29 22:32:23 -06:00
John Wiegley
656e46e182 Renamed actual/effective dates to primary/auxiliary 2012-02-28 03:02:16 -06:00
John Wiegley
aa9b07d79b Added --rich-data for 'convert', and SHA1 checksum checking 2012-02-26 15:45:15 -06:00
John Wiegley
4a18317e7c Added --auto-match option, for use with 'convert' 2012-02-26 02:16:09 -06:00
John Wiegley
37e9ec8030 Report an error in the case of '(1' (missing rparen)
Fixes #557
2011-11-10 00:48:19 -06:00
John Wiegley
8c4e145c57 Added round() and unround() valexpr functions 2011-10-24 15:22:18 -05:00
John Wiegley
f0791bbd72 Cleanup whitespace 2011-08-18 14:48:38 -04:00
John Wiegley
dafe7c891a Added "top_amount" value expr function 2010-12-22 15:32:34 -05:00
John Wiegley
bd5a136ad0 Move balance divider right by prepend-width 2010-06-26 00:36:55 -04:00
John Wiegley
8a29c03490 Added "format" value expression function
This function evaluates formatting strings, returning a string.  For
example:

  format("%(amount)")

This is equivalent to "to_string(amount)".
2010-06-24 20:37:31 -04:00
John Wiegley
2f50e30b89 Scopes can now provide a description of themselves
This isn't being used yet, but it likely will to improve the information
presented to users if their value expressions fail to compile or
evaluate.
2010-06-24 19:53:59 -04:00
John Wiegley
e8e28c794b Added report query modifiers: for, since, until
Now instead of ledger reg expense -p "this month", you can say:

  ledger reg expense for this month

And as a shorthand for "for until this month", you can just say "until
this month" or "since this month".
2010-06-22 21:56:19 -04:00
John Wiegley
81bf38584e Added new --bold-if option 2010-06-22 01:27:05 -04:00
John Wiegley
963161a817 bal was sometimes reporting empty accounts 2010-06-21 18:32:03 -04:00
John Wiegley
9205809d49 Fixed register formatting of postings with payees 2010-06-18 07:27:35 -04:00
John Wiegley
5da1e7756d Added new option --inject=KEY[,KEY...]
If you have a typed metadata key which contains an amount, you can use
--inject=KEY to inject a posting with that amount wherever a match
occurs.  There are two main forms of usage:

  2010-06-18 Sample
      ; Key:: $100
      Expenses:Food                $100.00
      Assets:Checking

The command would be:

  ledger reg --inject=Key

In the above, transactional form, a posting under the account "Key" will
be injected before the first posting reported for this transaction.
It's amount will be $100.  This only happens once for the whole
transaction.

It is also possible to associate the key with a posting:

  2010-06-18 Sample
      Expenses:Food                $100.00
      ; Key:: $100
      Assets:Checking

Now the injected posting is generated whenever that particular post is
reported.
2010-06-18 02:28:12 -04:00
John Wiegley
31e8ed7587 Individual postings may each have their own payee
If a posting has the metadata field "Payee" set to a string, that will
be used as the payee name for that posting.  This affects the register
report, the payees report, and the --by-payee option.

This is useful because sometimes I send, say, 4 checks at a time to my
bank.  So on my bank statement, this is all just one amount:

   2010-06-17 Sample
     Assets:Bank        $400.00
     Income:Check1     $-100.00
     Income:Check2     $-100.00
     Income:Check3     $-100.00
     Income:Check4     $-100.00

Though it's important that the Assets:Bank posting be a single posting
of $400 value, I'd like for income reports to show whom each check came
from.  Now I can say:

   2010-06-17 Sample
     Assets:Bank        $400.00
     Income:Check1     $-100.00  ; Payee: Person One
     Income:Check2     $-100.00  ; Payee: Person Two
     Income:Check3     $-100.00  ; Payee: Person Three
     Income:Check4     $-100.00  ; Payee: Person Four

When I report this, it appears as:

10-Jun-17 Sample             Assets:Bank             $400.00     $400.00
          Person One         Income:Check1          $-100.00     $300.00
          Person Two         Income:Check2          $-100.00     $200.00
          Person Three       Income:Check3          $-100.00     $100.00
          Person Four        Income:Check4          $-100.00           0

This shows that they are all in the same transaction (which is why the
date is not repeated), but they have different payees.
2010-06-17 23:42:23 -04:00
John Wiegley
34fcc62b4d Removed unused --unsorted option 2010-06-15 04:34:16 -04:00
John Wiegley
dcffd218a1 Revised how Ledger handles the "current year"
Now when the Y directive sets the current year for a region, it affects
everything, as if the clock really were set back to that year.
2010-06-14 03:23:09 -04:00
John Wiegley
ea1642b3f9 Completely reworked argument passing in expressions 2010-06-13 05:02:14 -04:00
John Wiegley
536e3e7322 Added a new scope_value() inline helper function 2010-06-13 01:03:48 -04:00
John Wiegley
0555e7f61e Improved value expression function 'commodity'
Without arguments -- and in a posting -- it is equivalent to
"commodity(amount)".  Otherwise, it returns the commodity symbol of its
argument.
2010-06-12 14:58:44 -04:00
John Wiegley
dea2aed0b5 Untabified all source files 2010-06-11 17:02:25 -04:00