All Projects → ledermann → keepr

ledermann / keepr

Licence: MIT license
Double entry bookkeeping with Ruby on Rails

Programming Languages

ruby
36898 projects - #4 most used programming language
Roff
2310 projects

Projects that are alternatives of or similar to keepr

nledger
.Net Ledger: Double-Entry Accounting System
Stars: ✭ 141 (+127.42%)
Mutual labels:  accounting
accounting
Double-entry bookkeeping library
Stars: ✭ 76 (+22.58%)
Mutual labels:  accounting
python api client
A Python client for Calcbench's API.
Stars: ✭ 16 (-74.19%)
Mutual labels:  accounting
finac
Finac - financial accounting for humans
Stars: ✭ 27 (-56.45%)
Mutual labels:  accounting
invoicing
GetPaid (Formerly the Invoicing plugin) is a lightweight Payments and Invoicing system for WordPress. It can be used to sell anything online via payment forms or buy now buttons that can be added to any landing page. It can also be used by freelancers to manage their Invoices or by 3rd party Themes and Plugins as their payment system. GeoDirecto…
Stars: ✭ 34 (-45.16%)
Mutual labels:  accounting
piggybudget
Android app that helps you to easily track your expenses
Stars: ✭ 27 (-56.45%)
Mutual labels:  accounting
bizbook-client
The repository of bizbook client project
Stars: ✭ 28 (-54.84%)
Mutual labels:  accounting
twinfield
PHP 7.3+ Library for using the Twinfield API.
Stars: ✭ 28 (-54.84%)
Mutual labels:  accounting
addons-konos
Konos Chilean Addons
Stars: ✭ 16 (-74.19%)
Mutual labels:  accounting
hledger-accounting
An end to end accounting solution for Chinese users.
Stars: ✭ 28 (-54.84%)
Mutual labels:  accounting
php-abraflexi
PHP Based Library for easy interaction with czech accounting system FlexiBee.
Stars: ✭ 15 (-75.81%)
Mutual labels:  accounting
bitcointaxer
Crypto-TAX Gain/Loss Calculator
Stars: ✭ 33 (-46.77%)
Mutual labels:  accounting
NotrinosERP
A web-based erp, accounting system that written in PHP and MySql includes Sales, Purchasing, Warehousing, Manufacturing, Human Resource... It supports multi user, multi currencies, multi languages.
Stars: ✭ 46 (-25.81%)
Mutual labels:  accounting
open-expenses
A curated list of (private) businesses publicly sharing their expenses.
Stars: ✭ 46 (-25.81%)
Mutual labels:  accounting
HiveMind
HiveMind is a project management and ERP application for services organizations. It features project/task management, request tracking, time tracking, expenses, invoices/payments, general ledger, and content management (wiki). HiveMind is based on Moqui Framework, Mantle Business Artifacts, and Simple Screens.
Stars: ✭ 40 (-35.48%)
Mutual labels:  accounting
odoobooks
Odoo Best Practices - Online Book
Stars: ✭ 46 (-25.81%)
Mutual labels:  accounting
knut
knut is an efficient plain text accounting tool with support for multiple currencies and valuation.
Stars: ✭ 40 (-35.48%)
Mutual labels:  accounting
3proxy
3proxy - tiny free proxy server
Stars: ✭ 2,493 (+3920.97%)
Mutual labels:  accounting
invoices-cli
Generates html and pdf invoices using html template files, CSV databases for products, clients, and transactions
Stars: ✭ 34 (-45.16%)
Mutual labels:  accounting
CoinTaxman
Calculate your taxes from cryptocurrency gains
Stars: ✭ 110 (+77.42%)
Mutual labels:  accounting

Keepr

This Ruby gem provides a double entry accounting system for use in any Rails application. It stores all the data via ActiveRecord in the SQL database.

Build Status Code Climate Coverage Status

Features

  • Journal entries with two or more postings follow Double Entry principle
  • Accounts (including subaccounts and groups)
  • Tax
  • Cost center
  • Balance sheet
  • Profit and loss statement
  • DATEV export

Dependencies

  • Ruby 2.6+
  • Rails 4.2+ (including Rails 7.0)

Installation

Add this line to your application's Gemfile:

gem 'keepr'

And then execute:

$ bundle

Or install it yourself as:

$ gem install keepr

Getting started

After install run following

rails g keepr:migration
rails db:migrate

It will create database migration file and add new models

Usage

Account

All accounting entries are stored inside "Account", just like what described in accounting principle. To create account, use following:

Keepr::Account.create!(number: 27, name: 'Software', kind: :asset)

"kind" can be one of following value:

[asset liability revenue expense forward debtor creditor]

Account can be have "child account". All entries posted in child account will be show in the "parent account". To create child account, use:

account_1400 = Keepr::Account.create!(number: 1400, name: 'Software', kind: :expense)
account_14001 = Keepr::Account.create!(number: 14001, name: 'Rails', parent: account_1400 , kind: :expense)

Accounts can be organise inside Group

group = Keepr::Group.create!(is_result: true, target: :liability, name: 'foo')
Keepr::Account.create!(number: 100, name: 'Trade payable', kind: :liability, keepr_group: group)

And you can also organise group in "parent-child" if you wish

parent_group = Keepr::Group.create!(is_result: true, target: :liability, name: 'foo')
child_group = parent_group.children.create! name: 'Bar'

Journal

Simple Journal

simple_journal = Keepr::Journal.create keepr_postings_attributes: [
  { keepr_account: account_1000, amount: 100.99, side: 'debit' },
  { keepr_account: account_1200, amount: 100.99, side: 'credit' }
]

Complex journal

complex_journal = Keepr::Journal.create keepr_postings_attributes: [
  { keepr_account: account_4920, amount: 8.40, side: 'debit' },
  { keepr_account: account_1576, amount: 1.60, side: 'debit' },
  { keepr_account: account_1600, amount: 10.00, side: 'credit' }
]

Entry can be lock for changing data

simple_journal.update! permanent: true

Account balance

We can get account balance as follow

account_1000.balance

account_1000.balance(Date.today)

account_1000.balance(Date.yesterday...Date.today)

Tax account

// Create Tax keeping account
Keepr::Account.create! number: 1776, name: 'Umsatzsteuer 19%', kind: :asset

Keepr::Tax.create! name: 'USt19',
                       description: 'Umsatzsteuer 19%',
                       value: 19.0,
                       keepr_account: tax_account

// Create sale account that link to tax
account = Keepr::Account.new number: 8400,
                             name: 'Erlöse 19% USt',
                             kind: :revenue,
                             keepr_tax: tax

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Similar projects

Copyright (c) 2013-2021 Georg Ledermann, released under the MIT license

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].