Files @ 8aa83cee1e89
Branch filter:

Location: NPO-Accounting/npo-ledger-cli/accounts/config/config-tags.ledger - annotation

bkuhn
E.g. of invoice for conference w/ split IncomeType

An example of an invoice for a conference where the income type is split
between RBI and Donations. Include a ledger reporting example that
shows the total of donations, and explain in the documentation why
that's useful.
; -*- 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 =~ /^((Foo|Main Org):(Overhead|Direct Fundraising|Software:Internal|Conference.*))$/


; 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$/