Giter VIP home page Giter VIP logo

invoicing's Introduction

For a more up-to-date version see code-mancers/invoicing!

Ruby Invoicing Framework

DESCRIPTION

This is a framework for generating and displaying invoices (ideal for commercial Rails apps). It allows for flexible business logic; provides tools for tax handling, commission calculation etc. It aims to be both developer-friendly and accountant-friendly.

The Ruby Invoicing Framework is based on ActiveRecord.

Please see the website for an introduction to using Invoicing, and check the API reference for in-depth details.

If you’re interested in contributing to the invoicing gem itself, please see the file HACKING.md.

FEATURES

  • TODO

REQUIREMENTS

  • ActiveRecord >= 2.1

  • Only MySQL and PostgreSQL databases are currently supported

INSTALL

sudo gem install invoicing

STATUS

So far, the Ruby Invoicing Framework has been tested with ActiveRecord 2.2.2, MySQL 5.0.67 and PostgreSQL 8.3.5. We will be testing it across a wider variety of versions soon.

CREDITS

The Ruby invoicing framework originated as part of the website Bid for Wine, developed by Patrick Dietrich, Conrad Irwin, Michael Arnold and Martin Kleppmann for Ept Computing Ltd. It was extracted from the Bid for Wine codebase and substantially extended by Martin Kleppmann.

LICENSE

Copyright © 2009 Martin Kleppmann, Ept Computing Limited.

This gem is made publicly available under the terms of the MIT license. See LICENSE and/or COPYING for details.

invoicing's People

Contributors

ept avatar kubicek avatar rsanheim 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  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

invoicing's Issues

Rails 3 Support?

I want to use invoicing in my current project, but I need to know if it has been tested with Rails 3.

If not, I could probably port it to that version. Do you think this could be useful?

Thank you for your answer.

Lucas

Version 0.3?

Hello

In your video from 2009 demo'ing the invoicing gem you refer to a forthcoming version 0.3 with automatic vat calculation and so on. I'm wondering if that's seen the lite of day perhaps in version 0.21 or something?

I'm looking for something like this gem to help me build an automatic billing system for web hosting. It seems very well thought out, well done.

Jesse

known_subclasses _very_ slow in high throughput environments

Hey Guys,

Not sure if this is even still maintained, given the age of the last release.

I thought I'd let you know that the current implementation of know subclasses on ledger / line items is very slow on large tables. Our production ledge table has ~ 400k rows, and our line item table has 1M plus.

It took a bit of digging to find this method being the source of slow down.

The fix for us was simple, we added the following methods to our base classes for ledger / line item.

  def self.known_subclasses(_table = table_name, _type_column = inheritance_column)
    InvoicingLineItem.descendants
  end
  def self.known_subclasses(_table = table_name, _type_column = inheritance_column)
    InvoicingLedgerItem.descendants
  end

The cause of the slow down is a bit subtle, since we are constantly building invoices, that means we are inserting / deleting from the line_item / ledger_item table constantly. The method in teh gem for determining known subclasses:

SELECT DISTICT type from ...

Has to acquire a table look in order to determine the distinct set of entries for that table. This causes queueing all over the place.

Anyway thought you'd like to know, as there is a huge TODO left on the code that causes this select.

Method missing generate_attr_taxable_methods (activerecord 2.3) in taxable_test.rb

Running the tests produces:
/usr/share/ruby-rvm/gems/ruby-1.9.3-p194@invoicing/gems/activerecord-2.3.14/lib/active_record/base.rb:1998:in method_missing': undefined methodgenerate_attr_taxable_methods' for #Class:0x9c8bed8 (NoMethodError)
from /home/clockwerx/invoicing/invoicing/lib/invoicing/taxable.rb:225:in block in acts_as_taxable' from /home/clockwerx/invoicing/invoicing/lib/invoicing/taxable.rb:225:ineach'
from /home/clockwerx/invoicing/invoicing/lib/invoicing/taxable.rb:225:in acts_as_taxable' from /home/clockwerx/invoicing/invoicing/test/taxable_test.rb:53:inclass:TaxableRecord'
from /home/clockwerx/invoicing/invoicing/test/taxable_test.rb:50:in <class:TaxableTest>' from /home/clockwerx/invoicing/invoicing/test/taxable_test.rb:5:in<top (required)>'

... and I can't figure out why exactly - for some reason the ClassMethods aren't being included?

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.