Code Monkey home page Code Monkey logo

ad-si / transity Goto Github PK

View Code? Open in Web Editor NEW
617.0 17.0 17.0 3.18 MB

Keep track of your ๐Ÿ’ต, ๐Ÿ•˜, ๐Ÿ–, ๐Ÿ„, ๐Ÿป on your command line with the plain text accounting tool of the future! ๐Ÿš€

Home Page: https://ad-si.github.io/Transity/

License: GNU Affero General Public License v3.0

JavaScript 27.79% PureScript 68.31% Makefile 1.04% Shell 0.29% HTML 1.27% CSS 0.43% Nix 0.88%
ledger accounting money plaintext-accounting purescript cli command-line-tool tui finance hacktoberfest

transity's People

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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

transity's Issues

Add '--since' and '--till' options

I would like to see transity balance for specified period of time. Would be good to have some options so I can configure this interval.

Error: EXDEV: cross-device link not permitted

Description:
The tempy library uses rename to move the files under Linux. In this https://github.com/feramhq/transity/blob/master/scripts/transactions/hypovereinsbank.js#L156 case it moves the downloaded csv from the ~/Download/... directory to the temporary directory. This caused an error because of:

EXDEV oldpath and newpath are not on the same mounted filesystem. (Linux permits a filesystem to be mounted at multiple points, but rename() does not work across different mount points, even if the same filesystem is mounted on both.)

For more, see man rename manpage:

Log:

Open https://my.hypovereinsbank.de/login?view=/de/login.jsp
Log in
Go to transactions page
Enter range 2020-06-24 to 2020-09-12
Download CSV file to /tmp/28ccc30ea3fa35728eac46a9c4dd7e62/hypovereinsbank-transactions.csv
Nightmare runner error:

	Error: EXDEV: cross-device link not permitted, rename '/home/DEDUCTED/Downloads/15620204_Umsatzliste.csv' -> '/tmp/28ccc30ea3fa35728eac46a9c4dd7e62/hypovereinsbank-transactions.csv'
	   at Object.fs.renameSync (fs.js:772:18)
	   at DownloadItem.eval (eval at <anonymous> (/home/DEDUCTED/.work/github/public/transity/node_modules/nightmare/lib/runner.js:543:14), <anonymous>:43:22)
	   at emitTwo (events.js:125:13)
	   at DownloadItem.emit (events.js:213:7)

Workaround:
I changed the filePathTemp to a path which was on the same partition as from where I ran the script.

Expand Documentation

  • More beginner friendly for people who don't know about plain text accounting
  • Describe how journal file is supposed to be created (write-by-hand and copy-paste)

Support / instead of : syntax

This feels like a remnant of ledger/hledger/beancount, especially as the colon is part of yaml syntax and can get visually confusing. / clearly denotes belonging/sub-accounts, while : is only intuitive for lispers (and possibly C++/Rust devs given ::).

For those choosing transity as their first plain text accounting tool, I feel like this is a simple change to make things a little more intuitive, while the : could be kept around for those coming from other plain text accounting tools.

Split transactions

How do you handle split transactions? For example I spent $50 at a restaurant, $20 I am counting as expense toward food and $30 is money I expect to be paid back to me by a friend?

Special purpose tags

E.g. _no-balance_ to ignore the transfer / transaction in all balance calculations

Document how to perform filtering by tag

I see this note in initial announcement:

Please be aware that filtering by tag is still in development and only partially included in the latest release.

Waiting for this feature! But probably it's a good idea to document how to use it now if people want to play with this command.

Clarify license status

This was brought up recently on debian-legal: it is unclear what the licensing conditions of Transity are. Specifically, it appears that you are violating the terms of your own license.

