uomi 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/.rvmrc +1 -1
  2. data/Gemfile +1 -1
  3. data/README.md +4 -4
  4. data/lib/generators/active_record/templates/migration.rb +12 -12
  5. data/lib/generators/active_record/{invoicing_generator.rb → uomi_generator.rb} +3 -3
  6. data/lib/{invoicing → uomi}/buyer.rb +1 -1
  7. data/lib/{invoicing → uomi}/credit_note.rb +1 -1
  8. data/lib/{invoicing → uomi}/credit_note_credit_transaction.rb +1 -1
  9. data/lib/{invoicing → uomi}/credit_note_invoice.rb +1 -1
  10. data/lib/{invoicing → uomi}/credit_transaction.rb +1 -1
  11. data/lib/{invoicing → uomi}/debit_transaction.rb +1 -1
  12. data/lib/{invoicing → uomi}/exception.rb +1 -1
  13. data/lib/{invoicing → uomi}/invoice.rb +1 -1
  14. data/lib/{invoicing → uomi}/invoice_adjustment.rb +1 -1
  15. data/lib/{invoicing → uomi}/invoice_decorator.rb +1 -1
  16. data/lib/{invoicing → uomi}/invoiceable.rb +1 -1
  17. data/lib/{invoicing → uomi}/late_payment.rb +1 -1
  18. data/lib/{invoicing → uomi}/line_item.rb +1 -1
  19. data/lib/{invoicing → uomi}/line_item_type.rb +1 -1
  20. data/lib/{invoicing → uomi}/overdue_invoice.rb +1 -1
  21. data/lib/{invoicing → uomi}/payment_reference.rb +1 -1
  22. data/lib/{invoicing → uomi}/seller.rb +1 -1
  23. data/lib/{invoicing → uomi}/transaction.rb +1 -1
  24. data/lib/uomi/version.rb +3 -0
  25. data/lib/uomi.rb +46 -0
  26. data/spec/internal/config/database.yml.sample +1 -1
  27. data/spec/internal/db/schema.rb +11 -11
  28. data/spec/lib/{invoicing → uomi}/credit_note_spec.rb +9 -9
  29. data/spec/lib/{invoicing → uomi}/invoice_adjustment_spec.rb +7 -7
  30. data/spec/lib/{invoicing → uomi}/invoice_late_payment_spec.rb +1 -1
  31. data/spec/lib/{invoicing → uomi}/invoice_spec.rb +63 -63
  32. data/spec/lib/uomi/line_item_spec.rb +14 -0
  33. data/spec/lib/{invoicing → uomi}/overdue_invoice_spec.rb +18 -18
  34. data/spec/support/helpers.rb +6 -6
  35. data/{invoicing.gemspec → uomi.gemspec} +4 -4
  36. metadata +37 -37
  37. data/lib/invoicing/version.rb +0 -3
  38. data/lib/invoicing.rb +0 -46
  39. data/spec/lib/invoicing/line_item_spec.rb +0 -14
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm use 1.9.2@invoicing --create
1
+ rvm use 1.9.2@uomi --create
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in invoicing.gemspec
3
+ # Specify your gem's dependencies in uomi.gemspec
4
4
  gemspec
5
5
 
