GithubHelp home page GithubHelp logo

sboehler / knut Goto Github PK

View Code? Open in Web Editor NEW
55.0 55.0 8.0 1.97 MB

knut is an efficient plain text accounting tool with support for multiple currencies and valuation.

License: Apache License 2.0

Makefile 0.08% Go 99.74% Nix 0.18%
accounting balance finance journal ledger plaintext-accounting

knut's People

Contributors

idlephysicist avatar sboehler avatar thiemo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

knut's Issues

Add support for showing Result (Income + expense)

Currently the only total that is displayed is the Total (E+I+E)

It would be great to display a Result (I+E) (Income + Expense) summary line item as well in the balance printout.

This is helpful to determine the actual income statement result for the year.

Document Syntax

It was not clear to me from README.md which characters knut allows for account names. I am one of these weird individualists likes to use spaces in account names and slashes to separate subaccounts.

It turns out that knut "only" supports colons, unicode letters, and unicode digits (guessing from the following snippet). Which is okay, but would be nice to state in the docs.

knut/lib/parser/parser.go

Lines 512 to 520 in 598e6ac

func (p *Parser) parseAccount() (*accounts.Account, error) {
s, err := p.scanner.ReadWhile(func(r rune) bool {
return r == ':' || unicode.IsLetter(r) || unicode.IsDigit(r)
})
if err != nil {
return nil, err
}
return accounts.Get(s)
}

It might also be worth noting that there's the concept of an "identifier" and that commodities are parsed as identifiers.

Add transcode from beancount/ledger/hledger to knut

Right now I can create a beancount ledger from a knut ledger file, but not the opposite - the syntax is sufficiently different that I cannot just use find and replace. So far these are the issues I have, and there may be others, and need to make my own transcoder:

  • replace ";" with "#" for comment lines
  • remove "*" after date
  • remove leading spaces from debit account row
  • combine debit and credit account rows
  • other differences??

eg:
beancount syntax:
2020-01-10 * "CITY UTILITY PAYMENT"
Assets:WellsFargo:Chk -10.00 USD
Expenses:Home:WaterAndTrash 10.00 USD

knut syntax:
2023-01-05 "CITY OF DENTON UTILITY"
Assets:WellsFargo:Chk Expenses:Home:WaterAndTrash -70.00 USD

Name importers according to reverse DNS of service

Please consider naming importers in knut according to the reverse DNS name of the "main" domain they communicate with, or the service that they interoperate with. That is, "com.revolut" instead of "revolut" and "com.interactivebrokers" instead of "us.interactivebrokers". There'll probably be many entries for "com", but it'd be a little more predictable.

Swisscard importer unable to parse CSV since Swisscard changed structure

Swisscard seems to have changed the structure of the CSV they provide, hence rendering the knut's importer non functional. The import process aborts without error message.

Old structure of CSV

Transaction Date, Posting Date, Card Number ,Billing Amount, Description, Merchant City , Merchant State , Merchant Zip , Reference Number , Debit/Credit Flag , SICMCC Code
14.02.2020,14.02.2020,1234,CHF0.50,"desc0","",,, "",D,
12.02.2020,13.02.2020,1234,CHF34.65,"desc1","desc2",CHE,1111, "42",D,5411
12.02.2020,13.02.2020,1234,CHF64.60,"desc3","town",CHE,1111, "42",D,5411
06.02.2020,06.02.2020,1234,-CHF2'000.50,"IHRE ZAHLUNG . BESTEN DANK","",,, "43",C,
18.01.2020,20.01.2020,1234,CHF14.00,"desc4","ZURICH",CHE,8003, "44",D,5812
14.01.2020,15.01.2020,1234,-CHF0.50,"RÜCKVERGÜTUNG RECHNUNGSGEBÜHR","",,, "45",C,

New structure of CSV

Transaction date,Description,Card number,Currency,Amount,Debit/Credit,Status,Category
"11.10.2021","SOLLZINS","3376 60**** *1433","CHF","16.47","Debit","Posted",""
"03.10.2021","AIRALO, SINGAPORE","3376 60**** *1433","CHF","12.50","Debit","Posted","DIGITAL GOODS - MULTI-CATEGORY"
"02.10.2021","SBB EASYRIDE APP, BERN","3376 60**** *1433","CHF","40.00","Debit","Posted","PASSENGER RAILWAYS"
"01.10.2021","KKIOSK 31432, BASEL","3376 60**** *1433","CHF","12.00","Debit","Posted","CARD, GIFT AND NOVELTY STORES"
"01.10.2021","OCHSNER SPORT, BASEL","3376 60**** *1433","CHF","100.00","Debit","Posted","SPORTING GOODS STORES"
"01.10.2021","PADDY REILLY'S AG, ZÜRICH","5100 21** **** 4532","CHF","35.00","Debit","Posted","EATING PLACES, RESTAURANTS"

Export balance into xlsx

I'm interested doing this work but just wanted to ask by any chance someone is already working on exporting balance into xlsx?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.