It's fairly clear that GPL-3+ is the licence you are distributing the code under: its is what's listed in you description. However, you add the additional condition that long-term users purchase a license. That is not a legal request to make of GPL-3+ licensed code: the GPL explicitly prohibits additional restrictions. Granted, you could be choosing to distribute your code under a new license that is based on the GPL, but in that case, you would need to comply with a few additional rules (which you don't), and other projects would be unable to use your code as part of their software (defeating the point of the open-source system).

In short, you can't require your end users to do much of anything, or place restrictions on the redistribution of your code, without violating the terms of the GPL. As soon as a person owns software covered by the GPL, they have the ability to use, modify, and redistribute it as they please: even if you say in the README that they have to purchase a license, they don't: they already have one.

Fear not, however: there is an easy solution to permit you to distribute your code as GPL3+ while also requesting donations and prohibiting commercial redistribution. Simply rephrase your additional line that requires that long-term users purchase a license to one that asks for donations, and uses the currently existing price as a recommended donation. That would let Transity be included in debian, which would also cause Transity to be distributed as part of Ubuntu, Mint, and almost any other distro that isn't Arch or Fedora.

Its worth noting that you keep the ability to sell a commercial license to Transity, no matter what solution you pick. You can also chose to stop offering your code under the GPL altogether, and simply have it exist as a source-available paid software product (whose source is copyrighted and may not be redistributed) or even just as a standard proprietary software application. You could even distribute the GPL'd source only to those who buy your product. The thing you can't do is give people GPL'd code, then ask them to give you money later.

Couldn't decode Array: Value is not a String

While the example given in the README file under "Journal File Format" is valid YAML, I had to make changes to it because in its original form I got errors like:

Couldn't decode Array: Value is not a String

That error is given by the utc field when the string is not quoted. Once quoted things started to work.

Here's the version with quoted utc:

owner: anna
commodities:
  - id: โ‚ฌ
    name: Euro
    alias:
      - EUR
    note: Currency used in the European Union
    utc: '2017-04-02 19:33:53'

entities:
  - id: anna
    name: Anna Smith
    utc: '2017-04-02 19:33:28'
    tags:
      - person
    accounts:
      - id: wallet
        name: Wallet
        note: Anna's black wallet
        utc: '2017-04-02 19:33:28'
        tags:
          - wallet

  - id: evil-corp
    name: Evil Corporation
    utc: '2017-04-02 19:33:28'
    note: The Evil Corporation in the United States of Evil
    tags:
      - company

transactions:
  - title: Purchase of evil machine
    transfers:
      - utc: '2017-02-17'
        from: anna
        to: evil-corp
        amount: 50000 โ‚ฌ
      - utc: '2017-02-17'
        from: evil-corp
        to: anna
        amount: 1 evil-machine

Ledger import script is not working

In bash it's impossible to paste it, since it gets an error in this line and parsing break from that.
sin nombre

In zsh it also gives an error:
imagen

Am I doing something wrong?

Add support for exporting SEPA XML files

Minimal example file:

<?xml version="1.0" encoding="UTF-8" ?>
<Document 
  xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 pain.001.001.03.xsd"
>
  <CstmrCdtTrfInitn>
    <GrpHdr>
      <MsgId>JustATest123</MsgId>
      <CreDtTm>2022-08-26T14:45:57Z</CreDtTm>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>1</CtrlSum>
      <InitgPty><Nm>Test GmbH</Nm></InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>Submitter123</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <BtchBookg>false</BtchBookg>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>1</CtrlSum>
      <PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf>
      <ReqdExctnDt>2022-08-26</ReqdExctnDt>
      <Dbtr><Nm>Test GmbH</Nm></Dbtr>
      <DbtrAcct><Id><IBAN>DExxxxxxxxxx</IBAN></Id></DbtrAcct>
      <DbtrAgt><FinInstnId><BIC>BANKXXXXXXX</BIC></FinInstnId></DbtrAgt>
      <ChrgBr>SLEV</ChrgBr>
      <CdtTrfTxInf>
        <PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId>
        <Amt><InstdAmt Ccy="EUR">1.00</InstdAmt></Amt>
        <Cdtr><Nm>John Doe</Nm></Cdtr>
        <CdtrAcct><Id><IBAN>DEyyyyyyy</IBAN></Id></CdtrAcct>
        <Purp><Cd>53</Cd></Purp>
        <RmtInf><Ustrd>Test Transaction</Ustrd></RmtInf>
      </CdtTrfTxInf>
    </PmtInf>
  </CstmrCdtTrfInitn>
</Document>

Add option to see total expenses

I have multiple accounts from which I transfer money. I would like to have an option to see total spent amount from all my accounts.

Enter transactions from CLI

Before diving into the Readme, I thought this tool would allow me to record spendings from the command-line, something like
transity transaction --to anna --amount 300โ‚ฌ accounting.yaml (with --from being inferred to my default account)

Did I miss something in the Readme or have I misunderstood the purpose of this tool?

NPM installation fails on Windows 10 (missing "make"?)

I get the following upon running npm install --global transity:

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: `make postinstall`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional log
ging output above.

Typing "make" on the command line gives 'make' is not recognized as an internal or external command, operable program or batch file.

Platform: Windows 10, 64-bit

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.