6
6
  group :development do
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- [![Build Status](https://secure.travis-ci.org/tehtorq/invoicing.png)](http://travis-ci.org/tehtorq/invoicing)
2
+ [![Build Status](https://secure.travis-ci.org/tehtorq/uomi.png)](http://travis-ci.org/tehtorq/uomi)
3
3
 
4
4
  Basic Usage
5
5
 
@@ -7,7 +7,7 @@ Basic Usage
7
7
  book = Book.find(1) # implements CostItem
8
8
  decorations = {whatever_you_want: 'here'}
9
9
 
10
- invoice = Invoicing::generate do
10
+ invoice = Uomi::generate_invoice do
11
11
  from seller
12
12
  line_item book
13
13
  due Time.now + 7.days
@@ -21,13 +21,13 @@ A default invoice number will be set with the format INV[invoice id].
21
21
 
22
22
  A custom invoice number can be specified as follows:
23
23
 
24
- invoice = Invoicing::generate do
24
+ invoice = Uomi::generate_invoice do
25
25
  numbered "CUSTOMREF123"
26
26
  end
27
27
 
28
28
  You can specify a custom invoice number containing the invoice id as follows:
29
29
 
30
- invoice = Invoicing::generate do
30
+ invoice = Uomi::generate_invoice do
31
31
  numbered "CUSTOMREF{id}"
32
32
  end
33
33
 
@@ -1,7 +1,7 @@
1
- class CreateInvoicingTables < ActiveRecord::Migration
1
+ class CreateUomiTables < ActiveRecord::Migration
2
2
  def self.change
3
3
 
4
- create_table "invoicing_late_payments", :force => true do |t|
4
+ create_table "uomi_late_payments", :force => true do |t|
5
5
  t.integer "invoice_id"
6
6
  t.integer "amount"
7
7
  t.datetime "penalty_date"
@@ -9,7 +9,7 @@ class CreateInvoicingTables < ActiveRecord::Migration
9
9
  t.timestamps
10
10
  end
11
11
 
12
- create_table "invoicing_line_items", :force => true do |t|
12
+ create_table "uomi_line_items", :force => true do |t|
13
13
  t.integer "invoice_id"
14
14
  t.string "description"
15
15
  t.integer "amount"
@@ -20,14 +20,14 @@ class CreateInvoicingTables < ActiveRecord::Migration
20
20
  t.timestamps
21
21
  end
22
22
 
23
- create_table "invoicing_transactions", :force => true do |t|
23
+ create_table "uomi_transactions", :force => true do |t|
24
24
  t.integer "invoice_id"
25
25
  t.string "type"
26
26
  t.integer "amount"
27
27
  t.timestamps
28
28
  end
29
29
 
30
- create_table "invoicing_invoices", :force => true do |t|
30
+ create_table "uomi_invoices", :force => true do |t|
31
31
  t.integer "seller_id"
32
32
  t.integer "buyer_id"
33
33
  t.string "invoice_number"
@@ -41,41 +41,41 @@ class CreateInvoicingTables < ActiveRecord::Migration
41
41
  t.timestamps
42
42
  end
43
43
 
44
- create_table "invoicing_payment_references", :force => true do |t|
44
+ create_table "uomi_payment_references", :force => true do |t|
45
45
  t.integer "invoice_id"
46
46
  t.string "reference"
47
47
  t.timestamps
48
48
  end
49
49
 
50
- create_table "invoicing_sellers", :force => true do |t|
50
+ create_table "uomi_sellers", :force => true do |t|
51
51
  t.integer "sellerable_id"
52
52
  t.string "sellerable_type"
53
53
  t.timestamps
54
54
  end
55
55
 
56
- create_table "invoicing_buyers", :force => true do |t|
56
+ create_table "uomi_buyers", :force => true do |t|
57
57
  t.integer "buyerable_id"
58
58
  t.string "buyerable_type"
59
59
  t.timestamps
60
60
  end
61
61
 
62
- create_table "invoicing_invoice_decorators", :force => true do |t|
62
+ create_table "uomi_invoice_decorators", :force => true do |t|
63
63
  t.integer "invoice_id"
64
64
  t.text "data"
65
65
  t.timestamps
66
66
  end
67
67
 
68
- create_table "invoicing_credit_note_invoices", :force => true do |t|
68
+ create_table "uomi_credit_note_invoices", :force => true do |t|
69
69
  t.integer "invoice_id"
70
70
  t.integer "credit_note_id"
71
71
  end
72
72
 
73
- create_table "invoicing_credit_note_credit_transactions", :force => true do |t|
73
+ create_table "uomi_credit_note_credit_transactions", :force => true do |t|
74
74
  t.integer "credit_note_id"
75
75
  t.integer "transaction_id"
76
76
  end
77
77
 
78
- create_table "invoicing_line_item_types", :force => true do |t|
78
+ create_table "uomi_line_item_types", :force => true do |t|
79
79
  t.string "name"
80
80
  end
81
81
 
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  module Generators
3
3
  class InstallGenerator < Rails::Generators::Base
4
4
  include Rails::Generators::Migration
@@ -6,7 +6,7 @@ module Invoicing
6
6
  source_root File.expand_path("../templates", __FILE__)
7
7
 
8
8
  desc <<-CONTENT
9
- Copies the invoicing migration file to the migrations
9
+ Copies the uomi migration file to the migrations
10
10
  folder.
11
11
 
12
12
  Please run rake db:migrate once the installer is
@@ -23,7 +23,7 @@ module Invoicing
23
23
  end
24
24
 
25
25
  def create_migration_file
26
- migration_template 'migration.rb', 'db/migrate/create_invoicing_tables.rb'
26
+ migration_template 'migration.rb', 'db/migrate/create_uomi_tables.rb'
27
27
  end
28
28
  end
29
29
  end
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class Buyer < ActiveRecord::Base
3
3
  has_many :invoices
4
4
  belongs_to :buyerable, polymorphic: true
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class CreditNote < Invoice
3
3
  alias_attribute :receipt_number, :invoice_number
4
4
 
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class CreditNoteCreditTransaction < ActiveRecord::Base
3
3
  belongs_to :credit_note
4
4
  belongs_to :transaction
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class CreditNoteInvoice < ActiveRecord::Base
3
3
  belongs_to :credit_note
4
4
  belongs_to :invoice
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class CreditTransaction < Transaction
3
3
 
4
4
  def credit?
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class DebitTransaction < Transaction
3
3
 
4
4
  def debit?
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class CannotVoidDocumentException < Exception; end
3
3
  class CannotAdjustIssuedDocument < Exception; end
4
4
  end
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class Invoice < ActiveRecord::Base
3
3
  include ::Workflow
4
4
  has_many :line_items, dependent: :destroy
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
 
3
3
  class InvoiceAdjustment
4
4
 
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class InvoiceDecorator < ActiveRecord::Base
3
3
  belongs_to :invoice
4
4
  serialize :data
@@ -1,6 +1,6 @@
1
1
  # implement this module and override behaviour on items which will be invoiced
2
2
 
3
- module Invoicing
3
+ module Uomi
4
4
  module Invoiceable
5
5
 
6
6
  attr_accessor :invoiced, :invoice_id, :amount, :tax, :line_item_type_id
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class LatePayment < ActiveRecord::Base
3
3
  belongs_to :invoice
4
4
 
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class LineItem < ActiveRecord::Base
3
3
  belongs_to :invoice
4
4
  belongs_to :invoiceable, polymorphic: true
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class LineItemType < ActiveRecord::Base
3
3
  has_many :line_items
4
4
 
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class OverdueInvoice
3
3
 
4
4
  def self.all
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
 
3
3
  class PaymentReference < ActiveRecord::Base
4
4
 
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class Seller < ActiveRecord::Base
3
3
  has_many :invoices
4
4
  belongs_to :sellerable, polymorphic: true
@@ -1,4 +1,4 @@
1
- module Invoicing
1
+ module Uomi
2
2
  class Transaction < ActiveRecord::Base
3
3
  belongs_to :invoice
4
4
 
@@ -0,0 +1,3 @@
1
+ module Uomi
2
+ VERSION = "0.2.14"
3
+ end
data/lib/uomi.rb ADDED
@@ -0,0 +1,46 @@
1
+ require "active_record"
2
+ require "workflow"
3
+ require "uomi/version"
4
+
5
+ module Uomi
6
+
7
+ def self.table_name_prefix
8
+ 'uomi_'
9
+ end
10
+
11
+ def self.generate_invoice(&block)
12
+ invoice = Invoice.new
13
+ invoice.instance_eval(&block)
14
+ invoice.save!
15
+ invoice
16
+ end
17
+
18
+ def self.generate_credit_note(&block)
19
+ credit_note = CreditNote.new
20
+ credit_note.instance_eval(&block)
21
+ credit_note.save!
22
+ credit_note.issue!
23
+ credit_note
24
+ end
25
+
26
+ end
27
+
28
+ require "uomi/exception"
29
+ require "uomi/invoiceable"
30
+ require "uomi/transaction"
31
+ require "uomi/credit_transaction"
32
+ require "uomi/debit_transaction"
33
+ require "uomi/late_payment"
34
+ require "uomi/line_item"
35
+ require "uomi/payment_reference"
36
+ require "uomi/seller"
37
+ require "uomi/buyer"
38
+ require "uomi/invoice_decorator"
39
+ require "uomi/credit_note_invoice"
40
+ require "uomi/credit_note_credit_transaction"
41
+
42
+ require "uomi/invoice"
43
+ require "uomi/credit_note"
44
+ require "uomi/overdue_invoice"
45
+ require "uomi/invoice_adjustment"
46
+ require "uomi/line_item_type"
@@ -1,3 +1,3 @@
1
1
  test:
2
2
  adapter: sqlite3
3
- database: db/invoicing_test.sqlite
3
+ database: db/uomi_test.sqlite
@@ -1,6 +1,6 @@
1
1
  ActiveRecord::Schema.define do
2
2
 
3
- create_table "invoicing_late_payments", :force => true do |t|
3
+ create_table "uomi_late_payments", :force => true do |t|
4
4
  t.integer "invoice_id"
5
5
  t.integer "amount"
6
6
  t.datetime "penalty_date"
@@ -8,7 +8,7 @@ ActiveRecord::Schema.define do
8
8
  t.timestamps
9
9
  end
10
10
 
11
- create_table "invoicing_line_items", :force => true do |t|
11
+ create_table "uomi_line_items", :force => true do |t|
12
12
  t.integer "invoice_id"
13
13
  t.string "description"
14
14
  t.integer "amount"
@@ -19,14 +19,14 @@ ActiveRecord::Schema.define do
19
19
  t.timestamps
20
20
  end
21
21
 
22
- create_table "invoicing_transactions", :force => true do |t|
22
+ create_table "uomi_transactions", :force => true do |t|
23
23
  t.integer "invoice_id"
24
24
  t.string "type"
25
25
  t.integer "amount"
26
26
  t.timestamps
27
27
  end
28
28
 
29
- create_table "invoicing_invoices", :force => true do |t|
29
+ create_table "uomi_invoices", :force => true do |t|
30
30
  t.integer "seller_id"
31
31
  t.integer "buyer_id"
32
32
  t.string "invoice_number"
@@ -40,41 +40,41 @@ ActiveRecord::Schema.define do
40
40
  t.timestamps
41
41
  end
42
42
 
43
- create_table "invoicing_payment_references", :force => true do |t|
43
+ create_table "uomi_payment_references", :force => true do |t|
44
44
  t.integer "invoice_id"
45
45
  t.string "reference"
46
46
  t.timestamps
47
47
  end
48
48
 
49
- create_table "invoicing_sellers", :force => true do |t|
49
+ create_table "uomi_sellers", :force => true do |t|
50
50
  t.integer "sellerable_id"
51
51
  t.string "sellerable_type"
52
52
  t.timestamps
53
53
  end
54
54
 
55
- create_table "invoicing_buyers", :force => true do |t|
55
+ create_table "uomi_buyers", :force => true do |t|
56
56
  t.integer "buyerable_id"
57
57
  t.string "buyerable_type"
58
58
  t.timestamps
59
59
  end
60
60
 
61
- create_table "invoicing_invoice_decorators", :force => true do |t|
61
+ create_table "uomi_invoice_decorators", :force => true do |t|
62
62
  t.integer "invoice_id"
63
63
  t.text "data"
64
64
  t.timestamps
65
65
  end
66
66
 
67
- create_table "invoicing_credit_note_invoices", :force => true do |t|
67
+ create_table "uomi_credit_note_invoices", :force => true do |t|
68
68
  t.integer "invoice_id"
69
69
  t.integer "credit_note_id"
70
70
  end
71
71
 
72
- create_table "invoicing_credit_note_credit_transactions", :force => true do |t|
72
+ create_table "uomi_credit_note_credit_transactions", :force => true do |t|
73
73
  t.integer "credit_note_id"
74
74
  t.integer "transaction_id"
75
75
  end
76
76
 
77
- create_table "invoicing_line_item_types", :force => true do |t|
77
+ create_table "uomi_line_item_types", :force => true do |t|
78
78
  t.string "name"
79
79
  end
80
80
 
@@ -1,15 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Invoicing::CreditNote do
3
+ describe Uomi::CreditNote do
4
4
  include Helpers
5
5
 
6
6
  before(:each) do
7
7
  tear_it_down
8
8
 
9
- invoice_buyer = Invoicing::DebitTransaction.create!
10
- invoice_seller = Invoicing::DebitTransaction.create!
9
+ invoice_buyer = Uomi::DebitTransaction.create!
10
+ invoice_seller = Uomi::DebitTransaction.create!
11
11
 
12
- @invoice = Invoicing::generate do
12
+ @invoice = Uomi::generate_invoice do
13
13
  to invoice_buyer
14
14
  from invoice_seller
15
15
 
@@ -32,7 +32,7 @@ describe Invoicing::CreditNote do
32
32
  before(:each) do
33
33
  @invoice.line_items.each do |li|
34
34
  li.invoiceable = li
35
- li.invoiceable.extend(Invoicing::Invoiceable)
35
+ li.invoiceable.extend(Uomi::Invoiceable)
36
36
  li.amount = 0
37
37
  li.tax = 0
38
38
  li.save!
@@ -43,7 +43,7 @@ describe Invoicing::CreditNote do
43
43
 
44
44
  it "should raise an exception if the invoice is not in an issued state" do
45
45
  lambda {
46
- @credit_note = Invoicing::generate_credit_note do
46
+ @credit_note = Uomi::generate_credit_note do
47
47
  against_invoice @invoice
48
48
  end
49
49
  }.should raise_error(RuntimeError, "You must allocate a credit note against an invoice")
@@ -55,7 +55,7 @@ describe Invoicing::CreditNote do
55
55
  invoice = @invoice
56
56
  line_items = invoice.line_items
57
57
 
58
- @credit_note = Invoicing::generate_credit_note do
58
+ @credit_note = Uomi::generate_credit_note do
59
59
  line_items.each do |line_item|
60
60
  credit amount: line_item.amount, line_item: line_item, description: "Credit note for Line Item #{line_item.id}", tax: 0
61
61
  end
@@ -111,7 +111,7 @@ describe Invoicing::CreditNote do
111
111
  context "When applying credits to the invoiceables" do
112
112
 
113
113
  it "should receive handle credit for each line item being credited" do
114
- credit_note = Invoicing::CreditNote.new
114
+ credit_note = Uomi::CreditNote.new
115
115
  credit_note.line_items = @invoice.line_items
116
116
 
117
117
  credit_note.line_items.map(&:invoiceable).compact.each do |item|
@@ -126,7 +126,7 @@ describe Invoicing::CreditNote do
126
126
  context "trying to create a standalone credit note" do
127
127
 
128
128
  it "should raise an error if no invoice is specified" do
129
- expect {Invoicing::generate_credit_note do
129
+ expect {Uomi::generate_credit_note do
130
130
  line_items.each do |line_item|
131
131
  credit amount: 500, description: "Credit note for Line Item #{line_item.id}", tax: 0
132
132
  end
@@ -1,14 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Invoicing::InvoiceAdjustment do
3
+ describe Uomi::InvoiceAdjustment do
4
4
  include Helpers
5
5
 
6
6
  before(:each) do
7
7
  tear_it_down
8
8
 
9
- buyer = Invoicing::DebitTransaction.create!
9
+ buyer = Uomi::DebitTransaction.create!
10
10
 
11
- @invoice = Invoicing::generate do
11
+ @invoice = Uomi::generate_invoice do
12
12
  to buyer
13
13
  numbered "INV123"
14
14
 
@@ -30,7 +30,7 @@ describe Invoicing::InvoiceAdjustment do
30
30
  end
31
31
 
32
32
  it "should allow the buyer to be changed" do
33
- new_buyer = Invoicing::DebitTransaction.create!
33
+ new_buyer = Uomi::DebitTransaction.create!
34
34
 
35
35
  @invoice.adjust do
36
36
  to new_buyer
@@ -68,7 +68,7 @@ describe Invoicing::InvoiceAdjustment do
68
68
  end
69
69
 
70
70
  it "should allow line items to be added" do
71
- item_to_invoice = @invoice.extend(Invoicing::Invoiceable)
71
+ item_to_invoice = @invoice.extend(Uomi::Invoiceable)
72
72
  @invoice.line_items.count.should == 3
73
73
 
74
74
  @invoice.adjust do
@@ -81,7 +81,7 @@ describe Invoicing::InvoiceAdjustment do
81
81
 
82
82
  it "should allow line items to be edited" do
83
83
  line_item = @invoice.line_items.first
84
- item_to_invoice = @invoice.extend(Invoicing::Invoiceable)
84
+ item_to_invoice = @invoice.extend(Uomi::Invoiceable)
85
85
 
86
86
  @invoice.adjust do
87
87
  edit_line_item(line_item, {description: "Modified Line Item", amount: 500})
@@ -128,7 +128,7 @@ describe Invoicing::InvoiceAdjustment do
128
128
  @invoice.adjust do
129
129
  due Date.tomorrow
130
130
  end
131
- }.to raise_error(Invoicing::CannotAdjustIssuedDocument)
131
+ }.to raise_error(Uomi::CannotAdjustIssuedDocument)
132
132
  end
133
133
 
134
134
  end
@@ -1,6 +1,6 @@
1
1
  # require 'spec_helper'
2
2
  #
3
- # describe Invoicing::LatePayment do
3
+ # describe Uomi::LatePayment do
4
4
  # include Helpers
5
5
  #
6
6
  # before(:each) do
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Invoicing::Invoice do
3
+ describe Uomi::Invoice do
4
4
  include Helpers
5
5
 
6
6
  before(:each) do
7
7
  tear_it_down
8
8
 
9
- @invoice = Invoicing::generate do
9
+ @invoice = Uomi::generate_invoice do
10
10
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
11
11
  line_item description: "Line Item 2", amount: 5097, line_item_type_id: 1
12
12
  line_item description: "Line Item 3", amount: 1714, line_item_type_id: 1
@@ -18,7 +18,7 @@ describe Invoicing::Invoice do
18
18
  end
19
19
 
20
20
  it "should be able to add a line item" do
21
- invoice = Invoicing::generate do
21
+ invoice = Uomi::generate_invoice do
22
22
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
23
23
  end
24
24
 
@@ -81,78 +81,78 @@ describe Invoicing::Invoice do
81
81
  end
82
82
 
83
83
  it "should find draft invoices" do
84
- issued_invoice = Invoicing::generate do
84
+ issued_invoice = Uomi::generate_invoice do
85
85
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
86
86
  end
87
87
 
88
88
  issued_invoice.issue!
89
89
 
90
- draft_invoice = Invoicing::generate do
90
+ draft_invoice = Uomi::generate_invoice do
91
91
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1, line_item_type_id: 1
92
92
  end
93
93
 
94
- Invoicing::Invoice.draft.count.should == 1
95
- Invoicing::Invoice.draft.first.should == draft_invoice
94
+ Uomi::Invoice.draft.count.should == 1
95
+ Uomi::Invoice.draft.first.should == draft_invoice
96
96
  end
97
97
 
98
98
  it "should find issued invoices" do
99
- issued_invoice = Invoicing::generate do
99
+ issued_invoice = Uomi::generate_invoice do
100
100
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
101
101
  end
102
102
 
103
103
  issued_invoice.issue!
104
104
 
105
- other_invoice = Invoicing::generate do
105
+ other_invoice = Uomi::generate_invoice do
106
106
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
107
107
  end
108
108
 
109
- Invoicing::Invoice.issued.count.should == 1
110
- Invoicing::Invoice.issued.first.should == issued_invoice
109
+ Uomi::Invoice.issued.count.should == 1
110
+ Uomi::Invoice.issued.first.should == issued_invoice
111
111
  end
112
112
 
113
113
  it "should find owing invoices" do
114
- owing_invoice = Invoicing::generate do
114
+ owing_invoice = Uomi::generate_invoice do
115
115
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
116
116
  end
117
117
 
118
118
  owing_invoice.issue!
119
119
 
120
- other_invoice = Invoicing::generate do
120
+ other_invoice = Uomi::generate_invoice do
121
121
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
122
122
  end
123
123
 
124
- Invoicing::Invoice.owing.count.should == 1
125
- Invoicing::Invoice.owing.first.should == owing_invoice
124
+ Uomi::Invoice.owing.count.should == 1
125
+ Uomi::Invoice.owing.first.should == owing_invoice
126
126
  end
127
127
 
128
128
  it "should find settled invoices" do
129
- settled_invoice = Invoicing::generate do
129
+ settled_invoice = Uomi::generate_invoice do
130
130
  end
131
131
 
132
132
  settled_invoice.issue!
133
133
 
134
- other_invoice = Invoicing::generate do
134
+ other_invoice = Uomi::generate_invoice do
135
135
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
136
136
  end
137
137
 
138
- Invoicing::Invoice.settled.count.should == 1
139
- Invoicing::Invoice.settled.first.should == settled_invoice
138
+ Uomi::Invoice.settled.count.should == 1
139
+ Uomi::Invoice.settled.first.should == settled_invoice
140
140
  end
141
141
 
142
142
  it "should find voided invoices" do
143
- voided_invoice = Invoicing::generate do
143
+ voided_invoice = Uomi::generate_invoice do
144
144
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
145
145
  end
146
146
 
147
147
  voided_invoice.issue!
148
148
  voided_invoice.void!
149
149
 
150
- other_invoice = Invoicing::generate do
150
+ other_invoice = Uomi::generate_invoice do
151
151
  line_item description: "Line Item 1", amount: 1101, line_item_type_id: 1
152
152
  end
153
153
 
154
- Invoicing::Invoice.voided.count.should == 1
155
- Invoicing::Invoice.voided.first.should == voided_invoice
154
+ Uomi::Invoice.voided.count.should == 1
155
+ Uomi::Invoice.voided.first.should == voided_invoice
156
156
  end
157
157
 
158
158
  end
@@ -164,7 +164,7 @@ describe Invoicing::Invoice do
164
164
  end
165
165
 
166
166
  it "should allow a specific invoice number to be specified" do
167
- invoice = Invoicing::generate do
167
+ invoice = Uomi::generate_invoice do
168
168
  numbered "CUSTOMREF123"
169
169
  end
170
170
 
@@ -172,7 +172,7 @@ describe Invoicing::Invoice do
172
172
  end
173
173
 
174
174
  it "should allow a custom invoice number format to be specified containing the invoice id" do
175
- invoice = Invoicing::generate do
175
+ invoice = Uomi::generate_invoice do
176
176
  numbered "CUSTOMREF{id}"
177
177
  end
178
178
 
@@ -180,15 +180,15 @@ describe Invoicing::Invoice do
180
180
  end
181
181
 
182
182
  it "should validate that the invoice number is unique per seller" do
183
- seller = Invoicing::DebitTransaction.create!
183
+ seller = Uomi::DebitTransaction.create!
184
184
 
185
- invoice = Invoicing::generate do
185
+ invoice = Uomi::generate_invoice do
186
186
  numbered "CUSTOMREF123"
187
187
  from seller
188
188
  end
189
189
 
190
190
  expect {
191
- invoice = Invoicing::generate do
191
+ invoice = Uomi::generate_invoice do
192
192
  numbered "CUSTOMREF123"
193
193
  from seller
194
194
  end
@@ -196,17 +196,17 @@ describe Invoicing::Invoice do
196
196
  end
197
197
 
198
198
  it "should allow two invoices with the same invoice number, but from different sellers" do
199
- first_seller = Invoicing::DebitTransaction.create!
199
+ first_seller = Uomi::DebitTransaction.create!
200
200
 
201
- invoice = Invoicing::generate do
201
+ invoice = Uomi::generate_invoice do
202
202
  numbered "CUSTOMREF123"
203
203
  from first_seller
204
204
  end
205
205
 
206
- second_seller = Invoicing::DebitTransaction.create!
206
+ second_seller = Uomi::DebitTransaction.create!
207
207
 
208
208
  expect {
209
- invoice = Invoicing::generate do
209
+ invoice = Uomi::generate_invoice do
210
210
  numbered "CUSTOMREF123"
211
211
  from second_seller
212
212
  end
@@ -216,7 +216,7 @@ describe Invoicing::Invoice do
216
216
  end
217
217
 
218
218
  it "should be able to register multiple payment references to look up invoices by" do
219
- invoice = Invoicing::generate do
219
+ invoice = Uomi::generate_invoice do
220
220
  payment_reference "Mr. Anderson"
221
221
  payment_reference "REF23934"
222
222
  end
@@ -225,9 +225,9 @@ describe Invoicing::Invoice do
225
225
  end
226
226
 
227
227
  it "should be able to specify the seller" do
228
- seller = Invoicing::DebitTransaction.create!
228
+ seller = Uomi::DebitTransaction.create!
229
229
 
230
- invoice = Invoicing::generate do
230
+ invoice = Uomi::generate_invoice do
231
231
  from seller
232
232
  end
233
233
 
@@ -235,26 +235,26 @@ describe Invoicing::Invoice do
235
235
  end
236
236
 
237
237
  it "should be able to find invoices for a given reference" do
238
- invoice1 = Invoicing::generate do
238
+ invoice1 = Uomi::generate_invoice do
239
239
  payment_reference "Mr. Anderson"
240
240
  payment_reference "REF23934"
241
241
  end
242
242
 
243
- invoice2 = Invoicing::generate do
243
+ invoice2 = Uomi::generate_invoice do
244
244
  payment_reference "Mr. Anderson"
245
245
  end
246
246
 
247
- Invoicing::Invoice.for_payment_reference("Mr. Anderson").should == [invoice1, invoice2]
248
- Invoicing::Invoice.for_payment_reference("REF23934").should == [invoice1]
249
- Invoicing::Invoice.for_payment_reference("My Payment").should == []
247
+ Uomi::Invoice.for_payment_reference("Mr. Anderson").should == [invoice1, invoice2]
248
+ Uomi::Invoice.for_payment_reference("REF23934").should == [invoice1]
249
+ Uomi::Invoice.for_payment_reference("My Payment").should == []
250
250
  end
251
251
 
252
252
  context "when adding a line item" do
253
253
 
254
254
  it "should be able to attach an invoiceable item to the line item" do
255
- item_to_invoice = @invoice.extend(Invoicing::Invoiceable)
255
+ item_to_invoice = @invoice.extend(Uomi::Invoiceable)
256
256
 
257
- invoice = Invoicing::generate do
257
+ invoice = Uomi::generate_invoice do
258
258
  line_item item_to_invoice
259
259
  end
260
260
 
@@ -263,11 +263,11 @@ describe Invoicing::Invoice do
263
263
  end
264
264
 
265
265
  it "should be able to add decoration data to the invoice" do
266
- item_to_invoice = @invoice.extend(Invoicing::Invoiceable)
266
+ item_to_invoice = @invoice.extend(Uomi::Invoiceable)
267
267
 
268
268
  decoration = {invoicee: "Bob Jones"}
269
269
 
270
- invoice = Invoicing::generate do
270
+ invoice = Uomi::generate_invoice do
271
271
  line_item item_to_invoice
272
272
  decorate_with decoration
273
273
  end
@@ -278,40 +278,40 @@ describe Invoicing::Invoice do
278
278
  context "destroying an invoice" do
279
279
 
280
280
  it "should destroy its associated line items" do
281
- Invoicing::LineItem.create! amount: 0
282
- Invoicing::LineItem.count.should == 5
281
+ Uomi::LineItem.create! amount: 0
282
+ Uomi::LineItem.count.should == 5
283
283
  @invoice.destroy
284
- Invoicing::LineItem.count.should == 1
284
+ Uomi::LineItem.count.should == 1
285
285
  end
286
286
 
287
287
  it "should destroy its associated transactions" do
288
288
  @invoice.issue!
289
- Invoicing::Transaction.create!
290
- Invoicing::Transaction.count.should == 2
289
+ Uomi::Transaction.create!
290
+ Uomi::Transaction.count.should == 2
291
291
  @invoice.destroy
292
- Invoicing::Transaction.count.should == 1
292
+ Uomi::Transaction.count.should == 1
293
293
  end
294
294
 
295
295
  it "should destroy its associated payment_references" do
296
- Invoicing::PaymentReference.create!
297
- Invoicing::PaymentReference.count.should == 2
296
+ Uomi::PaymentReference.create!
297
+ Uomi::PaymentReference.count.should == 2
298
298
  @invoice.destroy
299
- Invoicing::PaymentReference.count.should == 1
299
+ Uomi::PaymentReference.count.should == 1
300
300
  end
301
301
 
302
302
  it "should destroy its associated late payments" do
303
- Invoicing::LatePayment.create!
304
- Invoicing::LatePayment.create! invoice_id: @invoice.id
305
- Invoicing::LatePayment.count.should == 2
303
+ Uomi::LatePayment.create!
304
+ Uomi::LatePayment.create! invoice_id: @invoice.id
305
+ Uomi::LatePayment.count.should == 2
306
306
  @invoice.destroy
307
- Invoicing::LatePayment.count.should == 1
307
+ Uomi::LatePayment.count.should == 1
308
308
  end
309
309
 
310
310
  it "should destroy its associated decorator" do
311
- Invoicing::InvoiceDecorator.create!
312
- Invoicing::InvoiceDecorator.count.should == 2
311
+ Uomi::InvoiceDecorator.create!
312
+ Uomi::InvoiceDecorator.count.should == 2
313
313
  @invoice.destroy
314
- Invoicing::InvoiceDecorator.count.should == 1
314
+ Uomi::InvoiceDecorator.count.should == 1
315
315
  end
316
316
 
317
317
  end
@@ -378,7 +378,7 @@ describe Invoicing::Invoice do
378
378
  end
379
379
 
380
380
  it "should raise an error when voiding the invoice" do
381
- lambda { @invoice.void! }.should raise_error(Invoicing::CannotVoidDocumentException, "Cannot void a document that has a transaction recorded against it!")
381
+ lambda { @invoice.void! }.should raise_error(Uomi::CannotVoidDocumentException, "Cannot void a document that has a transaction recorded against it!")
382
382
  end
383
383
  end
384
384
  end
@@ -386,10 +386,10 @@ describe Invoicing::Invoice do
386
386
 
387
387
  context "Hooks" do
388
388
  before(:each) do
389
- item_to_invoice = @invoice.extend(Invoicing::Invoiceable)
389
+ item_to_invoice = @invoice.extend(Uomi::Invoiceable)
390
390
  item_to_invoice.amount = 10
391
391
 
392
- @invoice2 = Invoicing::generate do
392
+ @invoice2 = Uomi::generate_invoice do
393
393
  line_item item_to_invoice
394
394
  end
395
395
 
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe Uomi::LineItem do
4
+ include Helpers
5
+
6
+ it "should validate that the amount is positive" do
7
+ expect {Uomi::LineItem.create! amount: -0.01}.to raise_error ActiveRecord::RecordInvalid, "Validation failed: Amount must be greater than or equal to 0"
8
+ end
9
+
10
+ it "should validate that the amount is specified" do
11
+ expect {Uomi::LineItem.create! amount: nil}.to raise_error ActiveRecord::RecordInvalid, "Validation failed: Amount is not a number, Amount can't be blank"
12
+ end
13
+
14
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Invoicing::OverdueInvoice do
3
+ describe Uomi::OverdueInvoice do
4
4
  include Helpers
5
5
 
6
6
  before(:each) do
@@ -8,59 +8,59 @@ describe Invoicing::OverdueInvoice do
8
8
  end
9
9
 
10
10
  it "should find all invoices which are overdue" do
11
- Invoicing::generate do
11
+ Uomi::generate_invoice do
12
12
  line_item description: "Line Item 1", amount: 1101
13
13
  due Time.now
14
14
  end
15
15
 
16
- Invoicing::generate do
16
+ Uomi::generate_invoice do
17
17
  due Time.now - 1.days
18
18
  line_item description: "Line Item 1", amount: 1101
19
19
  end
20
20
 
21
- Invoicing::generate do
21
+ Uomi::generate_invoice do
22
22
  due Time.now - 1.days
23
23
  line_item description: "Line Item 1", amount: 0
24
24
  end
25
25
 
26
- Invoicing::Invoice.all.each(&:issue!)
27
- Invoicing::OverdueInvoice.all.count.should == 1
26
+ Uomi::Invoice.all.each(&:issue!)
27
+ Uomi::OverdueInvoice.all.count.should == 1
28
28
  end
29
29
 
30
30
  it "should record a late payment against an invoice which is overdue" do
31
- Invoicing::generate do
31
+ Uomi::generate_invoice do
32
32
  due Time.now
33
33
  line_item description: "Line Item 1", amount: 1101
34
34
  end
35
35
 
36
- invoice2 = Invoicing::generate do
36
+ invoice2 = Uomi::generate_invoice do
37
37
  due Time.now - 1.days
38
38
  line_item description: "Line Item 1", amount: 1101
39
39
  end
40
40
 
41
- Invoicing::generate do
41
+ Uomi::generate_invoice do
42
42
  due Time.now - 1.days
43
43
  line_item description: "Line Item 1", amount: 0
44
44
  end
45
45
 
46
- Invoicing::Invoice.all.each(&:issue!)
47
- Invoicing::OverdueInvoice.record_late_payments!
46
+ Uomi::Invoice.all.each(&:issue!)
47
+ Uomi::OverdueInvoice.record_late_payments!
48
48
 
49
- Invoicing::LatePayment.count.should == 1
50
- Invoicing::LatePayment.first.invoice.should == invoice2
51
- Invoicing::LatePayment.first.amount.should == 1101
52
- invoice2.late_payment.should == Invoicing::LatePayment.first
49
+ Uomi::LatePayment.count.should == 1
50
+ Uomi::LatePayment.first.invoice.should == invoice2
51
+ Uomi::LatePayment.first.amount.should == 1101
52
+ invoice2.late_payment.should == Uomi::LatePayment.first
53
53
  end
54
54
 
55
55
  it "should default the late payment penalty date to 7 days from the date the late payment was recorded" do
56
- invoice = Invoicing::generate do
56
+ invoice = Uomi::generate_invoice do
57
57
  due Time.now - 1.days
58
58
  line_item description: "Line Item 1", amount: 1101
59
59
  end
60
60
 
61
- Invoicing::Invoice.all.each(&:issue!)
61
+ Uomi::Invoice.all.each(&:issue!)
62
62
 
63
- Invoicing::OverdueInvoice.record_late_payments!
63
+ Uomi::OverdueInvoice.record_late_payments!
64
64
  invoice.late_payment.penalty_date.should == Date.today.to_time + 7.days
65
65
  end
66
66
 
@@ -1,11 +1,11 @@
1
1
  module Helpers
2
2
  def tear_it_down
3
- Invoicing::Invoice.delete_all
4
- Invoicing::LineItem.delete_all
5
- Invoicing::Transaction.delete_all
6
- Invoicing::LatePayment.delete_all
7
- Invoicing::PaymentReference.delete_all
8
- Invoicing::Seller.delete_all
3
+ Uomi::Invoice.delete_all
4
+ Uomi::LineItem.delete_all
5
+ Uomi::Transaction.delete_all
6
+ Uomi::LatePayment.delete_all
7
+ Uomi::PaymentReference.delete_all
8
+ Uomi::Seller.delete_all
9
9
  end
10
10
  end
11
11
 
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require "invoicing/version"
3
+ require "uomi/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "uomi"
7
- s.version = Invoicing::VERSION
7
+ s.version = Uomi::VERSION
8
8
  s.authors = ["Douglas Anderson", "Jeffrey van Aswegen"]
9
9
  s.email = ["i.am.douglas.anderson@gmail.com", "jeffmess@gmail.com"]
10
- s.homepage = 'https://github.com/tehtorq/invoicing'
11
- s.summary = %q{ An invoicing gem. }
10
+ s.homepage = 'https://github.com/tehtorq/uomi'
11
+ s.summary = %q{ An uomi gem. }
12
12
  s.description = %q{ Manage invoices. }
13
13
 
14
14
  s.rubyforge_project = "uomi"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uomi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.13
4
+ version: 0.2.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -107,44 +107,44 @@ files:
107
107
  - README.md
108
108
  - Rakefile
109
109
  - config.ru
110
- - invoicing.gemspec
111
- - lib/generators/active_record/invoicing_generator.rb
112
110
  - lib/generators/active_record/templates/migration.rb
113
- - lib/invoicing.rb
114
- - lib/invoicing/buyer.rb
115
- - lib/invoicing/credit_note.rb
116
- - lib/invoicing/credit_note_credit_transaction.rb
117
- - lib/invoicing/credit_note_invoice.rb
118
- - lib/invoicing/credit_transaction.rb
119
- - lib/invoicing/debit_transaction.rb
120
- - lib/invoicing/exception.rb
121
- - lib/invoicing/invoice.rb
122
- - lib/invoicing/invoice_adjustment.rb
123
- - lib/invoicing/invoice_decorator.rb
124
- - lib/invoicing/invoiceable.rb
125
- - lib/invoicing/late_payment.rb
126
- - lib/invoicing/line_item.rb
127
- - lib/invoicing/line_item_type.rb
128
- - lib/invoicing/overdue_invoice.rb
129
- - lib/invoicing/payment_reference.rb
130
- - lib/invoicing/seller.rb
131
- - lib/invoicing/transaction.rb
132
- - lib/invoicing/version.rb
111
+ - lib/generators/active_record/uomi_generator.rb
112
+ - lib/uomi.rb
113
+ - lib/uomi/buyer.rb
114
+ - lib/uomi/credit_note.rb
115
+ - lib/uomi/credit_note_credit_transaction.rb
116
+ - lib/uomi/credit_note_invoice.rb
117
+ - lib/uomi/credit_transaction.rb
118
+ - lib/uomi/debit_transaction.rb
119
+ - lib/uomi/exception.rb
120
+ - lib/uomi/invoice.rb
121
+ - lib/uomi/invoice_adjustment.rb
122
+ - lib/uomi/invoice_decorator.rb
123
+ - lib/uomi/invoiceable.rb
124
+ - lib/uomi/late_payment.rb
125
+ - lib/uomi/line_item.rb
126
+ - lib/uomi/line_item_type.rb
127
+ - lib/uomi/overdue_invoice.rb
128
+ - lib/uomi/payment_reference.rb
129
+ - lib/uomi/seller.rb
130
+ - lib/uomi/transaction.rb
131
+ - lib/uomi/version.rb
133
132
  - spec/README
134
133
  - spec/internal/config/database.yml.sample
135
134
  - spec/internal/config/routes.rb
136
135
  - spec/internal/db/schema.rb
137
136
  - spec/internal/log/.gitignore
138
137
  - spec/internal/public/favicon.ico
139
- - spec/lib/invoicing/credit_note_spec.rb
140
- - spec/lib/invoicing/invoice_adjustment_spec.rb
141
- - spec/lib/invoicing/invoice_late_payment_spec.rb
142
- - spec/lib/invoicing/invoice_spec.rb
143
- - spec/lib/invoicing/line_item_spec.rb
144
- - spec/lib/invoicing/overdue_invoice_spec.rb
138
+ - spec/lib/uomi/credit_note_spec.rb
139
+ - spec/lib/uomi/invoice_adjustment_spec.rb
140
+ - spec/lib/uomi/invoice_late_payment_spec.rb
141
+ - spec/lib/uomi/invoice_spec.rb
142
+ - spec/lib/uomi/line_item_spec.rb
143
+ - spec/lib/uomi/overdue_invoice_spec.rb
145
144
  - spec/spec_helper.rb
146
145
  - spec/support/helpers.rb
147
- homepage: https://github.com/tehtorq/invoicing
146
+ - uomi.gemspec
147
+ homepage: https://github.com/tehtorq/uomi
148
148
  licenses: []
149
149
  post_install_message:
150
150
  rdoc_options: []
@@ -167,7 +167,7 @@ rubyforge_project: uomi
167
167
  rubygems_version: 1.8.24
168
168
  signing_key:
169
169
  specification_version: 3
170
- summary: An invoicing gem.
170
+ summary: An uomi gem.
171
171
  test_files:
172
172
  - spec/README
173
173
  - spec/internal/config/database.yml.sample
@@ -175,11 +175,11 @@ test_files:
175
175
  - spec/internal/db/schema.rb
176
176
  - spec/internal/log/.gitignore
177
177
  - spec/internal/public/favicon.ico
178
- - spec/lib/invoicing/credit_note_spec.rb
179
- - spec/lib/invoicing/invoice_adjustment_spec.rb
180
- - spec/lib/invoicing/invoice_late_payment_spec.rb
181
- - spec/lib/invoicing/invoice_spec.rb
182
- - spec/lib/invoicing/line_item_spec.rb
183
- - spec/lib/invoicing/overdue_invoice_spec.rb
178
+ - spec/lib/uomi/credit_note_spec.rb
179
+ - spec/lib/uomi/invoice_adjustment_spec.rb
180
+ - spec/lib/uomi/invoice_late_payment_spec.rb
181
+ - spec/lib/uomi/invoice_spec.rb
182
+ - spec/lib/uomi/line_item_spec.rb
183
+ - spec/lib/uomi/overdue_invoice_spec.rb
184
184
  - spec/spec_helper.rb
185
185
  - spec/support/helpers.rb
@@ -1,3 +0,0 @@
1
- module Invoicing
2
- VERSION = "0.2.13"
3
- end
data/lib/invoicing.rb DELETED
@@ -1,46 +0,0 @@
1
- require "active_record"
2
- require "workflow"
3
- require "invoicing/version"
4
-
5
- module Invoicing
6
-
7
- def self.table_name_prefix
8
- 'invoicing_'
9
- end
10
-
11
- def self.generate(&block)
12
- invoice = Invoice.new
13
- invoice.instance_eval(&block)
14
- invoice.save!
15
- invoice
16
- end
17
-
18
- def self.generate_credit_note(&block)
19
- credit_note = CreditNote.new
20
- credit_note.instance_eval(&block)
21
- credit_note.save!
22
- credit_note.issue!
23
- credit_note
24
- end
25
-
26
- end
27
-
28
- require "invoicing/exception"
29
- require "invoicing/invoiceable"
30
- require "invoicing/transaction"
31
- require "invoicing/credit_transaction"
32
- require "invoicing/debit_transaction"
33
- require "invoicing/late_payment"
34
- require "invoicing/line_item"
35
- require "invoicing/payment_reference"
36
- require "invoicing/seller"
37
- require "invoicing/buyer"
38
- require "invoicing/invoice_decorator"
39
- require "invoicing/credit_note_invoice"
40
- require "invoicing/credit_note_credit_transaction"
41
-
42
- require "invoicing/invoice"
43
- require "invoicing/credit_note"
44
- require "invoicing/overdue_invoice"
45
- require "invoicing/invoice_adjustment"
46
- require "invoicing/line_item_type"
@@ -1,14 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Invoicing::LineItem do
4
- include Helpers
5
-
6
- it "should validate that the amount is positive" do
7
- expect {Invoicing::LineItem.create! amount: -0.01}.to raise_error ActiveRecord::RecordInvalid, "Validation failed: Amount must be greater than or equal to 0"
8
- end
9
-
10
- it "should validate that the amount is specified" do
11
- expect {Invoicing::LineItem.create! amount: nil}.to raise_error ActiveRecord::RecordInvalid, "Validation failed: Amount is not a number, Amount can't be blank"
12
- end
13
-
14
- end