npo-ledger-cli/accounts/config/config-accounts.ledger
Bradley M. Kuhn 18a4125ff7 Initial documentation for Income accounts, including tagging requirements.
Implemented in the config-accounts.ledger is an incomeChecker() function that
matches the documentation requirements.
2013-05-10 17:04:15 -04:00

88 lines
3.2 KiB
Text

; -*- ledger -*-
; -*- coding: utf-8 -*-
;
; config-accounts.ledger: The Ledger CLI accounts declarations for NPO use-case.
;
; 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
; ############################## GENERAL/SHARED ACCOUNTS #######################
; Shared Asset Accounts
define assetChecker(amt) = (amt > -10.00 or (tag("TaxImplication") !~ /^\s*$/ and tag("Entity") !~ /^\s*$/))
account Asset:Checking
assert assetChecker(amount)
note Checking account for entire organization
assert commodity == "$"
; Shared Liabilities Accounts
account Liabilities:Credit Card:Visa
note Visa Credit Card account for entire organization
assert commodity == "$"
; Organizational accrual accounts
account Accrued:Accounts Receivable:Main Org
note Accrued receivables for Main Org
assert commodity == "$"
account Accrued:Accounts Payable:Main Org
note Accrued payables for Main Org
assert commodity == "$"
; Organizational 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*$/) and tag("Program") !~ /^\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
account Expense:Main Org:Hosting
assert expenseChecker() or payee =~ /NEVER CHARGED/
note Main Organization's Network Hosting Provider services
account Expense:Main Org:Development
assert expenseChecker() or payee =~ /NEVER CHARGED/
note Main Organization's software development expenses
account Expense:Main Org:Occupancy
assert expenseChecker() or payee =~ /NEVER CHARGED/
note Main Organization's Occupancy for Office Space and the like
; Organizational Income Accounts
define incomeChecker(amt) = (tag("Entity") !~ /^\s*$/ or (amt > -800.00 and amt < 800.00)) and tag("IncomeType") !~ /^\s*$/ and tag("Program") !~ /^\s*$/
account Income:Main Org:Donations
assert incomeChecker(amount) and tag("IncomeType") =~ /^Donations$/
note Donation income to the Main Org.