lockstep_rails 0.3.69 → 0.3.71
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +85 -53
- data/app/models/lockstep/invoice.rb +8 -3
- data/app/models/lockstep/workflow_status.rb +8 -0
- data/app/platform_api/schema/batch_sync.rb +2 -0
- data/app/platform_api/schema/company_magic_link_summary.rb +17 -13
- data/app/platform_api/schema/company_sync.rb +15 -0
- data/app/platform_api/schema/contact_sync.rb +10 -0
- data/app/platform_api/schema/credit_memo_applied.rb +4 -5
- data/app/platform_api/schema/financial_account.rb +2 -2
- data/app/platform_api/schema/invoice.rb +18 -5
- data/app/platform_api/schema/invoice_line.rb +4 -5
- data/app/platform_api/schema/invoice_line_sync.rb +10 -0
- data/app/platform_api/schema/invoice_sync.rb +23 -0
- data/app/platform_api/schema/invoice_workflow_status_history.rb +49 -0
- data/app/platform_api/schema/journal_entry.rb +5 -0
- data/app/platform_api/schema/journal_entry_line.rb +15 -2
- data/app/platform_api/schema/journal_entry_line_fetch_result.rb +26 -0
- data/app/platform_api/schema/journal_entry_line_sync.rb +96 -0
- data/app/platform_api/schema/journal_entry_sync.rb +66 -0
- data/app/platform_api/schema/payment.rb +4 -5
- data/app/platform_api/schema/payment_applied.rb +4 -5
- data/app/platform_api/schema/payment_applied_sync.rb +15 -0
- data/app/platform_api/schema/payment_sync.rb +10 -0
- data/app/platform_api/schema/sync_request.rb +2 -0
- data/app/platform_api/schema/workflow_status.rb +68 -0
- data/app/platform_api/schema/workflow_status_fetch_result.rb +26 -0
- data/app/platform_api/swagger.json +9746 -12351
- data/lib/lockstep_rails/version.rb +3 -2
- data/lib/tasks/update_api_schema.rake +5 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddacef947d1ed34adf55183aad06872f45fc6d7b74e8ff2cc78ed3d6824d32f9
|
4
|
+
data.tar.gz: 1e79ee1495cf7730510f9a1e9ca2b9de68c2ac0bbd99d92c69c4cc6d1504efe3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cbd0d8c4f30a677fad4ecacec43e604142ea704bece161b3134dabff779ee21441a7ae7a04b61333684abbe116d71daa84e7a5b5ead07fb4d0780aed5375fb5
|
7
|
+
data.tar.gz: ac1b421df458023a385816388aab3fb3b09d14c2dfb4aa081a6721b6db827dcfd36001e2fc8e103b323ac7ef562e6fdd12106850c53ccc581ba53d05f36ebf60
|
data/README.md
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
# Lockstep
|
2
|
+
|
2
3
|
A financial service SDK for rails for innovative accounting solutions providers.
|
3
4
|
|
4
5
|
### Who are we?
|
6
|
+
|
5
7
|
Lockstep automates accounting workflows to improve your operational efficiency and cash flow. Accelerate payments through automated customer communications, enhanced collections activity management, and innovative forecasting and reporting.
|
6
8
|
|
7
9
|
### lockstep_rails
|
10
|
+
|
8
11
|
lockstep_rails makes it easy to interact with lockstep.io's REST API. It adheres to the ActiveRecord pattern. LockstepRails is fully ActiveModel compliant, meaning you can use validations and Rails forms.
|
9
12
|
|
10
13
|
Ruby/Rails developers should feel right at home.
|
@@ -12,11 +15,13 @@ Ruby/Rails developers should feel right at home.
|
|
12
15
|
If you're used to `Lockstep::Contact.create(:email_address => "test@emaildomain.com")`, then this is for you.
|
13
16
|
|
14
17
|
### Features
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
+
|
19
|
+
- ActiveRecord-like API, almost no learning curve
|
20
|
+
- Validations
|
21
|
+
- Rails forms and scaffolds **just work**
|
18
22
|
|
19
23
|
## Installation
|
24
|
+
|
20
25
|
Add this line to your application's Gemfile:
|
21
26
|
|
22
27
|
```ruby
|
@@ -24,58 +29,64 @@ gem 'lockstep_rails'
|
|
24
29
|
```
|
25
30
|
|
26
31
|
And then execute:
|
32
|
+
|
27
33
|
```bash
|
28
34
|
$ bundle
|
29
35
|
```
|
30
36
|
|
31
37
|
Or install it yourself as:
|
38
|
+
|
32
39
|
```bash
|
33
40
|
$ gem install lockstep_rails
|
34
41
|
```
|
35
42
|
|
36
43
|
## License
|
44
|
+
|
37
45
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
38
46
|
|
39
47
|
# Usage
|
40
48
|
|
41
49
|
### Available Records
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
50
|
+
|
51
|
+
- Lockstep::Account
|
52
|
+
- Lockstep::ApiKey
|
53
|
+
- Lockstep::AppEnrollment
|
54
|
+
- Lockstep::Attachment
|
55
|
+
- Lockstep::Connection
|
56
|
+
- Lockstep::Contact
|
57
|
+
- Lockstep::CustomerSummary
|
58
|
+
- Lockstep::CompanyMagicLinkSummary
|
59
|
+
- Lockstep::FeatureFlag
|
60
|
+
- Lockstep::Invoice
|
61
|
+
- Lockstep::InvoiceAtRiskSummary
|
62
|
+
- Lockstep::InvoiceSummary
|
63
|
+
- Lockstep::MagicLink
|
64
|
+
- Lockstep::Note
|
65
|
+
- Lockstep::Payments
|
66
|
+
- Lockstep::PaymentApplied
|
67
|
+
- Lockstep::PaymentSummary
|
68
|
+
- Lockstep::ReportApAgingHeader
|
69
|
+
- Lockstep::ReportArAgingHeader
|
70
|
+
- Lockstep::ReportCashflow
|
71
|
+
- Lockstep::ReportDailyPayableOutstanding
|
72
|
+
- Lockstep::ReportDailyPayableOutstandingSummary
|
73
|
+
- Lockstep::ReportDailySalesOutstanding
|
74
|
+
- Lockstep::ReportPayableComingDue
|
75
|
+
- Lockstep::ReportPayablesComingDueSummary
|
76
|
+
- Lockstep::ReportPayableSummary
|
77
|
+
- Lockstep::ReportRiskRate
|
78
|
+
- Lockstep::ServiceFabricPayment
|
79
|
+
- Lockstep::Status
|
80
|
+
- Lockstep::TranscriptionValidationRequest
|
81
|
+
- Lockstep::User
|
82
|
+
- Lockstep::WorkflowStatus
|
73
83
|
|
74
84
|
## ActiveModel Interfaces
|
75
85
|
|
76
86
|
`lockstep_rails` supports the standard CRUD interface of ActiveRecord.
|
77
87
|
|
78
88
|
### Create
|
89
|
+
|
79
90
|
You can create a record by calling `new` or `create`
|
80
91
|
|
81
92
|
```ruby
|
@@ -83,15 +94,18 @@ Lockstep::Contact.create(email_address: "inbox@companyemail.com")
|
|
83
94
|
```
|
84
95
|
|
85
96
|
You can create records from associations as well. This will automatically association the relationship with the parent record
|
97
|
+
|
86
98
|
```ruby
|
87
99
|
connection = Lockstep::Connection.find(company_id: "17544da8-7be8-4ee2-8c62-cbd81428c68b")
|
88
100
|
connection.contacts.create(email_address: "inbox@companyemail.com")
|
89
101
|
```
|
90
102
|
|
91
103
|
### Update
|
104
|
+
|
92
105
|
Similar to ActiveRecord, you can update a record by calling `update`, `update_attributes` or `update_attribute`
|
93
106
|
|
94
107
|
Examples:
|
108
|
+
|
95
109
|
```ruby
|
96
110
|
connection = Lockstep::Connection.find(company_id: "17544da8-7be8-4ee2-8c62-cbd81428c68b")
|
97
111
|
connection.update(company_name: "New name")
|
@@ -104,9 +118,11 @@ connection.update_attribute(:company_name, "New name")
|
|
104
118
|
```
|
105
119
|
|
106
120
|
### Find
|
121
|
+
|
107
122
|
Similar to ActiveRecord, you can find a record by calling `find`, `find_by` or `find_by_company_id`
|
108
123
|
|
109
124
|
Examples:
|
125
|
+
|
110
126
|
```ruby
|
111
127
|
connection = Lockstep::Connection.find(company_id: "17544da8-7be8-4ee2-8c62-cbd81428c68b")
|
112
128
|
connection.update(company_name: "New name")
|
@@ -119,16 +135,19 @@ connection.update_attribute(:company_name, "New name")
|
|
119
135
|
```
|
120
136
|
|
121
137
|
### Where
|
122
|
-
|
138
|
+
|
139
|
+
Similar to ActiveRecord, you can search for records by calling `where`.
|
123
140
|
|
124
141
|
Unless you are accessing the record via `first`, you will have to call `execute` to fetch the records
|
125
142
|
|
126
143
|
Examples:
|
144
|
+
|
127
145
|
```ruby
|
128
146
|
Lockstep::Connection.where(status: "Active").execute
|
129
147
|
```
|
130
148
|
|
131
149
|
#### Chaining
|
150
|
+
|
132
151
|
You can chain queries while calling where.
|
133
152
|
|
134
153
|
```ruby
|
@@ -136,6 +155,7 @@ Lockstep::Connection.where(status: "Active").where(default_currency_code: "USD")
|
|
136
155
|
```
|
137
156
|
|
138
157
|
#### OR Query
|
158
|
+
|
139
159
|
You can build an or query by calling `or`
|
140
160
|
|
141
161
|
```ruby
|
@@ -143,24 +163,26 @@ Lockstep::Connection.where(status: "Active").or(Lockstep::Connection.where(defau
|
|
143
163
|
```
|
144
164
|
|
145
165
|
#### Advanced Queries
|
166
|
+
|
146
167
|
[Searchlight](https://developer.lockstep.io/docs/querying-with-searchlight) supports building complex comparisons in the query.
|
147
168
|
|
148
|
-
| Suffice
|
149
|
-
|
150
|
-
| _eq | Equals | where(name_eq: "Test Name")
|
151
|
-
| _gt | Greater Than | where(amount_gt: 100)
|
152
|
-
| _ge | Greater Than Or Equal | where(amount_ge: 100)
|
153
|
-
| _lt | Less Than | where(amount_lt: 100)
|
154
|
-
| _le | Less Than Or Equal | where(amount_le: 100)
|
155
|
-
| _ne | Not Equal | where(name_ne: "tak")
|
156
|
-
| _in | IN | where(name_in: ["tik", "tok"])
|
157
|
-
| _contains | CONTAINS | where(name_contains: "kit")
|
158
|
-
| _starts_with | STARTSWITH | where(name_starts_with: "tik")
|
159
|
-
| _ends_with | ENDSWITH | where(name_ends_with: "tok")
|
160
|
-
| _is | IS | where(name_is: nil) where(name_is: "NOT NULL")
|
169
|
+
| Suffice | Searchlight Query | Example |
|
170
|
+
| ------------- | --------------------- | ---------------------------------------------- |
|
171
|
+
| \_eq | Equals | where(name_eq: "Test Name") |
|
172
|
+
| \_gt | Greater Than | where(amount_gt: 100) |
|
173
|
+
| \_ge | Greater Than Or Equal | where(amount_ge: 100) |
|
174
|
+
| \_lt | Less Than | where(amount_lt: 100) |
|
175
|
+
| \_le | Less Than Or Equal | where(amount_le: 100) |
|
176
|
+
| \_ne | Not Equal | where(name_ne: "tak") |
|
177
|
+
| \_in | IN | where(name_in: ["tik", "tok"]) |
|
178
|
+
| \_contains | CONTAINS | where(name_contains: "kit") |
|
179
|
+
| \_starts_with | STARTSWITH | where(name_starts_with: "tik") |
|
180
|
+
| \_ends_with | ENDSWITH | where(name_ends_with: "tok") |
|
181
|
+
| \_is | IS | where(name_is: nil) where(name_is: "NOT NULL") |
|
161
182
|
|
162
183
|
#### Searchlight Queries
|
163
|
-
|
184
|
+
|
185
|
+
Using the rails standard queries generates searchlight compatible queries.
|
164
186
|
if you wish, you can always write raw [Searchlight](https://developer.lockstep.io/docs/querying-with-searchlight) queries by passing a string in the where block
|
165
187
|
|
166
188
|
```ruby
|
@@ -168,6 +190,7 @@ Lockstep::Connection.where("isActive is true OR default_currency_code in ('USD',
|
|
168
190
|
```
|
169
191
|
|
170
192
|
### Destroy and Destroy all
|
193
|
+
|
171
194
|
You can destroy a single object by calling destroy method on one object
|
172
195
|
Lockstep::Connection.find(company_id: "17544da8-7be8-4ee2-8c62-cbd81428c68b").destroy
|
173
196
|
|
@@ -176,6 +199,7 @@ You can also destroy multiple objects at once by calling it on the model class a
|
|
176
199
|
Lockstep::Connection.destroy_all(id: ["17544da8-7be8-4ee2-8c62-cbd81428c68b"])
|
177
200
|
|
178
201
|
### Count
|
202
|
+
|
179
203
|
You can fetch the count of available records by calling `count`
|
180
204
|
|
181
205
|
```ruby
|
@@ -185,12 +209,16 @@ Lockstep::Connection.count
|
|
185
209
|
Lockstep::Connection.where(status: "Active").count
|
186
210
|
# 100
|
187
211
|
```
|
212
|
+
|
188
213
|
### With Count
|
214
|
+
|
189
215
|
```ruby
|
190
216
|
records , count = Lockstep::Connection.where(status: "active").with_count(true).execute
|
191
217
|
# records get the records for the query and the with count if used will return the total number of records present for that query.
|
192
218
|
```
|
219
|
+
|
193
220
|
### Limit
|
221
|
+
|
194
222
|
You can limit the number of records being fetched by passing `limit`
|
195
223
|
|
196
224
|
The default limit is 200.
|
@@ -202,6 +230,7 @@ Lockstep::Connection.where(status: "Active").limit(100).execute
|
|
202
230
|
```
|
203
231
|
|
204
232
|
### Pagination
|
233
|
+
|
205
234
|
You can paginate the records by passing the `page`
|
206
235
|
|
207
236
|
```ruby
|
@@ -211,11 +240,13 @@ Lockstep::Connection.where(status: "Active").limit(100).page(2).execute
|
|
211
240
|
```
|
212
241
|
|
213
242
|
## Adding relationships with ActiveRecord
|
243
|
+
|
214
244
|
If you would like to link the `Lockstep::ApiRecord` with an `ActiveRecord::Base`, you can do so by including `Lockstep::ActiveRecords::Association`
|
215
245
|
|
216
246
|
This gives you access to 2 methods for defining relationships
|
217
|
-
|
218
|
-
|
247
|
+
|
248
|
+
- lockstep_has_many
|
249
|
+
- lockstep_belongs_to
|
219
250
|
|
220
251
|
```ruby
|
221
252
|
class User < ActiveRecord::Base
|
@@ -223,11 +254,12 @@ class User < ActiveRecord::Base
|
|
223
254
|
|
224
255
|
lockstep_has_many :connections, class_name: "Lockstep::Connection", primary_key: 'company_id', foreign_key: "lockstep_company_id"
|
225
256
|
lockstep_belongs_to :account, class_name: "Lockstep::Account", primary_key: 'company_id', foreign_key: "lockstep_company_id"
|
226
|
-
|
257
|
+
|
227
258
|
end
|
228
259
|
```
|
229
260
|
|
230
261
|
#### Loader
|
262
|
+
|
231
263
|
You could define your own loader for fetching the records by passing a `loader` Proc
|
232
264
|
|
233
265
|
```ruby
|
@@ -236,7 +268,7 @@ class User < ActiveRecord::Base
|
|
236
268
|
|
237
269
|
lockstep_has_many :connections, class_name: "Lockstep::Connection", loader: -> (record) { Lockstep::Connection.where(is_active: true).where(company_id: record.lockstep_company_id) }
|
238
270
|
lockstep_belongs_to :account, class_name: "Lockstep::Account", loader: -> (record) { Lockstep::Account.where(is_active: true).first }
|
239
|
-
|
271
|
+
|
240
272
|
end
|
241
273
|
```
|
242
274
|
|
@@ -1,7 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class Lockstep::Invoice < Lockstep::ApiRecord
|
2
|
-
self.model_name_uri =
|
3
|
-
self.id_ref =
|
4
|
+
self.model_name_uri = 'v1/Invoices'
|
5
|
+
self.id_ref = 'invoice_id'
|
4
6
|
load_schema(Schema::Invoice)
|
5
7
|
|
6
|
-
belongs_to :connection, class_name:
|
8
|
+
belongs_to :connection, class_name: 'Lockstep::Connection', foreign_key: :customer_id
|
9
|
+
|
10
|
+
scope :einvoices, -> { include_object(:customer, :lines) }
|
11
|
+
scope :received_einvoices, -> { einvoices.where(invoice_type_code: 'AP E-Invoice') }
|
7
12
|
end
|
@@ -27,5 +27,7 @@ end
|
|
27
27
|
has_many :financial_accounts, {:class_name=>"Schema::FinancialAccountSync", :included=>true}
|
28
28
|
has_many :financial_account_balance_histories, {:class_name=>"Schema::FinancialAccountBalanceHistorySync", :included=>true}
|
29
29
|
has_many :base_currencies, {:class_name=>"Schema::BaseCurrencySync", :included=>true}
|
30
|
+
has_many :journal_entries, {:class_name=>"Schema::JournalEntrySync", :included=>true}
|
31
|
+
has_many :journal_entry_lines, {:class_name=>"Schema::JournalEntryLineSync", :included=>true}
|
30
32
|
|
31
33
|
end
|
@@ -14,23 +14,23 @@ end
|
|
14
14
|
# @type: string
|
15
15
|
field :company_name
|
16
16
|
|
17
|
-
# This field indicates the type of company. It can be one of a limited number of values:
|
18
|
-
# Company, Customer, Group, Vendor, or Third Party. A company that represents both a customer and a vendor
|
19
|
-
# is identified as a CustomerVendor.
|
20
|
-
#
|
21
|
-
# * `Company` - This record represents a company that is part of the organization of the account holder.
|
22
|
-
# * `Customer` - This record represents a business entity that purchases things from the account holder.
|
23
|
-
# * `Group` - Only one record of type `GROUP` exists in each account. Contains your account profile.
|
24
|
-
# * `Vendor` - This record represents a business entity that sells things to the account holder.
|
25
|
-
# * `Third Party` - This record represents a business entity that is neither a customer nor vendor.
|
26
|
-
# * `CustomerVendor` - Both a customer and a vendor.
|
17
|
+
# This field indicates the type of company. It can be one of a limited number of values:
|
18
|
+
# Company, Customer, Group, Vendor, or Third Party. A company that represents both a customer and a vendor
|
19
|
+
# is identified as a CustomerVendor.
|
20
|
+
#
|
21
|
+
# * `Company` - This record represents a company that is part of the organization of the account holder.
|
22
|
+
# * `Customer` - This record represents a business entity that purchases things from the account holder.
|
23
|
+
# * `Group` - Only one record of type `GROUP` exists in each account. Contains your account profile.
|
24
|
+
# * `Vendor` - This record represents a business entity that sells things to the account holder.
|
25
|
+
# * `Third Party` - This record represents a business entity that is neither a customer nor vendor.
|
26
|
+
# * `CustomerVendor` - Both a customer and a vendor.
|
27
27
|
# * `CompanyProfile` - Profile for a Company, each Company should have at most 1 profile, used only for Profile Management.
|
28
28
|
# @type: string
|
29
29
|
field :company_type
|
30
30
|
|
31
|
-
# The GroupKey uniquely identifies a single Lockstep Platform account. All records for this
|
32
|
-
# account will share the same GroupKey value. GroupKey values cannot be changed once created.
|
33
|
-
#
|
31
|
+
# The GroupKey uniquely identifies a single Lockstep Platform account. All records for this
|
32
|
+
# account will share the same GroupKey value. GroupKey values cannot be changed once created.
|
33
|
+
#
|
34
34
|
# For more information, see [Accounts and GroupKeys](https://developer.lockstep.io/docs/accounts-and-groupkeys).
|
35
35
|
# @type: string
|
36
36
|
# @format: uuid
|
@@ -44,6 +44,10 @@ end
|
|
44
44
|
# @type: string
|
45
45
|
field :primary_contact_email_address
|
46
46
|
|
47
|
+
# The point of contact for this company
|
48
|
+
# @type: string
|
49
|
+
field :point_of_contact
|
50
|
+
|
47
51
|
# The total outstanding amount for this company
|
48
52
|
# @type: integer
|
49
53
|
# @format: int32
|
@@ -8,6 +8,11 @@ end
|
|
8
8
|
# Indicates what action to take when an existing object has been found during the sync process.
|
9
9
|
field :on_match_action
|
10
10
|
|
11
|
+
# The unique identifier of this object in the Sage Network platform.
|
12
|
+
# @type: string
|
13
|
+
# @format: uuid
|
14
|
+
field :network_id
|
15
|
+
|
11
16
|
# This is the primary key of the Company record. For this field, you should use whatever the company's unique
|
12
17
|
# identifying number is in the originating system. Search for a unique, non-changing number within the
|
13
18
|
# originating financial system for this record.
|
@@ -49,6 +54,11 @@ end
|
|
49
54
|
# @type: string
|
50
55
|
field :parent_company_erp_key
|
51
56
|
|
57
|
+
# The network id of the parent Company.
|
58
|
+
# @type: string
|
59
|
+
# @format: uuid
|
60
|
+
field :parent_company_network_id
|
61
|
+
|
52
62
|
# This flag indicates whether the company is currently active. An inactive company will be hidden from the
|
53
63
|
# user interface but will still be available for querying.
|
54
64
|
# @type: boolean
|
@@ -68,6 +78,11 @@ end
|
|
68
78
|
# @type: string
|
69
79
|
field :primary_contact_erp_key
|
70
80
|
|
81
|
+
# The network id of the primary Contact.
|
82
|
+
# @type: string
|
83
|
+
# @format: uuid
|
84
|
+
field :primary_contact_network_id
|
85
|
+
|
71
86
|
# The company's primary mailing address information
|
72
87
|
# @type: string
|
73
88
|
field :address1
|
@@ -8,6 +8,11 @@ end
|
|
8
8
|
# Indicates what action to take when an existing object has been found during the sync process.
|
9
9
|
field :on_match_action
|
10
10
|
|
11
|
+
# The unique identifier of this object in the Sage Network platform.
|
12
|
+
# @type: string
|
13
|
+
# @format: uuid
|
14
|
+
field :network_id
|
15
|
+
|
11
16
|
# This is the primary key of the Contact record. For this field, you should use whatever the contact's unique
|
12
17
|
# identifying number is in the originating system. Search for a unique, non-changing number within the
|
13
18
|
# originating financial system for this record.
|
@@ -31,6 +36,11 @@ end
|
|
31
36
|
# @type: string
|
32
37
|
field :company_erp_key
|
33
38
|
|
39
|
+
# The network id of the related Company.
|
40
|
+
# @type: string
|
41
|
+
# @format: uuid
|
42
|
+
field :company_network_id
|
43
|
+
|
34
44
|
# The name of the contact.
|
35
45
|
# @type: string
|
36
46
|
field :contact_name
|
@@ -50,12 +50,11 @@ end
|
|
50
50
|
# @type: string
|
51
51
|
field :erp_key
|
52
52
|
|
53
|
-
# Possible statuses for a record that supports ERP
|
54
|
-
field :
|
53
|
+
# Possible statuses for a record that supports ERP Update.
|
54
|
+
field :erp_update_status
|
55
55
|
|
56
|
-
#
|
57
|
-
|
58
|
-
field :erp_write_status_name
|
56
|
+
# Possible actions for a record that supports ERP Update.
|
57
|
+
field :erp_update_action
|
59
58
|
|
60
59
|
# Reference number for the applied credit memo.
|
61
60
|
# @type: integer
|
@@ -36,8 +36,8 @@ end
|
|
36
36
|
# @type: string
|
37
37
|
field :name
|
38
38
|
|
39
|
-
# The status of the Financial Account. Possible values are
|
40
|
-
#
|
39
|
+
# The status of the Financial Account. Possible values are Active,
|
40
|
+
# Inactive, Deleted or Archived.
|
41
41
|
# @type: string
|
42
42
|
field :status
|
43
43
|
|
@@ -78,6 +78,15 @@ end
|
|
78
78
|
# @type: string
|
79
79
|
field :invoice_status_code
|
80
80
|
|
81
|
+
# The id of the work flow status associated with this invoice.
|
82
|
+
# @type: string
|
83
|
+
# @format: uuid
|
84
|
+
field :workflow_status_id
|
85
|
+
|
86
|
+
# A description of the current workflow status of this invoice.
|
87
|
+
# @type: string
|
88
|
+
field :workflow_status_notes
|
89
|
+
|
81
90
|
# A code identifying the terms given to the purchaser. This field is imported directly from the originating
|
82
91
|
# financial system and does not follow a specified format.
|
83
92
|
# @type: string
|
@@ -226,12 +235,11 @@ end
|
|
226
235
|
# @format: double
|
227
236
|
field :base_currency_outstanding_balance_amount
|
228
237
|
|
229
|
-
# Possible statuses for a record that supports ERP
|
230
|
-
field :
|
238
|
+
# Possible statuses for a record that supports ERP Update.
|
239
|
+
field :erp_update_status
|
231
240
|
|
232
|
-
#
|
233
|
-
|
234
|
-
field :erp_write_status_name
|
241
|
+
# Possible actions for a record that supports ERP Update.
|
242
|
+
field :erp_update_action
|
235
243
|
|
236
244
|
# The date on which this record was last modified in source ERP.
|
237
245
|
# @type: string
|
@@ -250,6 +258,10 @@ end
|
|
250
258
|
# To retrieve this item, specify `Customer` in the "Include" parameter for your query.
|
251
259
|
field :customer_primary_contact
|
252
260
|
|
261
|
+
# Indicates if the invoice an E-Invoice or not
|
262
|
+
# @type: boolean
|
263
|
+
field :is_e_invoice
|
264
|
+
|
253
265
|
belongs_to :company, {:class_name=>"Lockstep::Account", :primary_key=>:company_id, :foreign_key=>"company_id"}
|
254
266
|
belongs_to :account, {:class_name=>"Lockstep::Account", :primary_key=>:company_id, :foreign_key=>"company_id"}
|
255
267
|
belongs_to :customer, {:class_name=>"Lockstep::Connection", :primary_key=>:company_id, :foreign_key=>"customer_id"}
|
@@ -257,6 +269,7 @@ end
|
|
257
269
|
belongs_to :created_user, {:class_name=>"Lockstep::User", :primary_key=>:user_id, :foreign_key=>"created_user_id"}
|
258
270
|
belongs_to :modified_user, {:class_name=>"Lockstep::User", :primary_key=>:user_id, :foreign_key=>"modified_user_id"}
|
259
271
|
|
272
|
+
has_many :workflow_statuses, {:class_name=>"Schema::InvoiceWorkflowStatusHistory", :included=>true}
|
260
273
|
has_many :addresses, {:class_name=>"Schema::InvoiceAddress", :included=>true}
|
261
274
|
has_many :lines, {:class_name=>"Schema::InvoiceLine", :included=>true}
|
262
275
|
has_many :payments, {:class_name=>"Schema::InvoicePaymentDetail", :included=>true}
|
@@ -133,12 +133,11 @@ end
|
|
133
133
|
# @format: uuid
|
134
134
|
field :app_enrollment_id
|
135
135
|
|
136
|
-
# Possible statuses for a record that supports ERP
|
137
|
-
field :
|
136
|
+
# Possible statuses for a record that supports ERP Update.
|
137
|
+
field :erp_update_status
|
138
138
|
|
139
|
-
#
|
140
|
-
|
141
|
-
field :erp_write_status_name
|
139
|
+
# Possible actions for a record that supports ERP Update.
|
140
|
+
field :erp_update_action
|
142
141
|
|
143
142
|
# The date on which this record was last modified in source ERP.
|
144
143
|
# @type: string
|
@@ -8,6 +8,11 @@ end
|
|
8
8
|
# Indicates what action to take when an existing object has been found during the sync process.
|
9
9
|
field :on_match_action
|
10
10
|
|
11
|
+
# The unique identifier of this object in the Sage Network platform.
|
12
|
+
# @type: string
|
13
|
+
# @format: uuid
|
14
|
+
field :network_id
|
15
|
+
|
11
16
|
# This is the primary key of the Invoice Line record. For this field, you should use whatever the contact's unique
|
12
17
|
# identifying number is in the originating system. Search for a unique, non-changing number within the
|
13
18
|
# originating financial system for this record.
|
@@ -25,6 +30,11 @@ end
|
|
25
30
|
# @type: string
|
26
31
|
field :invoice_erp_key
|
27
32
|
|
33
|
+
# The network id of the parent Invoice.
|
34
|
+
# @type: string
|
35
|
+
# @format: uuid
|
36
|
+
field :invoice_network_id
|
37
|
+
|
28
38
|
# The line number of this line, as defined in the originating ERP or accounting system. You can sort on this number to
|
29
39
|
# get the original view of lines within the invoice.
|
30
40
|
# @type: string
|
@@ -8,6 +8,11 @@ end
|
|
8
8
|
# Indicates what action to take when an existing object has been found during the sync process.
|
9
9
|
field :on_match_action
|
10
10
|
|
11
|
+
# The unique identifier of this object in the Sage Network platform.
|
12
|
+
# @type: string
|
13
|
+
# @format: uuid
|
14
|
+
field :network_id
|
15
|
+
|
11
16
|
# This is the primary key of the Invoice record. For this field, you should use whatever the invoice's unique
|
12
17
|
# identifying number is in the originating system. Search for a unique, non-changing number within the
|
13
18
|
# originating financial system for this record.
|
@@ -29,6 +34,11 @@ end
|
|
29
34
|
# @type: string
|
30
35
|
field :company_erp_key
|
31
36
|
|
37
|
+
# The network id of the related Company.
|
38
|
+
# @type: string
|
39
|
+
# @format: uuid
|
40
|
+
field :company_network_id
|
41
|
+
|
32
42
|
# The original primary key or unique ID of the company to which this invoice was sent. This value should
|
33
43
|
# match the [Company ErpKey](https://developer.lockstep.io/docs/importing-companies#erpkey) field on the
|
34
44
|
# [CompanySyncModel](https://developer.lockstep.io/docs/importing-companies).
|
@@ -39,6 +49,11 @@ end
|
|
39
49
|
# @type: string
|
40
50
|
field :customer_erp_key
|
41
51
|
|
52
|
+
# The network id of the related Customer.
|
53
|
+
# @type: string
|
54
|
+
# @format: uuid
|
55
|
+
field :customer_network_id
|
56
|
+
|
42
57
|
# The name of the salesperson that wrote this invoice. This is just text, it is not a reference to the
|
43
58
|
# "Contacts" table. You will not receive an error if this field does not match a known contact person.
|
44
59
|
# @type: string
|
@@ -308,6 +323,14 @@ end
|
|
308
323
|
# @format: double
|
309
324
|
field :base_currency_outstanding_balance_amount
|
310
325
|
|
326
|
+
# True if the invoice is an E-Invoice
|
327
|
+
# @type: boolean
|
328
|
+
field :is_e_invoice
|
329
|
+
|
330
|
+
# True if the E-Invoice should be sent to gov/other recipients immediately
|
331
|
+
# @type: boolean
|
332
|
+
field :send_immediately
|
333
|
+
|
311
334
|
|
312
335
|
|
313
336
|
end
|