564 lines
12 KiB
XML
564 lines
12 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>$archiver</key>
|
|
<string>NSKeyedArchiver</string>
|
|
<key>$objects</key>
|
|
<array>
|
|
<string>$null</string>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>37</integer>
|
|
</dict>
|
|
<key>NS.objects</key>
|
|
<array>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>2</integer>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>33</integer>
|
|
</dict>
|
|
<key>NS.keys</key>
|
|
<array>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>3</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>4</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>5</integer>
|
|
</dict>
|
|
</array>
|
|
<key>NS.objects</key>
|
|
<array>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>6</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>7</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>35</integer>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<string>Title</string>
|
|
<string>Text</string>
|
|
<string>Date</string>
|
|
<string>Untitled Snapshot</string>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>34</integer>
|
|
</dict>
|
|
<key>NSAttributes</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>10</integer>
|
|
</dict>
|
|
<key>NSDelegate</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>0</integer>
|
|
</dict>
|
|
<key>NSString</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>8</integer>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>9</integer>
|
|
</dict>
|
|
<key>NS.string</key>
|
|
<string>There are situations when the accounts you're tracking are different
|
|
between your clients and the financial institutions where money is
|
|
kept. An example of this is working as the treasurer for a religious
|
|
institution. From the secular point of view, you might be working
|
|
with three different accounts:
|
|
|
|
@itemize
|
|
@item Checking
|
|
@item Savings
|
|
@item Credit Card
|
|
@end itemize
|
|
|
|
From a religious point of view, the community expects to divide its
|
|
resources into multiple ``funds'', from which it makes purchases or
|
|
reserves resources for later:
|
|
|
|
@itemize
|
|
@item School fund
|
|
@item Building fund
|
|
@item Community fund
|
|
@end itemize
|
|
|
|
The problem with this kind of setup is that when you spend money, it
|
|
comes from two or more places at once: the account and the fund. And
|
|
yet, the correlation of amounts between funds and accounts is rarely
|
|
one-to-one. What if the school fund has @samp{$500.00}, but
|
|
@samp{$400.00} of that comes from Checking, and @samp{$100.00} from
|
|
Savings?
|
|
|
|
Traditional finance packages require that the money reside in only one
|
|
place. But there are really two ``views'' of the data: from the
|
|
account point of view and from the fund point of view -- yet both sets
|
|
should reflect the same overall expenses and cash flow. It's simply
|
|
where the money resides that differs.
|
|
|
|
This situation can be handled one of two ways. The first is using
|
|
virtual postings to represent the fact that money is moving to and
|
|
from two kind of accounts at the same time:
|
|
|
|
@smallexample
|
|
2004/03/20 Contributions
|
|
Assets:Checking $500.00
|
|
Income:Donations
|
|
|
|
2004/03/25 Distribution of donations
|
|
[Funds:School] $300.00
|
|
[Funds:Building] $200.00
|
|
[Assets:Checking] $-500.00
|
|
@end smallexample
|
|
|
|
The use of square brackets in the second transaction ensures that the
|
|
virtual postings balance to zero. Now money can be spent directly
|
|
from a fund at the same time as money is drawn from a physical
|
|
account:
|
|
|
|
@smallexample
|
|
2004/03/25 Payment for books (paid from Checking)
|
|
Expenses:Books $100.00
|
|
Assets:Checking $-100.00
|
|
(Funds:School) $-100.00
|
|
@end smallexample
|
|
|
|
When reports are generated, by default they'll appear in terms of the
|
|
funds. In this case, you will likely want to mask out your
|
|
@samp{Assets} account, because otherwise the balance won't make much
|
|
sense:
|
|
|
|
@example
|
|
ledger bal -^Assets
|
|
@end example
|
|
|
|
If the @option{--real} option is used, the report will be in terms of
|
|
the real accounts:
|
|
|
|
@example
|
|
ledger --real bal
|
|
@end example
|
|
|
|
If more asset accounts are needed as the source of a posting, just
|
|
list them as you would normally, for example:
|
|
|
|
@smallexample
|
|
2004/03/25 Payment for books (paid from Checking)
|
|
Expenses:Books $100.00
|
|
Assets:Checking $-50.00
|
|
Liabilities:Credit Card $-50.00
|
|
(Funds:School) $-100.00
|
|
@end smallexample
|
|
|
|
The second way of tracking funds is to use transaction codes. In this
|
|
respect the codes become like virtual accounts that embrace the entire
|
|
set of postings. Basically, we are associating a transaction with a
|
|
fund by setting its code. Here are two transactions that desposit money
|
|
into, and spend money from, the @samp{Funds:School} fund:
|
|
|
|
@smallexample
|
|
2004/03/25 (Funds:School) Donations
|
|
Assets:Checking $100.00
|
|
Income:Donations
|
|
|
|
2004/04/25 (Funds:School) Payment for books
|
|
Expenses:Books $50.00
|
|
Assets:Checking
|
|
@end smallexample
|
|
|
|
Note how the accounts now relate only to the real accounts, and any
|
|
balance or registers reports will reflect this. That the transactions
|
|
relate to a particular fund is kept only in the code.
|
|
|
|
How does this become a fund report? By using the
|
|
@option{--code-as-payee} option, you can generate a register report
|
|
where the payee for each posting shows the code. Alone, this is
|
|
not terribly interesting; but when combined with the
|
|
@option{--by-payee} option, you will now see account subtotals for any
|
|
postings related to a specific fund. So, to see the current
|
|
monetary balances of all funds, the command would be:
|
|
|
|
@smallexample
|
|
ledger --code-as-payee -P reg ^Assets
|
|
@end smallexample
|
|
|
|
Or to see a particular funds expenses, the @samp{School} fund in this
|
|
case:
|
|
|
|
@smallexample
|
|
ledger --code-as-payee -P reg ^Expenses -- School
|
|
@end smallexample
|
|
|
|
Both approaches yield different kinds of flexibility, depending on how
|
|
you prefer to think of your funds: as virtual accounts, or as tags
|
|
associated with particular transactions. Your own tastes will decide which
|
|
is best for your situation.</string>
|
|
</dict>
|
|
<dict>
|
|
<key>$classes</key>
|
|
<array>
|
|
<string>NSMutableString</string>
|
|
<string>NSString</string>
|
|
<string>NSObject</string>
|
|
</array>
|
|
<key>$classname</key>
|
|
<string>NSMutableString</string>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>33</integer>
|
|
</dict>
|
|
<key>NS.keys</key>
|
|
<array>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>11</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>12</integer>
|
|
</dict>
|
|
</array>
|
|
<key>NS.objects</key>
|
|
<array>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>13</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>30</integer>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<string>NSParagraphStyle</string>
|
|
<string>NSFont</string>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>29</integer>
|
|
</dict>
|
|
<key>NSAlignment</key>
|
|
<integer>4</integer>
|
|
<key>NSLineHeightMultiple</key>
|
|
<real>1.1000000238418579</real>
|
|
<key>NSTabStops</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>14</integer>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>28</integer>
|
|
</dict>
|
|
<key>NS.objects</key>
|
|
<array>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>15</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>17</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>18</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>19</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>20</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>21</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>22</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>23</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>24</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>25</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>26</integer>
|
|
</dict>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>27</integer>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>28</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$classes</key>
|
|
<array>
|
|
<string>NSTextTab</string>
|
|
<string>NSObject</string>
|
|
</array>
|
|
<key>$classname</key>
|
|
<string>NSTextTab</string>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>56</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>84</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>112</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>140</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>168</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>196</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>224</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>252</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>280</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>308</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<key>NSLocation</key>
|
|
<real>336</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$classes</key>
|
|
<array>
|
|
<string>NSArray</string>
|
|
<string>NSObject</string>
|
|
</array>
|
|
<key>$classname</key>
|
|
<string>NSArray</string>
|
|
</dict>
|
|
<dict>
|
|
<key>$classes</key>
|
|
<array>
|
|
<string>NSParagraphStyle</string>
|
|
<string>NSObject</string>
|
|
</array>
|
|
<key>$classname</key>
|
|
<string>NSParagraphStyle</string>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>32</integer>
|
|
</dict>
|
|
<key>NSName</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>31</integer>
|
|
</dict>
|
|
<key>NSSize</key>
|
|
<real>14</real>
|
|
<key>NSfFlags</key>
|
|
<integer>16</integer>
|
|
</dict>
|
|
<string>Courier</string>
|
|
<dict>
|
|
<key>$classes</key>
|
|
<array>
|
|
<string>NSFont</string>
|
|
<string>NSObject</string>
|
|
</array>
|
|
<key>$classname</key>
|
|
<string>NSFont</string>
|
|
</dict>
|
|
<dict>
|
|
<key>$classes</key>
|
|
<array>
|
|
<string>NSDictionary</string>
|
|
<string>NSObject</string>
|
|
</array>
|
|
<key>$classname</key>
|
|
<string>NSDictionary</string>
|
|
</dict>
|
|
<dict>
|
|
<key>$classes</key>
|
|
<array>
|
|
<string>KBWordCountingTextStorage</string>
|
|
<string>NSTextStorage</string>
|
|
<string>NSMutableAttributedString</string>
|
|
<string>NSAttributedString</string>
|
|
<string>NSObject</string>
|
|
</array>
|
|
<key>$classname</key>
|
|
<string>KBWordCountingTextStorage</string>
|
|
</dict>
|
|
<dict>
|
|
<key>$class</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>36</integer>
|
|
</dict>
|
|
<key>NS.time</key>
|
|
<real>267380389.33141401</real>
|
|
</dict>
|
|
<dict>
|
|
<key>$classes</key>
|
|
<array>
|
|
<string>NSDate</string>
|
|
<string>NSObject</string>
|
|
</array>
|
|
<key>$classname</key>
|
|
<string>NSDate</string>
|
|
</dict>
|
|
<dict>
|
|
<key>$classes</key>
|
|
<array>
|
|
<string>NSMutableArray</string>
|
|
<string>NSArray</string>
|
|
<string>NSObject</string>
|
|
</array>
|
|
<key>$classname</key>
|
|
<string>NSMutableArray</string>
|
|
</dict>
|
|
</array>
|
|
<key>$top</key>
|
|
<dict>
|
|
<key>Snapshots</key>
|
|
<dict>
|
|
<key>CF$UID</key>
|
|
<integer>1</integer>
|
|
</dict>
|
|
</dict>
|
|
<key>$version</key>
|
|
<integer>100000</integer>
|
|
</dict>
|
|
</plist>
|