ledger_sync 1.3.1 → 1.3.2
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ledger_sync/adaptors/ledger_serializer.rb +36 -6
- data/lib/ledger_sync/adaptors/ledger_serializer_attribute.rb +33 -3
- data/lib/ledger_sync/adaptors/ledger_serializer_attribute_set.rb +7 -0
- data/lib/ledger_sync/adaptors/ledger_serializer_type/references_one_type.rb +22 -0
- data/lib/ledger_sync/adaptors/mixins/infer_ledger_serializer_mixin.rb +1 -1
- data/lib/ledger_sync/adaptors/netsuite/account/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/netsuite/account/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/account/ledger_serializer.rb +25 -9
- data/lib/ledger_sync/adaptors/quickbooks_online/account/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/account/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/account/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/adaptor.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/bill/ledger_serializer.rb +4 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/bill/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/bill/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/bill/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/currency/ledger_serializer.rb +17 -0
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit/ledger_serializer.rb +4 -2
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/expense/ledger_serializer.rb +4 -2
- data/lib/ledger_sync/adaptors/quickbooks_online/expense/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/expense/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/expense/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/invoice/ledger_serializer.rb +3 -2
- data/lib/ledger_sync/adaptors/quickbooks_online/invoice/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/invoice/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/invoice/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/ledger_serializer.rb +4 -2
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/payment/ledger_serializer.rb +6 -4
- data/lib/ledger_sync/adaptors/quickbooks_online/payment/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/payment/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/payment/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/request.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/transfer/ledger_serializer.rb +5 -2
- data/lib/ledger_sync/adaptors/quickbooks_online/transfer/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/transfer/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/quickbooks_online/transfer/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/test/account/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/test/account/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/test/account/operations/invalid.rb +1 -1
- data/lib/ledger_sync/adaptors/test/account/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/test/account/operations/valid.rb +1 -1
- data/lib/ledger_sync/adaptors/test/expense/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/test/expense/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/test/expense/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/test/payment/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/test/payment/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/test/payment/operations/update.rb +1 -1
- data/lib/ledger_sync/adaptors/test/transfer/operations/create.rb +1 -1
- data/lib/ledger_sync/adaptors/test/transfer/operations/find.rb +1 -1
- data/lib/ledger_sync/adaptors/test/transfer/operations/update.rb +1 -1
- data/lib/ledger_sync/resources/account.rb +4 -1
- data/lib/ledger_sync/resources/bill.rb +2 -1
- data/lib/ledger_sync/resources/deposit.rb +2 -1
- data/lib/ledger_sync/resources/expense.rb +3 -2
- data/lib/ledger_sync/resources/invoice.rb +2 -1
- data/lib/ledger_sync/resources/journal_entry.rb +3 -1
- data/lib/ledger_sync/resources/payment.rb +2 -1
- data/lib/ledger_sync/resources/transfer.rb +2 -1
- data/lib/ledger_sync/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 05667fe1a37dc8edfcb33121d2eb5f08ad076b8b635ecaaf33809b663c830f68
|
|
4
|
+
data.tar.gz: 3b3a6c68af8ecf2ce04a8f789854fb1002b3d90d5e747e71d398aa1b1b8b4c9f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 14cdebe2e5342838d44202fbe9b11c28e09a6e18ccbb4827145d0b098833c1549c9e922bd8760555708358058df74ff5574a46b91aa67d48f347a99d2e5a0129
|
|
7
|
+
data.tar.gz: 8a48a4251273a4aa7a2cca65cc1eaed38c87d385caa2aeb1c3eaf63c76f0d67bf5af3099dcb16a1c4df82517e79c3bd35c8b41584a1a5197a584bce5c951ca5f
|
data/Gemfile.lock
CHANGED
|
@@ -12,9 +12,9 @@ module LedgerSync
|
|
|
12
12
|
|
|
13
13
|
attr_reader :resource
|
|
14
14
|
|
|
15
|
-
def initialize(resource:)
|
|
15
|
+
def initialize(ensure_inferred_resource_class: true, resource:)
|
|
16
16
|
@resource = resource
|
|
17
|
-
ensure_inferred_resource_class!
|
|
17
|
+
ensure_inferred_resource_class! if ensure_inferred_resource_class
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def attribute_value_from_ledger(hash:, ledger_serializer_attribute:, resource:)
|
|
@@ -28,7 +28,7 @@ module LedgerSync
|
|
|
28
28
|
deserialize_into = resource.dup # Do not overwrite values in the resource
|
|
29
29
|
hash = Util::HashHelpers.deep_stringify_keys(hash)
|
|
30
30
|
|
|
31
|
-
self.class.attributes.each do |ledger_serializer_attribute|
|
|
31
|
+
self.class.attributes.deserializable_attributes.each do |ledger_serializer_attribute|
|
|
32
32
|
next unless ledger_serializer_attribute.resource_attribute?
|
|
33
33
|
|
|
34
34
|
value = attribute_value_from_ledger(
|
|
@@ -49,7 +49,7 @@ module LedgerSync
|
|
|
49
49
|
def to_ledger_hash(only_changes: false)
|
|
50
50
|
ret = {}
|
|
51
51
|
|
|
52
|
-
self.class.attributes.each do |ledger_serializer_attribute|
|
|
52
|
+
self.class.attributes.serializable_attributes.each do |ledger_serializer_attribute|
|
|
53
53
|
next if only_changes && !resource.attribute_changed?(ledger_serializer_attribute.resource_attribute)
|
|
54
54
|
|
|
55
55
|
ret = Util::HashHelpers.deep_merge(
|
|
@@ -61,11 +61,20 @@ module LedgerSync
|
|
|
61
61
|
ret
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
-
def self.attribute(
|
|
64
|
+
def self.attribute(
|
|
65
|
+
deserialize: true,
|
|
66
|
+
ledger_attribute:,
|
|
67
|
+
resource_attribute: nil,
|
|
68
|
+
serialize: true,
|
|
69
|
+
type: LedgerSerializerType::ValueType,
|
|
70
|
+
&block
|
|
71
|
+
)
|
|
65
72
|
_attribute(
|
|
66
73
|
block: (block if block_given?),
|
|
74
|
+
deserialize: deserialize,
|
|
67
75
|
ledger_attribute: ledger_attribute,
|
|
68
76
|
resource_attribute: resource_attribute,
|
|
77
|
+
serialize: serialize,
|
|
69
78
|
type: type
|
|
70
79
|
)
|
|
71
80
|
end
|
|
@@ -83,6 +92,15 @@ module LedgerSync
|
|
|
83
92
|
)
|
|
84
93
|
end
|
|
85
94
|
|
|
95
|
+
def self.references_one(ledger_attribute:, resource_attribute:, serializer:)
|
|
96
|
+
_attribute(
|
|
97
|
+
ledger_attribute: ledger_attribute,
|
|
98
|
+
resource_attribute: resource_attribute,
|
|
99
|
+
serializer: serializer,
|
|
100
|
+
type: LedgerSerializerType::ReferencesOneType
|
|
101
|
+
)
|
|
102
|
+
end
|
|
103
|
+
|
|
86
104
|
def self.id(ledger_attribute:, resource_attribute:, &block)
|
|
87
105
|
@id ||= _attribute(
|
|
88
106
|
block: (block if block_given?),
|
|
@@ -98,13 +116,25 @@ module LedgerSync
|
|
|
98
116
|
)
|
|
99
117
|
end
|
|
100
118
|
|
|
101
|
-
private_class_method def self._build_attribute(
|
|
119
|
+
private_class_method def self._build_attribute(
|
|
120
|
+
block: nil,
|
|
121
|
+
deserialize: true,
|
|
122
|
+
id: false,
|
|
123
|
+
ledger_attribute:,
|
|
124
|
+
resource_attribute: nil,
|
|
125
|
+
resource_class: nil,
|
|
126
|
+
serialize: true,
|
|
127
|
+
serializer: nil,
|
|
128
|
+
type: LedgerSerializerType::ValueType
|
|
129
|
+
)
|
|
102
130
|
LedgerSerializerAttribute.new(
|
|
103
131
|
id: id,
|
|
104
132
|
block: block,
|
|
133
|
+
deserialize: deserialize,
|
|
105
134
|
ledger_attribute: ledger_attribute,
|
|
106
135
|
resource_attribute: resource_attribute,
|
|
107
136
|
resource_class: resource_class,
|
|
137
|
+
serialize: serialize,
|
|
108
138
|
serializer: serializer,
|
|
109
139
|
type: type
|
|
110
140
|
)
|
|
@@ -7,21 +7,35 @@ module LedgerSync
|
|
|
7
7
|
module Adaptors
|
|
8
8
|
class LedgerSerializerAttribute
|
|
9
9
|
attr_reader :block,
|
|
10
|
+
:deserialize,
|
|
10
11
|
:id,
|
|
11
12
|
:ledger_attribute,
|
|
12
13
|
:resource_attribute,
|
|
13
14
|
:resource_class,
|
|
15
|
+
:serialize,
|
|
14
16
|
:serializer,
|
|
15
17
|
:type
|
|
16
18
|
|
|
17
|
-
def initialize(
|
|
19
|
+
def initialize(
|
|
20
|
+
block: nil,
|
|
21
|
+
deserialize: true,
|
|
22
|
+
id: false,
|
|
23
|
+
ledger_attribute:,
|
|
24
|
+
resource_attribute: nil,
|
|
25
|
+
resource_class: nil,
|
|
26
|
+
serialize: true,
|
|
27
|
+
serializer: nil,
|
|
28
|
+
type: LedgerSerializerType::ValueType
|
|
29
|
+
)
|
|
18
30
|
raise 'block and resource_attribute cannot both be present' unless block.nil? || resource_attribute.nil?
|
|
19
31
|
|
|
20
32
|
@block = block
|
|
33
|
+
@deserialize = deserialize
|
|
21
34
|
@id = id
|
|
22
35
|
@ledger_attribute = ledger_attribute.to_s
|
|
23
36
|
@resource_attribute = resource_attribute.to_s
|
|
24
37
|
@resource_class = resource_class
|
|
38
|
+
@serialize = serialize
|
|
25
39
|
@serializer = serializer
|
|
26
40
|
@type = type.new
|
|
27
41
|
end
|
|
@@ -30,6 +44,10 @@ module LedgerSync
|
|
|
30
44
|
block.call(resource)
|
|
31
45
|
end
|
|
32
46
|
|
|
47
|
+
def deserialize?
|
|
48
|
+
deserialize
|
|
49
|
+
end
|
|
50
|
+
|
|
33
51
|
# Make nested/dot calls (e.g. `vendor.ledger_id`)
|
|
34
52
|
def dot_value_for(resource:)
|
|
35
53
|
resource_attribute_dot_parts.inject(resource) { |r, dot_method| r&.send(dot_method) }
|
|
@@ -59,10 +77,18 @@ module LedgerSync
|
|
|
59
77
|
ledger_attribute_dot_parts.reverse.inject(value) { |a, n| { n => a } }
|
|
60
78
|
end
|
|
61
79
|
|
|
80
|
+
def reference?
|
|
81
|
+
references_many? || references_one?
|
|
82
|
+
end
|
|
83
|
+
|
|
62
84
|
def references_many?
|
|
63
85
|
type.is_a?(LedgerSerializerType::ReferencesManyType)
|
|
64
86
|
end
|
|
65
87
|
|
|
88
|
+
def references_one?
|
|
89
|
+
type.is_a?(LedgerSerializerType::ReferencesOneType)
|
|
90
|
+
end
|
|
91
|
+
|
|
66
92
|
def resource_attribute?
|
|
67
93
|
resource_attribute.present?
|
|
68
94
|
end
|
|
@@ -71,6 +97,10 @@ module LedgerSync
|
|
|
71
97
|
@resource_attribute_dot_parts ||= resource_attribute.split('.')
|
|
72
98
|
end
|
|
73
99
|
|
|
100
|
+
def serialize?
|
|
101
|
+
serialize
|
|
102
|
+
end
|
|
103
|
+
|
|
74
104
|
def value_from_local(resource:)
|
|
75
105
|
value = if block.nil?
|
|
76
106
|
dot_value_for(resource: resource)
|
|
@@ -78,7 +108,7 @@ module LedgerSync
|
|
|
78
108
|
block_value_for(resource: resource)
|
|
79
109
|
end
|
|
80
110
|
|
|
81
|
-
if
|
|
111
|
+
if reference?
|
|
82
112
|
type.convert_from_local(
|
|
83
113
|
serializer: serializer,
|
|
84
114
|
value: value
|
|
@@ -93,7 +123,7 @@ module LedgerSync
|
|
|
93
123
|
def value_from_ledger(hash:, resource:)
|
|
94
124
|
value = hash.dig(*ledger_attribute_dot_parts)
|
|
95
125
|
|
|
96
|
-
value = if
|
|
126
|
+
value = if reference?
|
|
97
127
|
type.convert_from_ledger(
|
|
98
128
|
resource_class: resource_class,
|
|
99
129
|
serializer: serializer,
|
|
@@ -4,9 +4,11 @@ module LedgerSync
|
|
|
4
4
|
module Adaptors
|
|
5
5
|
class LedgerSerializerAttributeSet
|
|
6
6
|
attr_reader :attributes,
|
|
7
|
+
:deserializable_attributes,
|
|
7
8
|
:id_attribute,
|
|
8
9
|
:ledger_attribute_keyed_hash,
|
|
9
10
|
:resource_attribute_keyed_hash,
|
|
11
|
+
:serializable_attributes,
|
|
10
12
|
:serializer_class
|
|
11
13
|
|
|
12
14
|
delegate :[],
|
|
@@ -17,8 +19,10 @@ module LedgerSync
|
|
|
17
19
|
|
|
18
20
|
def initialize(serializer_class:)
|
|
19
21
|
@attributes = []
|
|
22
|
+
@deserializable_attributes = []
|
|
20
23
|
@ledger_attribute_keyed_hash = {}
|
|
21
24
|
@resource_attribute_keyed_hash = {}
|
|
25
|
+
@serializable_attributes = []
|
|
22
26
|
@serializer_class = serializer_class
|
|
23
27
|
end
|
|
24
28
|
|
|
@@ -37,6 +41,9 @@ module LedgerSync
|
|
|
37
41
|
resource_attribute_keyed_hash[attribute.resource_attribute.to_s] = attribute
|
|
38
42
|
end
|
|
39
43
|
|
|
44
|
+
serializable_attributes << attribute if attribute.serialize?
|
|
45
|
+
deserializable_attributes << attribute if attribute.deserialize?
|
|
46
|
+
|
|
40
47
|
# TODO: Can make this validate something like `expense.vendor.id`
|
|
41
48
|
# raise "#{resource_attribute} is not an attribute of the resource #{_inferred_resource_class}" if !resource_attribute.nil? && !_inferred_resource_class.serialize_attribute?(resource_attribute)
|
|
42
49
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module LedgerSync
|
|
4
|
+
module Adaptors
|
|
5
|
+
module LedgerSerializerType
|
|
6
|
+
class ReferencesOneType < ValueType
|
|
7
|
+
def convert_from_ledger(resource_class: nil, serializer:, value:)
|
|
8
|
+
return if value.nil?
|
|
9
|
+
|
|
10
|
+
resource_class ||= serializer.inferred_resource_class
|
|
11
|
+
serializer.new(resource: resource_class.new).deserialize(hash: value)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def convert_from_local(serializer:, value:)
|
|
15
|
+
return if value.nil?
|
|
16
|
+
|
|
17
|
+
serializer.new(resource: value).to_ledger_hash
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -6,7 +6,7 @@ module LedgerSync
|
|
|
6
6
|
module InferLedgerSerializerMixin
|
|
7
7
|
module ClassMethods
|
|
8
8
|
def inferred_ledger_serializer(resource:)
|
|
9
|
-
|
|
9
|
+
inferred_ledger_serializer_class.new(
|
|
10
10
|
resource: resource
|
|
11
11
|
)
|
|
12
12
|
end
|
|
@@ -15,7 +15,7 @@ module LedgerSync
|
|
|
15
15
|
required(:account_type).maybe(:string)
|
|
16
16
|
required(:account_sub_type).maybe(:string)
|
|
17
17
|
required(:number).filled(:integer)
|
|
18
|
-
required(:currency).filled(:
|
|
18
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
19
19
|
required(:description).maybe(:string)
|
|
20
20
|
required(:active).maybe(:bool)
|
|
21
21
|
end
|
|
@@ -15,7 +15,7 @@ module LedgerSync
|
|
|
15
15
|
required(:account_type).maybe(:string)
|
|
16
16
|
required(:account_sub_type).maybe(:string)
|
|
17
17
|
required(:number).maybe(:integer)
|
|
18
|
-
required(:currency).maybe(:
|
|
18
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
19
19
|
required(:description).maybe(:string)
|
|
20
20
|
required(:active).maybe(:bool)
|
|
21
21
|
end
|
|
@@ -1,19 +1,35 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative '../currency/ledger_serializer'
|
|
4
|
+
|
|
3
5
|
module LedgerSync
|
|
4
6
|
module Adaptors
|
|
5
7
|
module QuickBooksOnline
|
|
6
8
|
module Account
|
|
7
9
|
class LedgerSerializer < QuickBooksOnline::LedgerSerializer
|
|
8
|
-
attribute ledger_attribute: 'Id',
|
|
9
|
-
|
|
10
|
-
attribute ledger_attribute: '
|
|
11
|
-
|
|
12
|
-
attribute ledger_attribute: '
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
attribute ledger_attribute: '
|
|
16
|
-
|
|
10
|
+
attribute ledger_attribute: 'Id',
|
|
11
|
+
resource_attribute: :ledger_id
|
|
12
|
+
attribute ledger_attribute: 'Name',
|
|
13
|
+
resource_attribute: :name
|
|
14
|
+
attribute ledger_attribute: 'AccountType',
|
|
15
|
+
resource_attribute: :account_type,
|
|
16
|
+
type: LedgerSerializerType::AccountType
|
|
17
|
+
attribute ledger_attribute: 'AccountSubType',
|
|
18
|
+
resource_attribute: :account_sub_type,
|
|
19
|
+
type: LedgerSerializerType::AccountSubType
|
|
20
|
+
attribute ledger_attribute: 'AcctNum',
|
|
21
|
+
resource_attribute: :number
|
|
22
|
+
attribute ledger_attribute: 'Classification',
|
|
23
|
+
resource_attribute: :classification,
|
|
24
|
+
type: LedgerSerializerType::ClassificationType
|
|
25
|
+
attribute ledger_attribute: 'Description',
|
|
26
|
+
resource_attribute: :description
|
|
27
|
+
attribute ledger_attribute: 'Active',
|
|
28
|
+
resource_attribute: :active
|
|
29
|
+
|
|
30
|
+
references_one ledger_attribute: :CurrencyRef,
|
|
31
|
+
resource_attribute: :currency,
|
|
32
|
+
serializer: Currency::LedgerSerializer
|
|
17
33
|
end
|
|
18
34
|
end
|
|
19
35
|
end
|
|
@@ -11,7 +11,7 @@ module LedgerSync
|
|
|
11
11
|
required(:account_type).filled(:string)
|
|
12
12
|
required(:active).maybe(:bool)
|
|
13
13
|
required(:classification).filled(:string)
|
|
14
|
-
required(:currency).maybe(:
|
|
14
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
15
15
|
required(:description).maybe(:string)
|
|
16
16
|
required(:ledger_id).value(:nil)
|
|
17
17
|
required(:name).filled(:string)
|
|
@@ -13,7 +13,7 @@ module LedgerSync
|
|
|
13
13
|
required(:account_type).maybe(:string)
|
|
14
14
|
required(:account_sub_type).maybe(:string)
|
|
15
15
|
required(:number).maybe(:integer)
|
|
16
|
-
required(:currency).maybe(:
|
|
16
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
17
17
|
required(:description).maybe(:string)
|
|
18
18
|
required(:active).maybe(:bool)
|
|
19
19
|
end
|
|
@@ -17,7 +17,7 @@ module LedgerSync
|
|
|
17
17
|
required(:account_type).filled(:string)
|
|
18
18
|
required(:account_sub_type).filled(:string)
|
|
19
19
|
required(:number).maybe(:integer)
|
|
20
|
-
required(:currency).maybe(:
|
|
20
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
21
21
|
required(:description).maybe(:string)
|
|
22
22
|
required(:active).maybe(:bool)
|
|
23
23
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative '../bill_line_item/ledger_serializer'
|
|
4
|
+
require_relative '../currency/ledger_serializer'
|
|
4
5
|
|
|
5
6
|
module LedgerSync
|
|
6
7
|
module Adaptors
|
|
@@ -9,7 +10,9 @@ module LedgerSync
|
|
|
9
10
|
class LedgerSerializer < QuickBooksOnline::LedgerSerializer
|
|
10
11
|
id
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
references_one ledger_attribute: :CurrencyRef,
|
|
14
|
+
resource_attribute: :currency,
|
|
15
|
+
serializer: Currency::LedgerSerializer
|
|
13
16
|
|
|
14
17
|
attribute ledger_attribute: 'DueDate',
|
|
15
18
|
resource_attribute: :due_date,
|
|
@@ -8,7 +8,7 @@ module LedgerSync
|
|
|
8
8
|
params do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
|
-
optional(:currency).
|
|
11
|
+
optional(:currency).hash(Types::Reference)
|
|
12
12
|
optional(:due_date).maybe(:date?)
|
|
13
13
|
optional(:ledger_id).value(:nil)
|
|
14
14
|
required(:line_items).array(Types::Reference)
|
|
@@ -8,7 +8,7 @@ module LedgerSync
|
|
|
8
8
|
schema do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
|
-
|
|
11
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
12
12
|
optional(:due_date).maybe(:date?)
|
|
13
13
|
optional(:line_items).array(Types::Reference)
|
|
14
14
|
required(:ledger_id).filled(:string)
|
|
@@ -8,7 +8,7 @@ module LedgerSync
|
|
|
8
8
|
schema do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
|
-
optional(:currency).
|
|
11
|
+
optional(:currency).hash(Types::Reference)
|
|
12
12
|
optional(:due_date).maybe(:date?)
|
|
13
13
|
required(:line_items).array(Types::Reference)
|
|
14
14
|
required(:ledger_id).filled(:string)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module LedgerSync
|
|
4
|
+
module Adaptors
|
|
5
|
+
module QuickBooksOnline
|
|
6
|
+
module Currency
|
|
7
|
+
class LedgerSerializer < QuickBooksOnline::LedgerSerializer
|
|
8
|
+
attribute ledger_attribute: :value,
|
|
9
|
+
resource_attribute: :symbol
|
|
10
|
+
|
|
11
|
+
attribute ledger_attribute: :name,
|
|
12
|
+
resource_attribute: :name
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative '../deposit_line_item/ledger_serializer'
|
|
4
|
+
require_relative '../currency/ledger_serializer'
|
|
4
5
|
|
|
5
6
|
module LedgerSync
|
|
6
7
|
module Adaptors
|
|
@@ -9,8 +10,9 @@ module LedgerSync
|
|
|
9
10
|
class LedgerSerializer < QuickBooksOnline::LedgerSerializer
|
|
10
11
|
id
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
references_one ledger_attribute: :CurrencyRef,
|
|
14
|
+
resource_attribute: :currency,
|
|
15
|
+
serializer: Currency::LedgerSerializer
|
|
14
16
|
|
|
15
17
|
attribute ledger_attribute: 'TxnDate',
|
|
16
18
|
resource_attribute: :transaction_date,
|
|
@@ -9,7 +9,7 @@ module LedgerSync
|
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
required(:ledger_id).value(:nil)
|
|
11
11
|
required(:account).hash(Types::Reference)
|
|
12
|
-
required(:currency).filled(:
|
|
12
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
13
13
|
required(:department).hash(Types::Reference)
|
|
14
14
|
required(:memo).filled(:string)
|
|
15
15
|
required(:transaction_date).filled(:date?)
|
|
@@ -9,7 +9,7 @@ module LedgerSync
|
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
required(:ledger_id).filled(:string)
|
|
11
11
|
required(:account).hash(Types::Reference)
|
|
12
|
-
required(:currency).maybe(:
|
|
12
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
13
13
|
required(:department).hash(Types::Reference)
|
|
14
14
|
required(:memo).maybe(:string)
|
|
15
15
|
required(:transaction_date).filled(:date?)
|
|
@@ -11,7 +11,7 @@ module LedgerSync
|
|
|
11
11
|
required(:external_id).maybe(:string)
|
|
12
12
|
required(:ledger_id).filled(:string)
|
|
13
13
|
required(:account).hash(Types::Reference)
|
|
14
|
-
required(:currency).filled(:
|
|
14
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
15
15
|
required(:department).hash(Types::Reference)
|
|
16
16
|
required(:memo).filled(:string)
|
|
17
17
|
required(:transaction_date).filled(:date?)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative '../expense_line_item/ledger_serializer'
|
|
4
|
+
require_relative '../currency/ledger_serializer'
|
|
4
5
|
|
|
5
6
|
module LedgerSync
|
|
6
7
|
module Adaptors
|
|
@@ -10,8 +11,9 @@ module LedgerSync
|
|
|
10
11
|
id ledger_attribute: 'Id',
|
|
11
12
|
resource_attribute: :ledger_id
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
references_one ledger_attribute: :CurrencyRef,
|
|
15
|
+
resource_attribute: :currency,
|
|
16
|
+
serializer: Currency::LedgerSerializer
|
|
15
17
|
|
|
16
18
|
attribute ledger_attribute: 'PaymentType',
|
|
17
19
|
resource_attribute: :payment_type,
|
|
@@ -8,7 +8,7 @@ module LedgerSync
|
|
|
8
8
|
params do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
required(:account).hash(Types::Reference)
|
|
11
|
-
optional(:currency).
|
|
11
|
+
optional(:currency).hash(Types::Reference)
|
|
12
12
|
optional(:exchange_rate).maybe(:float)
|
|
13
13
|
optional(:ledger_id).value(:nil)
|
|
14
14
|
required(:line_items).array(Types::Reference)
|
|
@@ -8,7 +8,7 @@ module LedgerSync
|
|
|
8
8
|
schema do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
|
-
|
|
11
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
12
12
|
optional(:exchange_rate).maybe(:float)
|
|
13
13
|
required(:ledger_id).filled(:string)
|
|
14
14
|
optional(:line_items).array(Types::Reference)
|
|
@@ -8,7 +8,7 @@ module LedgerSync
|
|
|
8
8
|
schema do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
required(:account).hash(Types::Reference)
|
|
11
|
-
optional(:currency).
|
|
11
|
+
optional(:currency).hash(Types::Reference)
|
|
12
12
|
optional(:exchange_rate).maybe(:float)
|
|
13
13
|
required(:ledger_id).filled(:string)
|
|
14
14
|
required(:line_items).array(Types::Reference)
|
|
@@ -9,8 +9,9 @@ module LedgerSync
|
|
|
9
9
|
class LedgerSerializer < QuickBooksOnline::LedgerSerializer
|
|
10
10
|
id
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
references_one ledger_attribute: :CurrencyRef,
|
|
13
|
+
resource_attribute: :currency,
|
|
14
|
+
serializer: Currency::LedgerSerializer
|
|
14
15
|
|
|
15
16
|
attribute ledger_attribute: 'TxnDate',
|
|
16
17
|
resource_attribute: :transaction_date,
|
|
@@ -10,7 +10,7 @@ module LedgerSync
|
|
|
10
10
|
params do
|
|
11
11
|
required(:external_id).maybe(:string)
|
|
12
12
|
optional(:account).hash(Types::Reference)
|
|
13
|
-
required(:currency).filled(:
|
|
13
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
14
14
|
required(:customer).hash(Types::Reference)
|
|
15
15
|
optional(:deposit).maybe(:integer)
|
|
16
16
|
required(:ledger_id).value(:nil)
|
|
@@ -8,7 +8,7 @@ module LedgerSync
|
|
|
8
8
|
schema do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
|
-
|
|
11
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
12
12
|
optional(:customer).hash(Types::Reference)
|
|
13
13
|
optional(:deposit).maybe(:integer)
|
|
14
14
|
required(:ledger_id).filled(:string)
|
|
@@ -8,7 +8,7 @@ module LedgerSync
|
|
|
8
8
|
schema do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
|
-
required(:currency).filled(:
|
|
11
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
12
12
|
required(:customer).hash(Types::Reference)
|
|
13
13
|
optional(:deposit).maybe(:integer)
|
|
14
14
|
required(:ledger_id).filled(:string)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative '../currency/ledger_serializer'
|
|
3
4
|
require_relative '../journal_entry_line_item/ledger_serializer'
|
|
4
5
|
|
|
5
6
|
module LedgerSync
|
|
@@ -9,8 +10,9 @@ module LedgerSync
|
|
|
9
10
|
class LedgerSerializer < QuickBooksOnline::LedgerSerializer
|
|
10
11
|
id
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
references_one ledger_attribute: :CurrencyRef,
|
|
14
|
+
resource_attribute: :currency,
|
|
15
|
+
serializer: Currency::LedgerSerializer
|
|
14
16
|
|
|
15
17
|
attribute ledger_attribute: 'TxnDate',
|
|
16
18
|
resource_attribute: :transaction_date,
|
|
@@ -7,7 +7,7 @@ module LedgerSync
|
|
|
7
7
|
class Contract < LedgerSync::Adaptors::Contract
|
|
8
8
|
params do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
|
-
optional(:currency).
|
|
10
|
+
optional(:currency).hash(Types::Reference)
|
|
11
11
|
required(:ledger_id).value(:nil)
|
|
12
12
|
optional(:line_items).array(Types::Reference)
|
|
13
13
|
optional(:memo).filled(:string)
|
|
@@ -7,7 +7,7 @@ module LedgerSync
|
|
|
7
7
|
class Contract < LedgerSync::Adaptors::Contract
|
|
8
8
|
schema do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
|
-
|
|
10
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
11
11
|
required(:ledger_id).filled(:string)
|
|
12
12
|
optional(:line_items).array(Types::Reference)
|
|
13
13
|
optional(:memo).maybe(:string)
|
|
@@ -7,7 +7,7 @@ module LedgerSync
|
|
|
7
7
|
class Contract < LedgerSync::Adaptors::Contract
|
|
8
8
|
schema do
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
|
-
optional(:currency).
|
|
10
|
+
optional(:currency).hash(Types::Reference)
|
|
11
11
|
required(:ledger_id).filled(:string)
|
|
12
12
|
optional(:line_items).array(Types::Reference)
|
|
13
13
|
optional(:memo).filled(:string)
|
|
@@ -25,7 +25,7 @@ module LedgerSync
|
|
|
25
25
|
def merge_resources_for_full_update(hash:, ledger_resource:)
|
|
26
26
|
merged_resource = resource.dup
|
|
27
27
|
|
|
28
|
-
self.class.attributes.each do |ledger_serializer_attribute|
|
|
28
|
+
self.class.attributes.deserializable_attributes.each do |ledger_serializer_attribute|
|
|
29
29
|
next unless ledger_serializer_attribute.references_many?
|
|
30
30
|
|
|
31
31
|
resources_from_ledger = attribute_value_from_ledger(
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative '../currency/ledger_serializer'
|
|
3
4
|
require_relative '../payment_line_item/ledger_serializer'
|
|
4
5
|
|
|
5
6
|
module LedgerSync
|
|
@@ -13,8 +14,9 @@ module LedgerSync
|
|
|
13
14
|
resource_attribute: :amount,
|
|
14
15
|
type: LedgerSerializerType::AmountType
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
references_one ledger_attribute: :CurrencyRef,
|
|
18
|
+
resource_attribute: :currency,
|
|
19
|
+
serializer: Currency::LedgerSerializer
|
|
18
20
|
|
|
19
21
|
attribute ledger_attribute: 'CustomerRef.value',
|
|
20
22
|
resource_attribute: 'customer.ledger_id'
|
|
@@ -39,8 +41,8 @@ module LedgerSync
|
|
|
39
41
|
type: LedgerSerializerType::DateType
|
|
40
42
|
|
|
41
43
|
references_many ledger_attribute: 'Line',
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
resource_attribute: :line_items,
|
|
45
|
+
serializer: PaymentLineItem::LedgerSerializer
|
|
44
46
|
end
|
|
45
47
|
end
|
|
46
48
|
end
|
|
@@ -11,7 +11,7 @@ module LedgerSync
|
|
|
11
11
|
required(:external_id).maybe(:string)
|
|
12
12
|
optional(:account).hash(Types::Reference)
|
|
13
13
|
required(:amount).filled(:integer)
|
|
14
|
-
required(:currency).filled(:
|
|
14
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
15
15
|
required(:customer).hash(Types::Reference)
|
|
16
16
|
optional(:deposit_account).hash(Types::Reference)
|
|
17
17
|
optional(:exchange_rate).maybe(:float)
|
|
@@ -9,7 +9,7 @@ module LedgerSync
|
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
11
|
optional(:amount).maybe(:integer)
|
|
12
|
-
|
|
12
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
13
13
|
optional(:customer).hash(Types::Reference)
|
|
14
14
|
optional(:deposit_account).hash(Types::Reference)
|
|
15
15
|
optional(:exchange_rate).maybe(:float)
|
|
@@ -9,7 +9,7 @@ module LedgerSync
|
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
11
|
required(:amount).filled(:integer)
|
|
12
|
-
required(:currency).filled(:
|
|
12
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
13
13
|
required(:customer).hash(Types::Reference)
|
|
14
14
|
optional(:deposit_account).hash(Types::Reference)
|
|
15
15
|
optional(:exchange_rate).maybe(:float)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative '../currency/ledger_serializer'
|
|
4
|
+
|
|
3
5
|
module LedgerSync
|
|
4
6
|
module Adaptors
|
|
5
7
|
module QuickBooksOnline
|
|
@@ -24,8 +26,9 @@ module LedgerSync
|
|
|
24
26
|
resource_attribute: :transaction_date,
|
|
25
27
|
type: LedgerSerializerType::DateType
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
references_one ledger_attribute: :CurrencyRef,
|
|
30
|
+
resource_attribute: :currency,
|
|
31
|
+
serializer: Currency::LedgerSerializer
|
|
29
32
|
end
|
|
30
33
|
end
|
|
31
34
|
end
|
|
@@ -11,7 +11,7 @@ module LedgerSync
|
|
|
11
11
|
required(:from_account).hash(Types::Reference)
|
|
12
12
|
required(:to_account).hash(Types::Reference)
|
|
13
13
|
required(:amount).filled(:integer)
|
|
14
|
-
required(:currency).filled(:
|
|
14
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
15
15
|
required(:memo).filled(:string)
|
|
16
16
|
required(:transaction_date).filled(:date?)
|
|
17
17
|
end
|
|
@@ -11,7 +11,7 @@ module LedgerSync
|
|
|
11
11
|
required(:from_account).hash(Types::Reference)
|
|
12
12
|
required(:to_account).hash(Types::Reference)
|
|
13
13
|
required(:amount).maybe(:integer)
|
|
14
|
-
required(:currency).maybe(:
|
|
14
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
15
15
|
required(:memo).maybe(:string)
|
|
16
16
|
required(:transaction_date).maybe(:date?)
|
|
17
17
|
end
|
|
@@ -13,7 +13,7 @@ module LedgerSync
|
|
|
13
13
|
required(:from_account).hash(Types::Reference)
|
|
14
14
|
required(:to_account).hash(Types::Reference)
|
|
15
15
|
required(:amount).filled(:integer)
|
|
16
|
-
required(:currency).filled(:
|
|
16
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
17
17
|
required(:memo).filled(:string)
|
|
18
18
|
required(:transaction_date).filled(:date?)
|
|
19
19
|
end
|
|
@@ -13,7 +13,7 @@ module LedgerSync
|
|
|
13
13
|
required(:account_type).filled(:string)
|
|
14
14
|
required(:account_sub_type).filled(:string)
|
|
15
15
|
required(:number).maybe(:integer)
|
|
16
|
-
required(:currency).maybe(:
|
|
16
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
17
17
|
required(:description).maybe(:string)
|
|
18
18
|
required(:active).maybe(:bool)
|
|
19
19
|
end
|
|
@@ -13,7 +13,7 @@ module LedgerSync
|
|
|
13
13
|
required(:account_type).maybe(:string)
|
|
14
14
|
required(:account_sub_type).maybe(:string)
|
|
15
15
|
required(:number).maybe(:integer)
|
|
16
|
-
required(:currency).maybe(:
|
|
16
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
17
17
|
required(:description).maybe(:string)
|
|
18
18
|
required(:active).maybe(:bool)
|
|
19
19
|
end
|
|
@@ -13,7 +13,7 @@ module LedgerSync
|
|
|
13
13
|
required(:account_type).maybe(:string)
|
|
14
14
|
required(:account_sub_type).maybe(:string)
|
|
15
15
|
required(:number).maybe(:integer)
|
|
16
|
-
required(:currency).maybe(:
|
|
16
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
17
17
|
required(:description).maybe(:string)
|
|
18
18
|
required(:active).maybe(:bool)
|
|
19
19
|
end
|
|
@@ -13,7 +13,7 @@ module LedgerSync
|
|
|
13
13
|
required(:account_type).filled(:string)
|
|
14
14
|
required(:account_sub_type).filled(:string)
|
|
15
15
|
required(:number).maybe(:integer)
|
|
16
|
-
required(:currency).maybe(:
|
|
16
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
17
17
|
required(:description).maybe(:string)
|
|
18
18
|
required(:active).maybe(:bool)
|
|
19
19
|
end
|
|
@@ -13,7 +13,7 @@ module LedgerSync
|
|
|
13
13
|
required(:account_type).filled(:string)
|
|
14
14
|
required(:account_sub_type).filled(:string)
|
|
15
15
|
required(:number).maybe(:integer)
|
|
16
|
-
required(:currency).maybe(:
|
|
16
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
17
17
|
required(:description).maybe(:string)
|
|
18
18
|
required(:active).maybe(:bool)
|
|
19
19
|
end
|
|
@@ -12,7 +12,7 @@ module LedgerSync
|
|
|
12
12
|
required(:ledger_id).value(:nil)
|
|
13
13
|
required(:account).hash(Types::Reference)
|
|
14
14
|
required(:entity).hash(Types::Reference)
|
|
15
|
-
required(:currency).filled(:
|
|
15
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
16
16
|
required(:memo).filled(:string)
|
|
17
17
|
required(:payment_type).filled(:string)
|
|
18
18
|
required(:transaction_date).filled(:date?)
|
|
@@ -12,7 +12,7 @@ module LedgerSync
|
|
|
12
12
|
required(:ledger_id).filled(:string)
|
|
13
13
|
required(:account).hash(Types::Reference)
|
|
14
14
|
required(:entity).hash(Types::Reference)
|
|
15
|
-
required(:currency).maybe(:
|
|
15
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
16
16
|
required(:memo).maybe(:string)
|
|
17
17
|
required(:payment_type).maybe(:string)
|
|
18
18
|
required(:transaction_date).maybe(:date?)
|
|
@@ -10,7 +10,7 @@ module LedgerSync
|
|
|
10
10
|
required(:ledger_id).filled(:string)
|
|
11
11
|
required(:account).hash(Types::Reference)
|
|
12
12
|
required(:entity).hash(Types::Reference)
|
|
13
|
-
required(:currency).filled(:
|
|
13
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
14
14
|
required(:memo).filled(:string)
|
|
15
15
|
required(:payment_type).filled(:string)
|
|
16
16
|
required(:transaction_date).filled(:date?)
|
|
@@ -9,7 +9,7 @@ module LedgerSync
|
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
11
|
required(:amount).filled(:integer)
|
|
12
|
-
required(:currency).filled(:
|
|
12
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
13
13
|
required(:customer).hash(Types::Reference)
|
|
14
14
|
optional(:deposit_account).hash(Types::Reference)
|
|
15
15
|
optional(:exchange_rate).maybe(:float)
|
|
@@ -9,7 +9,7 @@ module LedgerSync
|
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
11
|
optional(:amount).maybe(:integer)
|
|
12
|
-
|
|
12
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
13
13
|
optional(:customer).hash(Types::Reference)
|
|
14
14
|
optional(:deposit_account).hash(Types::Reference)
|
|
15
15
|
optional(:exchange_rate).maybe(:float)
|
|
@@ -9,7 +9,7 @@ module LedgerSync
|
|
|
9
9
|
required(:external_id).maybe(:string)
|
|
10
10
|
optional(:account).hash(Types::Reference)
|
|
11
11
|
required(:amount).filled(:integer)
|
|
12
|
-
required(:currency).filled(:
|
|
12
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
13
13
|
required(:customer).hash(Types::Reference)
|
|
14
14
|
optional(:deposit_account).hash(Types::Reference)
|
|
15
15
|
optional(:exchange_rate).maybe(:float)
|
|
@@ -11,7 +11,7 @@ module LedgerSync
|
|
|
11
11
|
required(:from_account).hash(Types::Reference)
|
|
12
12
|
required(:to_account).hash(Types::Reference)
|
|
13
13
|
required(:amount).filled(:integer)
|
|
14
|
-
required(:currency).filled(:
|
|
14
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
15
15
|
required(:memo).filled(:string)
|
|
16
16
|
required(:transaction_date).filled(:date?)
|
|
17
17
|
end
|
|
@@ -11,7 +11,7 @@ module LedgerSync
|
|
|
11
11
|
required(:from_account).hash(Types::Reference)
|
|
12
12
|
required(:to_account).hash(Types::Reference)
|
|
13
13
|
required(:amount).maybe(:integer)
|
|
14
|
-
required(:currency).maybe(:
|
|
14
|
+
required(:currency).maybe(:hash, Types::Reference)
|
|
15
15
|
required(:memo).maybe(:string)
|
|
16
16
|
required(:transaction_date).maybe(:date?)
|
|
17
17
|
end
|
|
@@ -11,7 +11,7 @@ module LedgerSync
|
|
|
11
11
|
required(:from_account).hash(Types::Reference)
|
|
12
12
|
required(:to_account).hash(Types::Reference)
|
|
13
13
|
required(:amount).filled(:integer)
|
|
14
|
-
required(:currency).filled(:
|
|
14
|
+
required(:currency).filled(:hash, Types::Reference)
|
|
15
15
|
required(:memo).filled(:string)
|
|
16
16
|
required(:transaction_date).filled(:date?)
|
|
17
17
|
end
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative 'currency'
|
|
4
|
+
|
|
3
5
|
module LedgerSync
|
|
4
6
|
class Account < LedgerSync::Resource
|
|
5
7
|
attribute :name, type: Type::String
|
|
@@ -7,8 +9,9 @@ module LedgerSync
|
|
|
7
9
|
attribute :account_type, type: Type::String
|
|
8
10
|
attribute :account_sub_type, type: Type::String
|
|
9
11
|
attribute :number, type: Type::String
|
|
10
|
-
attribute :currency, type: Type::String
|
|
11
12
|
attribute :description, type: Type::String
|
|
12
13
|
attribute :active, type: Type::Boolean
|
|
14
|
+
|
|
15
|
+
references_one :currency, to: Currency
|
|
13
16
|
end
|
|
14
17
|
end
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
require_relative 'account'
|
|
4
4
|
require_relative 'bill_line_item'
|
|
5
|
+
require_relative 'currency'
|
|
5
6
|
require_relative 'vendor'
|
|
6
7
|
|
|
7
8
|
module LedgerSync
|
|
8
9
|
class Bill < LedgerSync::Resource
|
|
9
|
-
attribute :currency, type: Type::String
|
|
10
10
|
attribute :memo, type: Type::String
|
|
11
11
|
attribute :transaction_date, type: Type::Date
|
|
12
12
|
attribute :due_date, type: Type::Date
|
|
@@ -14,6 +14,7 @@ module LedgerSync
|
|
|
14
14
|
|
|
15
15
|
references_one :vendor, to: Vendor
|
|
16
16
|
references_one :account, to: Account
|
|
17
|
+
references_one :currency, to: Currency
|
|
17
18
|
|
|
18
19
|
references_many :line_items, to: BillLineItem
|
|
19
20
|
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative 'account'
|
|
4
|
+
require_relative 'currency'
|
|
4
5
|
require_relative 'department'
|
|
5
6
|
require_relative 'deposit_line_item'
|
|
6
7
|
|
|
7
8
|
module LedgerSync
|
|
8
9
|
class Deposit < LedgerSync::Resource
|
|
9
|
-
attribute :currency, type: Type::String
|
|
10
10
|
attribute :memo, type: Type::String
|
|
11
11
|
attribute :transaction_date, type: Type::Date
|
|
12
12
|
attribute :exchange_rate, type: Type::Float
|
|
13
13
|
|
|
14
14
|
references_one :account, to: Account
|
|
15
15
|
references_one :department, to: Department
|
|
16
|
+
references_one :currency, to: Currency
|
|
16
17
|
|
|
17
18
|
references_many :line_items, to: DepositLineItem
|
|
18
19
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative 'account'
|
|
4
|
+
require_relative 'currency'
|
|
4
5
|
require_relative 'customer'
|
|
5
6
|
require_relative 'expense_line_item'
|
|
6
7
|
require_relative 'vendor'
|
|
7
8
|
|
|
8
9
|
module LedgerSync
|
|
9
10
|
class Expense < LedgerSync::Resource
|
|
10
|
-
attribute :currency, type: Type::String
|
|
11
11
|
attribute :memo, type: Type::String
|
|
12
12
|
attribute :payment_type, type: Type::String
|
|
13
13
|
attribute :transaction_date, type: Type::Date
|
|
@@ -16,6 +16,7 @@ module LedgerSync
|
|
|
16
16
|
|
|
17
17
|
references_one :entity, to: [Customer, Vendor]
|
|
18
18
|
references_one :account, to: Account
|
|
19
|
+
references_one :currency, to: Currency
|
|
19
20
|
|
|
20
21
|
references_many :line_items, to: ExpenseLineItem
|
|
21
22
|
|
|
@@ -24,7 +25,7 @@ module LedgerSync
|
|
|
24
25
|
end
|
|
25
26
|
|
|
26
27
|
def name
|
|
27
|
-
"Purchase: #{amount} #{currency}"
|
|
28
|
+
"Purchase: #{amount} #{currency.try(:symbol)}"
|
|
28
29
|
end
|
|
29
30
|
end
|
|
30
31
|
end
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative 'account'
|
|
4
|
+
require_relative 'currency'
|
|
4
5
|
require_relative 'customer'
|
|
5
6
|
require_relative 'invoice_sales_line_item'
|
|
6
7
|
|
|
7
8
|
module LedgerSync
|
|
8
9
|
class Invoice < LedgerSync::Resource
|
|
9
|
-
attribute :currency, type: Type::String
|
|
10
10
|
attribute :memo, type: Type::String
|
|
11
11
|
attribute :transaction_date, type: Type::Date
|
|
12
12
|
attribute :deposit, type: Type::Integer
|
|
13
13
|
|
|
14
14
|
references_one :customer, to: Customer
|
|
15
15
|
references_one :account, to: Account
|
|
16
|
+
references_one :currency, to: Currency
|
|
16
17
|
|
|
17
18
|
references_many :line_items, to: InvoiceSalesLineItem
|
|
18
19
|
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative 'currency'
|
|
3
4
|
require_relative 'journal_entry_line_item'
|
|
4
5
|
|
|
5
6
|
module LedgerSync
|
|
6
7
|
class JournalEntry < LedgerSync::Resource
|
|
7
|
-
attribute :currency, type: Type::String
|
|
8
8
|
attribute :memo, type: Type::String
|
|
9
9
|
attribute :transaction_date, type: Type::Date
|
|
10
10
|
attribute :reference_number, type: Type::String
|
|
11
11
|
|
|
12
|
+
references_one :currency, to: Currency
|
|
13
|
+
|
|
12
14
|
references_many :line_items, to: JournalEntryLineItem
|
|
13
15
|
|
|
14
16
|
def name
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative 'account'
|
|
4
|
+
require_relative 'currency'
|
|
4
5
|
require_relative 'customer'
|
|
5
6
|
require_relative 'payment_line_item'
|
|
6
7
|
|
|
7
8
|
module LedgerSync
|
|
8
9
|
class Payment < LedgerSync::Resource
|
|
9
10
|
attribute :amount, type: Type::Integer
|
|
10
|
-
attribute :currency, type: Type::String
|
|
11
11
|
attribute :memo, type: Type::String
|
|
12
12
|
attribute :transaction_date, type: Type::Date
|
|
13
13
|
attribute :exchange_rate, type: Type::Float
|
|
@@ -16,6 +16,7 @@ module LedgerSync
|
|
|
16
16
|
references_one :customer, to: Customer
|
|
17
17
|
references_one :deposit_account, to: Account
|
|
18
18
|
references_one :account, to: Account
|
|
19
|
+
references_one :currency, to: Currency
|
|
19
20
|
|
|
20
21
|
references_many :line_items, to: PaymentLineItem
|
|
21
22
|
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative 'account'
|
|
4
|
+
require_relative 'currency'
|
|
4
5
|
|
|
5
6
|
module LedgerSync
|
|
6
7
|
class Transfer < LedgerSync::Resource
|
|
7
|
-
attribute :currency, type: Type::String
|
|
8
8
|
attribute :amount, type: Type::Integer
|
|
9
9
|
attribute :memo, type: Type::String
|
|
10
10
|
attribute :transaction_date, type: Type::Date
|
|
11
11
|
|
|
12
12
|
references_one :from_account, to: Account
|
|
13
13
|
references_one :to_account, to: Account
|
|
14
|
+
references_one :currency, to: Currency
|
|
14
15
|
|
|
15
16
|
def name
|
|
16
17
|
"Transaction: #{amount} #{currency}"
|
data/lib/ledger_sync/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ledger_sync
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Jackson
|
|
@@ -413,6 +413,7 @@ files:
|
|
|
413
413
|
- lib/ledger_sync/adaptors/ledger_serializer_attribute_set.rb
|
|
414
414
|
- lib/ledger_sync/adaptors/ledger_serializer_type/mapping_type.rb
|
|
415
415
|
- lib/ledger_sync/adaptors/ledger_serializer_type/references_many_type.rb
|
|
416
|
+
- lib/ledger_sync/adaptors/ledger_serializer_type/references_one_type.rb
|
|
416
417
|
- lib/ledger_sync/adaptors/ledger_serializer_type/value_type.rb
|
|
417
418
|
- lib/ledger_sync/adaptors/mixins/infer_adaptor_class_mixin.rb
|
|
418
419
|
- lib/ledger_sync/adaptors/mixins/infer_ledger_serializer_mixin.rb
|
|
@@ -481,6 +482,7 @@ files:
|
|
|
481
482
|
- lib/ledger_sync/adaptors/quickbooks_online/bill/searcher.rb
|
|
482
483
|
- lib/ledger_sync/adaptors/quickbooks_online/bill_line_item/ledger_serializer.rb
|
|
483
484
|
- lib/ledger_sync/adaptors/quickbooks_online/config.rb
|
|
485
|
+
- lib/ledger_sync/adaptors/quickbooks_online/currency/ledger_serializer.rb
|
|
484
486
|
- lib/ledger_sync/adaptors/quickbooks_online/customer/ledger_serializer.rb
|
|
485
487
|
- lib/ledger_sync/adaptors/quickbooks_online/customer/operations/create.rb
|
|
486
488
|
- lib/ledger_sync/adaptors/quickbooks_online/customer/operations/find.rb
|