; -*- ledger -*-
; -*- coding: utf-8 -*-
;
; config-tags.ledger: The Ledger CLI tag 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
; ################################# 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 =~ /[^\/][^ ]+(\/[^ ])+/
; IncomeType refers to the types of income a non-profit can receive. In this
; example, it's for the categorizations on the USA Form 990. This could be
; changed to accomodate other jurisdictions around the world.
tag IncomeType
assert value =~ /^(Donations|RBI|UBTI)$/
; Program tag must match the general format of a ledger account as an
; assertion, but we at least check known names of programs, so that warnings
; are produced if a new program never seen before is encountered.
tag Program
assert value =~ /[ A-z0-9\-]+(:[ A-z0-9\-]+)*/
check value =~ /^(Main Org:(Overhead|Direct Fundraising))$/
; Entity tag is just a string, but shouldn't have spaces, just letters,
; numbers and dashes.
tag Entity
assert value =~ /[ A-z0-9\-]+(:[ A-z0-9\-]+)*/
tag TaxImplication
assert value =~ /^W2|1099|Accountant-Advises-No-1099|Bank-Transfer|Foreign-Corporation|Foreign-Individual-Contractor|Payroll|Refund|Reimbursement|Tax-Payment|USA-501c3|USA-Corporation|USA-LLC-No-1099$/