xeroizer 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/xeroizer.rb +1 -0
- data/lib/xeroizer/models/journal_line.rb +1 -1
- data/lib/xeroizer/models/journal_line_tracking_category.rb +20 -0
- data/lib/xeroizer/models/manual_journal.rb +2 -1
- data/lib/xeroizer/record/base_model.rb +6 -0
- data/lib/xeroizer/record/xml_helper.rb +2 -2
- data/test/unit/models/journal_line_test.rb +22 -0
- data/test/unit/models/line_item_test.rb +16 -0
- data/xeroizer.gemspec +3 -1
- metadata +5 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.1
|
data/lib/xeroizer.rb
CHANGED
@@ -52,6 +52,7 @@ require 'xeroizer/models/phone'
|
|
52
52
|
require 'xeroizer/models/tax_rate'
|
53
53
|
require 'xeroizer/models/tracking_category'
|
54
54
|
require 'xeroizer/models/tracking_category_child'
|
55
|
+
require 'xeroizer/models/journal_line_tracking_category'
|
55
56
|
|
56
57
|
require 'xeroizer/report/factory'
|
57
58
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Xeroizer
|
2
|
+
module Record
|
3
|
+
|
4
|
+
class JournalLineTrackingCategoryModel < BaseModel
|
5
|
+
|
6
|
+
set_xml_root_name 'TrackingCategories'
|
7
|
+
set_xml_node_name 'TrackingCategory'
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
class JournalLineTrackingCategory < Base
|
12
|
+
|
13
|
+
string :name
|
14
|
+
string :option
|
15
|
+
guid :tracking_category_id
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -24,7 +24,8 @@ module Xeroizer
|
|
24
24
|
string :status
|
25
25
|
string :line_amount_types
|
26
26
|
string :narration
|
27
|
-
string :url
|
27
|
+
string :url
|
28
|
+
boolean :show_on_cash_basis_reports
|
28
29
|
datetime :updated_date_utc, :api_name => 'UpdatedDateUTC'
|
29
30
|
|
30
31
|
has_many :journal_lines, :model_name => 'ManualJournalLine'
|
@@ -13,6 +13,7 @@ module Xeroizer
|
|
13
13
|
class_inheritable_attributes :permissions
|
14
14
|
|
15
15
|
class_inheritable_attributes :xml_root_name
|
16
|
+
class_inheritable_attributes :optional_xml_root_name
|
16
17
|
class_inheritable_attributes :xml_node_name
|
17
18
|
|
18
19
|
include BaseModelHttpProxy
|
@@ -57,6 +58,11 @@ module Xeroizer
|
|
57
58
|
self.xml_root_name = root_name
|
58
59
|
end
|
59
60
|
|
61
|
+
# Method to add an extra top-level node to use in has_many associations.
|
62
|
+
def set_optional_xml_root_name(optional_root_name)
|
63
|
+
self.optional_root_name = optional_root_name
|
64
|
+
end
|
65
|
+
|
60
66
|
end
|
61
67
|
|
62
68
|
public
|
@@ -56,7 +56,7 @@ module Xeroizer
|
|
56
56
|
|
57
57
|
# Turn a record into its XML representation.
|
58
58
|
def to_xml(b = Builder::XmlMarkup.new(:indent => 2))
|
59
|
-
optional_root_tag(parent.class.xml_root_name, b) do |b|
|
59
|
+
# optional_root_tag(parent.class.xml_root_name, b) do |b|
|
60
60
|
b.tag!(parent.class.xml_node_name || parent.model_name) {
|
61
61
|
attributes.each do | key, value |
|
62
62
|
field = self.class.fields[key]
|
@@ -64,7 +64,7 @@ module Xeroizer
|
|
64
64
|
xml_value_from_field(b, field, value) unless value.nil?
|
65
65
|
end
|
66
66
|
}
|
67
|
-
end
|
67
|
+
# end
|
68
68
|
end
|
69
69
|
|
70
70
|
protected
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class JournalLineTest < Test::Unit::TestCase
|
4
|
+
include TestHelper
|
5
|
+
include Xeroizer::Record
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@client = Xeroizer::PublicApplication.new(CONSUMER_KEY, CONSUMER_SECRET)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "journal_line tracking specified correctly" do
|
12
|
+
invoice = @client.Journal.build
|
13
|
+
line = invoice.add_journal_line({})
|
14
|
+
|
15
|
+
line.add_tracking_category(:name => "Name 1", :option => "Option 1")
|
16
|
+
line.add_tracking_category(:name => "Name 2", :option => "Option 2")
|
17
|
+
|
18
|
+
doc = Nokogiri::XML(line.to_xml)
|
19
|
+
assert_equal 2, doc.xpath("/JournalLine/TrackingCategories/TrackingCategory").size
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -1,7 +1,23 @@
|
|
1
1
|
require "test_helper"
|
2
2
|
|
3
3
|
class LineItemTest < Test::Unit::TestCase
|
4
|
+
include TestHelper
|
4
5
|
include Xeroizer::Record
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@client = Xeroizer::PublicApplication.new(CONSUMER_KEY, CONSUMER_SECRET)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "line_item tracking specified correctly" do
|
12
|
+
invoice = @client.Invoice.build
|
13
|
+
line_item = invoice.add_line_item({})
|
14
|
+
|
15
|
+
line_item.add_tracking(:name => "Name 1", :option => "Option 1")
|
16
|
+
line_item.add_tracking(:name => "Name 2", :option => "Option 2")
|
17
|
+
|
18
|
+
doc = Nokogiri::XML(line_item.to_xml)
|
19
|
+
assert_equal 2, doc.xpath("/LineItem/Tracking/TrackingCategory").size
|
20
|
+
end
|
5
21
|
|
6
22
|
it "line_amount equals unit_price times quantity" do
|
7
23
|
line_item = LineItem.new(nil)
|
data/xeroizer.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "xeroizer"
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Wayne Robinson"]
|
@@ -52,6 +52,7 @@ Gem::Specification.new do |s|
|
|
52
52
|
"lib/xeroizer/models/item_sales_details.rb",
|
53
53
|
"lib/xeroizer/models/journal.rb",
|
54
54
|
"lib/xeroizer/models/journal_line.rb",
|
55
|
+
"lib/xeroizer/models/journal_line_tracking_category.rb",
|
55
56
|
"lib/xeroizer/models/line_amount_type.rb",
|
56
57
|
"lib/xeroizer/models/line_item.rb",
|
57
58
|
"lib/xeroizer/models/line_item_sum.rb",
|
@@ -334,6 +335,7 @@ Gem::Specification.new do |s|
|
|
334
335
|
"test/unit/models/contact_test.rb",
|
335
336
|
"test/unit/models/credit_note_test.rb",
|
336
337
|
"test/unit/models/invoice_test.rb",
|
338
|
+
"test/unit/models/journal_line_test.rb",
|
337
339
|
"test/unit/models/line_item_sum_test.rb",
|
338
340
|
"test/unit/models/line_item_test.rb",
|
339
341
|
"test/unit/oauth_config_test.rb",
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xeroizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 1
|
10
|
+
version: 0.5.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Wayne Robinson
|
@@ -238,6 +238,7 @@ files:
|
|
238
238
|
- lib/xeroizer/models/item_sales_details.rb
|
239
239
|
- lib/xeroizer/models/journal.rb
|
240
240
|
- lib/xeroizer/models/journal_line.rb
|
241
|
+
- lib/xeroizer/models/journal_line_tracking_category.rb
|
241
242
|
- lib/xeroizer/models/line_amount_type.rb
|
242
243
|
- lib/xeroizer/models/line_item.rb
|
243
244
|
- lib/xeroizer/models/line_item_sum.rb
|
@@ -520,6 +521,7 @@ files:
|
|
520
521
|
- test/unit/models/contact_test.rb
|
521
522
|
- test/unit/models/credit_note_test.rb
|
522
523
|
- test/unit/models/invoice_test.rb
|
524
|
+
- test/unit/models/journal_line_test.rb
|
523
525
|
- test/unit/models/line_item_sum_test.rb
|
524
526
|
- test/unit/models/line_item_test.rb
|
525
527
|
- test/unit/oauth_config_test.rb
|