2013-04-20 18:37:07 +00:00
|
|
|
; -*- ledger -*-
|
|
|
|
; -*- coding: utf-8 -*-
|
|
|
|
;
|
|
|
|
; Copyright © 2013, Bradley M. Kuhn.
|
|
|
|
;
|
|
|
|
; The copyright holders wish that this document could be placed into the
|
|
|
|
; public domain. However, should such a public domain dedication not be
|
|
|
|
; possible, the copyright holders grant a waiver and/or license under the
|
|
|
|
; terms of CC0-1.0, as published by Creative Commons, Inc. A copy of CC0-1.0
|
|
|
|
; can be found in the same repository as this README.md file under the
|
|
|
|
; filename CC0-1.0.txt. If this document has been separated from the
|
|
|
|
; repository, a [copy of CC0-1.0 can be found on Creative Commons' website at
|
|
|
|
; http://creativecommons.org/publicdomain/zero/1.0/legalcode
|
|
|
|
|
|
|
|
; ############################## COMMODITIES #############################
|
|
|
|
|
|
|
|
commodity $
|
|
|
|
note USD
|
|
|
|
format $1,000.00
|
|
|
|
nomarket
|
|
|
|
|
2013-04-29 20:09:29 +00:00
|
|
|
; ################################# TAGS ################################
|
|
|
|
|
|
|
|
; The Statement, Receipt, and Invoice tags' values should always a be a
|
|
|
|
; relative path names. Note that we "check", but do not "assert" that the
|
|
|
|
; file name match a standard Unix-like path syntax, without spaces in the
|
|
|
|
; file name.
|
|
|
|
|
|
|
|
tag Statement
|
|
|
|
assert value =~ /[^\/].+/
|
|
|
|
check value =~ /[^\/][^ ]+(\/[^ ])+/
|
|
|
|
|
|
|
|
tag Receipt
|
|
|
|
assert value =~ /[^\/].+/
|
|
|
|
check value =~ /[^\/][^ ]+(\/[^ ])+/
|
|
|
|
|
|
|
|
tag Invoice
|
|
|
|
assert value =~ /[^\/].+/
|
|
|
|
check value =~ /[^\/][^ ]+(\/[^ ])+/
|
2013-04-20 18:37:07 +00:00
|
|
|
|
2013-04-29 17:52:07 +00:00
|
|
|
; ############################## GENERAL/SHARED ACCOUNTS #######################
|
2013-04-20 18:37:07 +00:00
|
|
|
|
|
|
|
; Shared Asset Accounts
|
|
|
|
|
|
|
|
account Asset:Checking
|
|
|
|
note Checking account for entire organization
|
|
|
|
assert commodity == "$"
|
|
|
|
|
2013-04-29 20:01:36 +00:00
|
|
|
; Shared Liabilities Accounts
|
|
|
|
|
|
|
|
account Liabilities:Credit Card:Visa
|
|
|
|
note Visa Credit Card account for entire organization
|
|
|
|
assert commodity == "$"
|
|
|
|
|
|
|
|
|
2013-04-20 18:37:07 +00:00
|
|
|
; Organizational accrual accounts
|
|
|
|
|
|
|
|
|
Basic organizational expense accounts, with a tester function for assert.
Note that Expense account entries need to be tagged with an Invoice, Receipt,
or Statement tag (those tag declarations will be added in next commit).
payee with "NEVER CHARGED"
==========================
The only exception is when the payee has been modified to indicate that the
expense was "NEVER CHARGED". This was a special-case we encountered where we
were expecting something, they never invoiced us, and it turns out the thing
to be invoiced for never happened.
Typically, we'd just remove the entry from the Ledger file, and allow the VCS
to log the fact that we thought we'd be charged and weren't. However, in
this case, the expense had been post-audit and therefore was a permanent
fixture on our books. Changing the payee allowed it to pass checks.
However, going forward, we'd likely never enter anything the ledger UNTIL we
had real proof via an Invoice, Receipt or Statement that showed the Expense
did/should occur.
2013-04-29 19:15:10 +00:00
|
|
|
; Organization Expense Accounts
|
|
|
|
|
|
|
|
; NOTE: the payee =~ test is *not* included herein and must be cut-and-pasted
|
|
|
|
; to the assert in ever Expense account because of the following bug:
|
|
|
|
; http://bugs.ledger-cli.org/show_bug.cgi?id=953
|
|
|
|
|
|
|
|
define expenseChecker() = (tag("Receipt") !~ /^\s*$/ or tag("Invoice") !~ /^\s*$/ or tag("Statement") !~ /^\s*$/)
|
|
|
|
; or payee =~ /NEVER CHARGED/
|
|
|
|
|
|
|
|
account Expense:Main Org:Office Supplies
|
|
|
|
assert expenseChecker() or payee =~ /NEVER CHARGED/
|
|
|
|
note Main Organization's Office Supplies and Sundries
|
|
|
|
|
|
|
|
account Expense:Main Org:Payroll:Salary
|
|
|
|
assert expenseChecker() or payee =~ /NEVER CHARGED/
|
|
|
|
note Main Organization's Staff Salaries
|
|
|
|
|
|
|
|
account Expense:Main Org:Payroll:Benefits
|
|
|
|
assert expenseChecker() or payee =~ /NEVER CHARGED/
|
|
|
|
note Main Organization's Staff Benefits
|
|
|
|
|
|
|
|
account Expense:Main Org:Phones
|
|
|
|
assert expenseChecker() or payee =~ /NEVER CHARGED/
|
|
|
|
note Main Organization's Phone Expenses
|
|
|
|
|
2013-04-29 19:41:44 +00:00
|
|
|
account Expense:Main Org:Hosting
|
|
|
|
assert expenseChecker() or payee =~ /NEVER CHARGED/
|
|
|
|
note Main Organization's Network Hosting Provider services
|
|
|
|
|
Basic organizational expense accounts, with a tester function for assert.
Note that Expense account entries need to be tagged with an Invoice, Receipt,
or Statement tag (those tag declarations will be added in next commit).
payee with "NEVER CHARGED"
==========================
The only exception is when the payee has been modified to indicate that the
expense was "NEVER CHARGED". This was a special-case we encountered where we
were expecting something, they never invoiced us, and it turns out the thing
to be invoiced for never happened.
Typically, we'd just remove the entry from the Ledger file, and allow the VCS
to log the fact that we thought we'd be charged and weren't. However, in
this case, the expense had been post-audit and therefore was a permanent
fixture on our books. Changing the payee allowed it to pass checks.
However, going forward, we'd likely never enter anything the ledger UNTIL we
had real proof via an Invoice, Receipt or Statement that showed the Expense
did/should occur.
2013-04-29 19:15:10 +00:00
|
|
|
account Expense:Main Org:Occupancy
|
|
|
|
assert expenseChecker() or payee =~ /NEVER CHARGED/
|
|
|
|
note Main Organization's Occupancy for Office Space and the like
|