sqlite3 как менеджер финансов

Автор: Vyazovoi

Вобщем доходы у меня периодические, не ежемесячные и не постоянные. Захотелось мне их подсчитать.
Попробывал gnucash и ещё чтото (забыл название) - нет, слишком сложные системы, я даже расходы записывать не собираюсь, а там целая бухгалтерия.
Посмотрел ещё раз на давно известный мне сервис drebedengi.ru - то что надо, но непонравилось то что онлайн.
Решил сделать всё в табличках org-mode, но не осилил то что мне нужно, например так и ненашёл можно ли там делать выборки по содержимому полей. Вобщем все что мне нужно есть в sql, решил сделать тогда все в базе sqlite3. Ктомуже можно дергать её как из php-скриптов, так и неинтерактивно из консоли. Можно и на пда клиент поставить и вести все это дело там.

Вобщем создаем таблицу с полями amount (сумма), date (дата), purse (кошелек, ну там wm,яд,нал,креда), comment (комментарий), source (источник дохода).

Чтобы постоянно не набивать sql я создал себе несколько шелл-функций, которые прописал в конфиг zsh:

function moneyall { sqlite3 -separator " | " -batch ~/documents/stuff/money "select * from mymoney ORDER BY date" }
  function moneynal { sqlite3 -separator " | " -batch ~/documents/stuff/money "select * from mymoney where purse='hands' ORDER BY date"}
  function moneywm { sqlite3 -separator " | " -batch ~/documents/stuff/money "select * from mymoney where purse='wmz' or purse='wmr' ORDER BY date" }
  function moneywmz { sqlite3 -separator " | " -batch ~/documents/stuff/money "select * from mymoney where purse='wmz' ORDER BY date" }
  function moneywmr { sqlite3 -separator " | " -batch ~/documents/stuff/money "select * from mymoney where purse='wmr' ORDER BY date" }
  function moneymonth { sqlite3 -separator " | " -batch ~/documents/stuff/money "select * from mymoney WHERE date>=date('now','-1 month') ORDER BY date" }
  function moneyweek { sqlite3 -separator " | " -batch ~/documents/stuff/money "select * from mymoney WHERE date>=date('now','-7 days') ORDER BY date" }
  function moneymonthsum { sqlite3 -separator " | " -batch ~/documents/stuff/money "select SUM(amount) from mymoney WHERE date>=date('now','-1 month')" }
  function moneyweeksum { sqlite3 -separator " | " -batch ~/documents/stuff/money "select SUM(amount) from mymoney WHERE date>=date('now','-7 days')" }
  function moneyhelp { echo "moneyadd сумма кошель источник комментарий" }
  function moneyadd { sqlite3 -batch ~/documents/stuff/money "insert into mymoney (date,amount,purse,source,comment) values (date('now'),'$1','$2','$3','$4')" }
  function moneygrep { sqlite3 -separator " | " -batch ~/documents/stuff/money "select * from mymoney ORDER BY date" | grep $@ }
RSS-материал RSS-материал