uomi 0.2.13 → 0.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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