1# Environment for ledger expenses 2 3[ $(whoami) == "adamsrl" ] \ 4 && export LEDGER_HOME="/home/adamsrl/AdamsInfoServ/BusinessDocuments/Ledger/AdamsRussell" \ 5 || export LEDGER_HOME="/home/Heather/AdamsRussell" 6 7[ $(hostname) == "cardamom" ] \ 8 && export LEDGER_BIN="${LEDGER_HOME}/ledger" \ 9 || export LEDGER_BIN="${LEDGER_HOME}/ledger.exe" 10 11[ $(whoami) == "andersonll" ] \ 12 && export LEDGER_HOME="/home/andersonll/AdamsInfoServ/Expenses" \ 13 && export LEDGER_BIN="${LEDGER_HOME}/ledger" 14 15# Common reports 16 17alias ledger='${LEDGER_BIN} -f "${LEDGER_HOME}/.ledger" -VE ' 18alias ERSummary='ledger --pivot ER bal | egrep "AIS(ER|IN)[0-9]+|Unassigned"' 19 20function ERTxns() { 21 [ -z "$1" ] && echo "Please specify an ER number (ie: AISER0042)." && return 22 23 ledger reg "%ER=${1}" 24} 25 26function ERCategorySummary() { 27 [ -z "$1" ] && echo "Please specify an ER number (ie: AISER0042)." && return 28 29 ledger bal --pivot CATEGORY "%ER=${1}" 30} 31 32function ERMealSummary() { 33 [ -z "$1" ] && echo "Please specify an ER number (ie: AISER0042)." && return 34 35 ledger reg "%ER=${1}" and %CATEGORY=Meals -D 36} 37 38function ERMeals() { 39 [ -z "$1" ] && echo "Please specify an ER number (ie: AISER0042)." && return 40 41 ledger reg "%ER=${1}" and %CATEGORY=Meals 42} 43 44function ERUncleared() { 45 [ -z "$1" ] && echo "Please specify an ER number (ie: AISER0042)." && return 46 47 ledger reg "%ER=${1}" -U 48} 49 50function ERMissingReceipts() { 51 [ -z "$1" ] && echo "Please specify an ER number (ie: AISER0042)." && return 52 53 ledger reg "%ER=${1}" and not %RECEIPT 54} 55 56function ERVerify() { 57 [ -z "$1" ] && echo "Please specify an ER number (ie: AISER0042)." && return 58 59 echo "========== Uncleared txns below ==========" 60 ERUncleared "$1" 61 echo "========== Missing receipts below (miles and stubs ok) ==========" 62 ERMissingReceipts "$1" 63 echo "========== Category Summary (airline? mileage? car? hotel? ==========" 64 ERCategorySummary "$1" 65 echo "========== Meal summary (<\$50 / day unless otherwise specified) ==========" 66 ERMealSummary "$1" 67 echo "========== Account Verification (Internal vs Project ER should be ONE type) ==========" 68 echo $1 | grep AISIN >/dev/null 2>&1 \ 69 || { ledger reg "%ER=${1}" | grep Dest:Internal ; } \ 70 && { ledger reg "%ER=${1}" | grep Dest:Projects ; } 71 echo "========== Project Verification (only one project code should be listed) ==========" 72 ledger print "%ER=${1}" | grep PROJECT | sort -u 73 echo "========== Receipts missing ==========" 74 ledger print "%ER=${1}" | grep -h '; RECEIPT: ' \ 75 | sed 's,\W*; RECEIPT: ,,g' \ 76 | tr , '\n' \ 77 | sort -u \ 78 | while read X ; do 79 [ -f "${LEDGER_HOME}/${X}" ] \ 80 || echo XX $X 81 done 82} 83 84function ERListing() { 85 ledger reg Stub --register-format="%(tag('ER')) %(tag('NOTE'))\n" | sort -u 86} 87 88function ERQueue() { 89 ledger reg %ER=Unassigned --prepend-format="%(filename) " 90} 91