Files @ 3cc181b24a64
Branch filter:

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

xnox
Fix negative bugs

Signed-off-by: Dimitri John Ledkov <xnox@spi-inc.org>
; -*- 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 every 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.