twinfieldrb 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/codeql-analysis.yml +70 -0
  3. data/.github/workflows/rspec.yml +33 -0
  4. data/.gitignore +6 -0
  5. data/.rspec +1 -0
  6. data/CHANGELOG.md +15 -0
  7. data/Gemfile +4 -0
  8. data/README.md +120 -0
  9. data/Rakefile +1 -0
  10. data/lib/twinfield/abstract_model.rb +7 -0
  11. data/lib/twinfield/api/base_api.rb +50 -0
  12. data/lib/twinfield/api/finder.rb +45 -0
  13. data/lib/twinfield/api/o_auth_session.rb +58 -0
  14. data/lib/twinfield/api/process.rb +44 -0
  15. data/lib/twinfield/api/session.rb +170 -0
  16. data/lib/twinfield/browse/transaction/cost_center.rb +145 -0
  17. data/lib/twinfield/browse/transaction/customer.rb +413 -0
  18. data/lib/twinfield/browse/transaction/general_ledger.rb +144 -0
  19. data/lib/twinfield/configuration.rb +49 -0
  20. data/lib/twinfield/create/cost_center.rb +39 -0
  21. data/lib/twinfield/create/creditor.rb +88 -0
  22. data/lib/twinfield/create/debtor.rb +88 -0
  23. data/lib/twinfield/create/error.rb +30 -0
  24. data/lib/twinfield/create/general_ledger.rb +39 -0
  25. data/lib/twinfield/create/transaction.rb +97 -0
  26. data/lib/twinfield/customer.rb +612 -0
  27. data/lib/twinfield/helpers/parsers.rb +23 -0
  28. data/lib/twinfield/helpers/transaction_match.rb +40 -0
  29. data/lib/twinfield/request/find.rb +149 -0
  30. data/lib/twinfield/request/list.rb +66 -0
  31. data/lib/twinfield/request/read.rb +111 -0
  32. data/lib/twinfield/sales_invoice.rb +409 -0
  33. data/lib/twinfield/transaction.rb +112 -0
  34. data/lib/twinfield/version.rb +5 -0
  35. data/lib/twinfield.rb +89 -0
  36. data/script/boot.rb +58 -0
  37. data/script/console +2 -0
  38. data/spec/fixtures/cluster/finder/ivt.xml +1 -0
  39. data/spec/fixtures/cluster/processxml/columns/sales_transactions.xml +312 -0
  40. data/spec/fixtures/cluster/processxml/customer/create_success.xml +100 -0
  41. data/spec/fixtures/cluster/processxml/customer/read_success.xml +93 -0
  42. data/spec/fixtures/cluster/processxml/customer/update_success.xml +1 -0
  43. data/spec/fixtures/cluster/processxml/invoice/create_error.xml +8 -0
  44. data/spec/fixtures/cluster/processxml/invoice/create_final_error.xml +67 -0
  45. data/spec/fixtures/cluster/processxml/invoice/create_success.xml +64 -0
  46. data/spec/fixtures/cluster/processxml/invoice/read_not_found.xml +1 -0
  47. data/spec/fixtures/cluster/processxml/invoice/read_success.xml +106 -0
  48. data/spec/fixtures/cluster/processxml/read/deb.xml +12 -0
  49. data/spec/fixtures/cluster/processxml/response.xml +8 -0
  50. data/spec/fixtures/login/session/wsdl.xml +210 -0
  51. data/spec/spec_helper.rb +17 -0
  52. data/spec/stubs/finder_stubs.rb +19 -0
  53. data/spec/stubs/processxml_stubs.rb +41 -0
  54. data/spec/stubs/session_stubs.rb +28 -0
  55. data/spec/twinfield/api/oauth_session_spec.rb +37 -0
  56. data/spec/twinfield/api/process_spec.rb +7 -0
  57. data/spec/twinfield/browse/transaction/cost_center_spec.rb +60 -0
  58. data/spec/twinfield/browse/transaction/general_ledger_spec.rb +60 -0
  59. data/spec/twinfield/browse/transaction/transaction_spec.rb +72 -0
  60. data/spec/twinfield/config_spec.rb +60 -0
  61. data/spec/twinfield/customer_spec.rb +326 -0
  62. data/spec/twinfield/request/find_spec.rb +24 -0
  63. data/spec/twinfield/request/list_spec.rb +58 -0
  64. data/spec/twinfield/request/read_spec.rb +26 -0
  65. data/spec/twinfield/sales_invoice_spec.rb +253 -0
  66. data/spec/twinfield/session_spec.rb +77 -0
  67. data/spec/twinfield/transaction_spec.rb +149 -0
  68. data/twinfieldrb.gemspec +24 -0
  69. data/wsdls/accounting/finder.wsdl +157 -0
  70. data/wsdls/accounting/process.wsdl +199 -0
  71. data/wsdls/accounting/session.wsdl +452 -0
  72. data/wsdls/accounting2/finder.wsdl +157 -0
  73. data/wsdls/accounting2/process.wsdl +199 -0
  74. data/wsdls/api.accounting/finder.wsdl +157 -0
  75. data/wsdls/api.accounting/process.wsdl +199 -0
  76. data/wsdls/session.wsdl +210 -0
  77. data/wsdls/update +10 -0
  78. metadata +196 -0
@@ -0,0 +1,452 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.twinfield.com/" xmlns:s1="http://microsoft.com/wsdl/types/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://www.twinfield.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
3
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Twinfield session web service methods.</wsdl:documentation>
4
+ <wsdl:types>
5
+ <s:schema elementFormDefault="qualified" targetNamespace="http://www.twinfield.com/">
6
+ <s:import namespace="http://microsoft.com/wsdl/types/" />
7
+ <s:element name="Logon">
8
+ <s:complexType>
9
+ <s:sequence>
10
+ <s:element minOccurs="0" maxOccurs="1" name="user" type="s:string" />
11
+ <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
12
+ <s:element minOccurs="0" maxOccurs="1" name="organisation" type="s:string" />
13
+ </s:sequence>
14
+ </s:complexType>
15
+ </s:element>
16
+ <s:element name="LogonResponse">
17
+ <s:complexType>
18
+ <s:sequence>
19
+ <s:element minOccurs="1" maxOccurs="1" name="LogonResult" type="tns:LogonResult" />
20
+ <s:element minOccurs="1" maxOccurs="1" name="nextAction" type="tns:LogonAction" />
21
+ <s:element minOccurs="0" maxOccurs="1" name="cluster" type="s:string" />
22
+ </s:sequence>
23
+ </s:complexType>
24
+ </s:element>
25
+ <s:simpleType name="LogonResult">
26
+ <s:restriction base="s:string">
27
+ <s:enumeration value="Ok" />
28
+ <s:enumeration value="Blocked" />
29
+ <s:enumeration value="Untrusted" />
30
+ <s:enumeration value="Invalid" />
31
+ <s:enumeration value="Deleted" />
32
+ <s:enumeration value="Disabled" />
33
+ <s:enumeration value="OrganisationInactive" />
34
+ <s:enumeration value="ClientInvalid" />
35
+ </s:restriction>
36
+ </s:simpleType>
37
+ <s:simpleType name="LogonAction">
38
+ <s:restriction base="s:string">
39
+ <s:enumeration value="None" />
40
+ <s:enumeration value="SMSLogon" />
41
+ <s:enumeration value="ChangePassword" />
42
+ </s:restriction>
43
+ </s:simpleType>
44
+ <s:element name="Header" type="tns:Header" />
45
+ <s:complexType name="Header">
46
+ <s:sequence>
47
+ <s:element minOccurs="0" maxOccurs="1" name="SessionID" type="s:string" />
48
+ <s:element minOccurs="0" maxOccurs="1" name="AccessToken" type="s:string" />
49
+ <s:element minOccurs="0" maxOccurs="1" name="CompanyCode" type="s:string" />
50
+ <s:element minOccurs="1" maxOccurs="1" name="CompanyId" nillable="true" type="s1:guid" />
51
+ </s:sequence>
52
+ <s:anyAttribute />
53
+ </s:complexType>
54
+ <s:element name="SmsLogon">
55
+ <s:complexType>
56
+ <s:sequence>
57
+ <s:element minOccurs="0" maxOccurs="1" name="smsCode" type="s:string" />
58
+ </s:sequence>
59
+ </s:complexType>
60
+ </s:element>
61
+ <s:element name="SmsLogonResponse">
62
+ <s:complexType>
63
+ <s:sequence>
64
+ <s:element minOccurs="1" maxOccurs="1" name="SmsLogonResult" type="tns:SMSLogonResult" />
65
+ <s:element minOccurs="1" maxOccurs="1" name="nextAction" type="tns:LogonAction" />
66
+ </s:sequence>
67
+ </s:complexType>
68
+ </s:element>
69
+ <s:simpleType name="SMSLogonResult">
70
+ <s:restriction base="s:string">
71
+ <s:enumeration value="Ok" />
72
+ <s:enumeration value="Invalid" />
73
+ <s:enumeration value="TimeOut" />
74
+ <s:enumeration value="Disabled" />
75
+ </s:restriction>
76
+ </s:simpleType>
77
+ <s:element name="SmsSendCode">
78
+ <s:complexType />
79
+ </s:element>
80
+ <s:element name="SmsSendCodeResponse">
81
+ <s:complexType>
82
+ <s:sequence>
83
+ <s:element minOccurs="1" maxOccurs="1" name="SmsSendCodeResult" type="s:int" />
84
+ </s:sequence>
85
+ </s:complexType>
86
+ </s:element>
87
+ <s:element name="ChangePassword">
88
+ <s:complexType>
89
+ <s:sequence>
90
+ <s:element minOccurs="0" maxOccurs="1" name="currentPassword" type="s:string" />
91
+ <s:element minOccurs="0" maxOccurs="1" name="newPassword" type="s:string" />
92
+ </s:sequence>
93
+ </s:complexType>
94
+ </s:element>
95
+ <s:element name="ChangePasswordResponse">
96
+ <s:complexType>
97
+ <s:sequence>
98
+ <s:element minOccurs="1" maxOccurs="1" name="ChangePasswordResult" type="tns:ChangePasswordResult" />
99
+ <s:element minOccurs="1" maxOccurs="1" name="nextAction" type="tns:LogonAction" />
100
+ </s:sequence>
101
+ </s:complexType>
102
+ </s:element>
103
+ <s:simpleType name="ChangePasswordResult">
104
+ <s:restriction base="s:string">
105
+ <s:enumeration value="Ok" />
106
+ <s:enumeration value="Invalid" />
107
+ <s:enumeration value="NotDifferent" />
108
+ <s:enumeration value="NotSecure" />
109
+ <s:enumeration value="Disabled" />
110
+ </s:restriction>
111
+ </s:simpleType>
112
+ <s:element name="SelectCompany">
113
+ <s:complexType>
114
+ <s:sequence>
115
+ <s:element minOccurs="0" maxOccurs="1" name="company" type="s:string" />
116
+ </s:sequence>
117
+ </s:complexType>
118
+ </s:element>
119
+ <s:element name="SelectCompanyResponse">
120
+ <s:complexType>
121
+ <s:sequence>
122
+ <s:element minOccurs="1" maxOccurs="1" name="SelectCompanyResult" type="tns:SelectCompanyResult" />
123
+ </s:sequence>
124
+ </s:complexType>
125
+ </s:element>
126
+ <s:simpleType name="SelectCompanyResult">
127
+ <s:restriction base="s:string">
128
+ <s:enumeration value="Ok" />
129
+ <s:enumeration value="Invalid" />
130
+ </s:restriction>
131
+ </s:simpleType>
132
+ <s:element name="KeepAlive">
133
+ <s:complexType />
134
+ </s:element>
135
+ <s:element name="KeepAliveResponse">
136
+ <s:complexType />
137
+ </s:element>
138
+ <s:element name="Abandon">
139
+ <s:complexType />
140
+ </s:element>
141
+ <s:element name="AbandonResponse">
142
+ <s:complexType />
143
+ </s:element>
144
+ <s:element name="GetRole">
145
+ <s:complexType />
146
+ </s:element>
147
+ <s:element name="GetRoleResponse">
148
+ <s:complexType>
149
+ <s:sequence>
150
+ <s:element minOccurs="0" maxOccurs="1" name="GetRoleResult" type="s:string" />
151
+ </s:sequence>
152
+ </s:complexType>
153
+ </s:element>
154
+ </s:schema>
155
+ <s:schema elementFormDefault="qualified" targetNamespace="http://microsoft.com/wsdl/types/">
156
+ <s:simpleType name="guid">
157
+ <s:restriction base="s:string">
158
+ <s:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" />
159
+ </s:restriction>
160
+ </s:simpleType>
161
+ </s:schema>
162
+ </wsdl:types>
163
+ <wsdl:message name="LogonSoapIn">
164
+ <wsdl:part name="parameters" element="tns:Logon" />
165
+ </wsdl:message>
166
+ <wsdl:message name="LogonSoapOut">
167
+ <wsdl:part name="parameters" element="tns:LogonResponse" />
168
+ </wsdl:message>
169
+ <wsdl:message name="LogonHeader">
170
+ <wsdl:part name="Header" element="tns:Header" />
171
+ </wsdl:message>
172
+ <wsdl:message name="SmsLogonSoapIn">
173
+ <wsdl:part name="parameters" element="tns:SmsLogon" />
174
+ </wsdl:message>
175
+ <wsdl:message name="SmsLogonSoapOut">
176
+ <wsdl:part name="parameters" element="tns:SmsLogonResponse" />
177
+ </wsdl:message>
178
+ <wsdl:message name="SmsLogonHeader">
179
+ <wsdl:part name="Header" element="tns:Header" />
180
+ </wsdl:message>
181
+ <wsdl:message name="SmsSendCodeSoapIn">
182
+ <wsdl:part name="parameters" element="tns:SmsSendCode" />
183
+ </wsdl:message>
184
+ <wsdl:message name="SmsSendCodeSoapOut">
185
+ <wsdl:part name="parameters" element="tns:SmsSendCodeResponse" />
186
+ </wsdl:message>
187
+ <wsdl:message name="SmsSendCodeHeader">
188
+ <wsdl:part name="Header" element="tns:Header" />
189
+ </wsdl:message>
190
+ <wsdl:message name="ChangePasswordSoapIn">
191
+ <wsdl:part name="parameters" element="tns:ChangePassword" />
192
+ </wsdl:message>
193
+ <wsdl:message name="ChangePasswordSoapOut">
194
+ <wsdl:part name="parameters" element="tns:ChangePasswordResponse" />
195
+ </wsdl:message>
196
+ <wsdl:message name="ChangePasswordHeader">
197
+ <wsdl:part name="Header" element="tns:Header" />
198
+ </wsdl:message>
199
+ <wsdl:message name="SelectCompanySoapIn">
200
+ <wsdl:part name="parameters" element="tns:SelectCompany" />
201
+ </wsdl:message>
202
+ <wsdl:message name="SelectCompanySoapOut">
203
+ <wsdl:part name="parameters" element="tns:SelectCompanyResponse" />
204
+ </wsdl:message>
205
+ <wsdl:message name="SelectCompanyHeader">
206
+ <wsdl:part name="Header" element="tns:Header" />
207
+ </wsdl:message>
208
+ <wsdl:message name="KeepAliveSoapIn">
209
+ <wsdl:part name="parameters" element="tns:KeepAlive" />
210
+ </wsdl:message>
211
+ <wsdl:message name="KeepAliveSoapOut">
212
+ <wsdl:part name="parameters" element="tns:KeepAliveResponse" />
213
+ </wsdl:message>
214
+ <wsdl:message name="KeepAliveHeader">
215
+ <wsdl:part name="Header" element="tns:Header" />
216
+ </wsdl:message>
217
+ <wsdl:message name="AbandonSoapIn">
218
+ <wsdl:part name="parameters" element="tns:Abandon" />
219
+ </wsdl:message>
220
+ <wsdl:message name="AbandonSoapOut">
221
+ <wsdl:part name="parameters" element="tns:AbandonResponse" />
222
+ </wsdl:message>
223
+ <wsdl:message name="AbandonHeader">
224
+ <wsdl:part name="Header" element="tns:Header" />
225
+ </wsdl:message>
226
+ <wsdl:message name="GetRoleSoapIn">
227
+ <wsdl:part name="parameters" element="tns:GetRole" />
228
+ </wsdl:message>
229
+ <wsdl:message name="GetRoleSoapOut">
230
+ <wsdl:part name="parameters" element="tns:GetRoleResponse" />
231
+ </wsdl:message>
232
+ <wsdl:message name="GetRoleHeader">
233
+ <wsdl:part name="Header" element="tns:Header" />
234
+ </wsdl:message>
235
+ <wsdl:portType name="SessionSoap">
236
+ <wsdl:operation name="Logon">
237
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Logs on with the user credentials.</wsdl:documentation>
238
+ <wsdl:input message="tns:LogonSoapIn" />
239
+ <wsdl:output message="tns:LogonSoapOut" />
240
+ </wsdl:operation>
241
+ <wsdl:operation name="SmsLogon">
242
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Logs on with the sms code.</wsdl:documentation>
243
+ <wsdl:input message="tns:SmsLogonSoapIn" />
244
+ <wsdl:output message="tns:SmsLogonSoapOut" />
245
+ </wsdl:operation>
246
+ <wsdl:operation name="SmsSendCode">
247
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Sends the sms code.</wsdl:documentation>
248
+ <wsdl:input message="tns:SmsSendCodeSoapIn" />
249
+ <wsdl:output message="tns:SmsSendCodeSoapOut" />
250
+ </wsdl:operation>
251
+ <wsdl:operation name="ChangePassword">
252
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Changes the password.</wsdl:documentation>
253
+ <wsdl:input message="tns:ChangePasswordSoapIn" />
254
+ <wsdl:output message="tns:ChangePasswordSoapOut" />
255
+ </wsdl:operation>
256
+ <wsdl:operation name="SelectCompany">
257
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Selects a company.</wsdl:documentation>
258
+ <wsdl:input message="tns:SelectCompanySoapIn" />
259
+ <wsdl:output message="tns:SelectCompanySoapOut" />
260
+ </wsdl:operation>
261
+ <wsdl:operation name="KeepAlive">
262
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Keeps the session alive.</wsdl:documentation>
263
+ <wsdl:input message="tns:KeepAliveSoapIn" />
264
+ <wsdl:output message="tns:KeepAliveSoapOut" />
265
+ </wsdl:operation>
266
+ <wsdl:operation name="Abandon">
267
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Abandons the session.</wsdl:documentation>
268
+ <wsdl:input message="tns:AbandonSoapIn" />
269
+ <wsdl:output message="tns:AbandonSoapOut" />
270
+ </wsdl:operation>
271
+ <wsdl:operation name="GetRole">
272
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Gets the session's user role.</wsdl:documentation>
273
+ <wsdl:input message="tns:GetRoleSoapIn" />
274
+ <wsdl:output message="tns:GetRoleSoapOut" />
275
+ </wsdl:operation>
276
+ </wsdl:portType>
277
+ <wsdl:binding name="SessionSoap" type="tns:SessionSoap">
278
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
279
+ <wsdl:operation name="Logon">
280
+ <soap:operation soapAction="http://www.twinfield.com/Logon" style="document" />
281
+ <wsdl:input>
282
+ <soap:body use="literal" />
283
+ </wsdl:input>
284
+ <wsdl:output>
285
+ <soap:body use="literal" />
286
+ <soap:header message="tns:LogonHeader" part="Header" use="literal" />
287
+ </wsdl:output>
288
+ </wsdl:operation>
289
+ <wsdl:operation name="SmsLogon">
290
+ <soap:operation soapAction="http://www.twinfield.com/SmsLogon" style="document" />
291
+ <wsdl:input>
292
+ <soap:body use="literal" />
293
+ <soap:header message="tns:SmsLogonHeader" part="Header" use="literal" />
294
+ </wsdl:input>
295
+ <wsdl:output>
296
+ <soap:body use="literal" />
297
+ </wsdl:output>
298
+ </wsdl:operation>
299
+ <wsdl:operation name="SmsSendCode">
300
+ <soap:operation soapAction="http://www.twinfield.com/SmsSendCode" style="document" />
301
+ <wsdl:input>
302
+ <soap:body use="literal" />
303
+ <soap:header message="tns:SmsSendCodeHeader" part="Header" use="literal" />
304
+ </wsdl:input>
305
+ <wsdl:output>
306
+ <soap:body use="literal" />
307
+ </wsdl:output>
308
+ </wsdl:operation>
309
+ <wsdl:operation name="ChangePassword">
310
+ <soap:operation soapAction="http://www.twinfield.com/ChangePassword" style="document" />
311
+ <wsdl:input>
312
+ <soap:body use="literal" />
313
+ <soap:header message="tns:ChangePasswordHeader" part="Header" use="literal" />
314
+ </wsdl:input>
315
+ <wsdl:output>
316
+ <soap:body use="literal" />
317
+ </wsdl:output>
318
+ </wsdl:operation>
319
+ <wsdl:operation name="SelectCompany">
320
+ <soap:operation soapAction="http://www.twinfield.com/SelectCompany" style="document" />
321
+ <wsdl:input>
322
+ <soap:body use="literal" />
323
+ <soap:header message="tns:SelectCompanyHeader" part="Header" use="literal" />
324
+ </wsdl:input>
325
+ <wsdl:output>
326
+ <soap:body use="literal" />
327
+ </wsdl:output>
328
+ </wsdl:operation>
329
+ <wsdl:operation name="KeepAlive">
330
+ <soap:operation soapAction="http://www.twinfield.com/KeepAlive" style="document" />
331
+ <wsdl:input>
332
+ <soap:body use="literal" />
333
+ <soap:header message="tns:KeepAliveHeader" part="Header" use="literal" />
334
+ </wsdl:input>
335
+ <wsdl:output>
336
+ <soap:body use="literal" />
337
+ </wsdl:output>
338
+ </wsdl:operation>
339
+ <wsdl:operation name="Abandon">
340
+ <soap:operation soapAction="http://www.twinfield.com/Abandon" style="document" />
341
+ <wsdl:input>
342
+ <soap:body use="literal" />
343
+ <soap:header message="tns:AbandonHeader" part="Header" use="literal" />
344
+ </wsdl:input>
345
+ <wsdl:output>
346
+ <soap:body use="literal" />
347
+ </wsdl:output>
348
+ </wsdl:operation>
349
+ <wsdl:operation name="GetRole">
350
+ <soap:operation soapAction="http://www.twinfield.com/GetRole" style="document" />
351
+ <wsdl:input>
352
+ <soap:body use="literal" />
353
+ <soap:header message="tns:GetRoleHeader" part="Header" use="literal" />
354
+ </wsdl:input>
355
+ <wsdl:output>
356
+ <soap:body use="literal" />
357
+ </wsdl:output>
358
+ </wsdl:operation>
359
+ </wsdl:binding>
360
+ <wsdl:binding name="SessionSoap12" type="tns:SessionSoap">
361
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
362
+ <wsdl:operation name="Logon">
363
+ <soap12:operation soapAction="http://www.twinfield.com/Logon" style="document" />
364
+ <wsdl:input>
365
+ <soap12:body use="literal" />
366
+ </wsdl:input>
367
+ <wsdl:output>
368
+ <soap12:body use="literal" />
369
+ <soap12:header message="tns:LogonHeader" part="Header" use="literal" />
370
+ </wsdl:output>
371
+ </wsdl:operation>
372
+ <wsdl:operation name="SmsLogon">
373
+ <soap12:operation soapAction="http://www.twinfield.com/SmsLogon" style="document" />
374
+ <wsdl:input>
375
+ <soap12:body use="literal" />
376
+ <soap12:header message="tns:SmsLogonHeader" part="Header" use="literal" />
377
+ </wsdl:input>
378
+ <wsdl:output>
379
+ <soap12:body use="literal" />
380
+ </wsdl:output>
381
+ </wsdl:operation>
382
+ <wsdl:operation name="SmsSendCode">
383
+ <soap12:operation soapAction="http://www.twinfield.com/SmsSendCode" style="document" />
384
+ <wsdl:input>
385
+ <soap12:body use="literal" />
386
+ <soap12:header message="tns:SmsSendCodeHeader" part="Header" use="literal" />
387
+ </wsdl:input>
388
+ <wsdl:output>
389
+ <soap12:body use="literal" />
390
+ </wsdl:output>
391
+ </wsdl:operation>
392
+ <wsdl:operation name="ChangePassword">
393
+ <soap12:operation soapAction="http://www.twinfield.com/ChangePassword" style="document" />
394
+ <wsdl:input>
395
+ <soap12:body use="literal" />
396
+ <soap12:header message="tns:ChangePasswordHeader" part="Header" use="literal" />
397
+ </wsdl:input>
398
+ <wsdl:output>
399
+ <soap12:body use="literal" />
400
+ </wsdl:output>
401
+ </wsdl:operation>
402
+ <wsdl:operation name="SelectCompany">
403
+ <soap12:operation soapAction="http://www.twinfield.com/SelectCompany" style="document" />
404
+ <wsdl:input>
405
+ <soap12:body use="literal" />
406
+ <soap12:header message="tns:SelectCompanyHeader" part="Header" use="literal" />
407
+ </wsdl:input>
408
+ <wsdl:output>
409
+ <soap12:body use="literal" />
410
+ </wsdl:output>
411
+ </wsdl:operation>
412
+ <wsdl:operation name="KeepAlive">
413
+ <soap12:operation soapAction="http://www.twinfield.com/KeepAlive" style="document" />
414
+ <wsdl:input>
415
+ <soap12:body use="literal" />
416
+ <soap12:header message="tns:KeepAliveHeader" part="Header" use="literal" />
417
+ </wsdl:input>
418
+ <wsdl:output>
419
+ <soap12:body use="literal" />
420
+ </wsdl:output>
421
+ </wsdl:operation>
422
+ <wsdl:operation name="Abandon">
423
+ <soap12:operation soapAction="http://www.twinfield.com/Abandon" style="document" />
424
+ <wsdl:input>
425
+ <soap12:body use="literal" />
426
+ <soap12:header message="tns:AbandonHeader" part="Header" use="literal" />
427
+ </wsdl:input>
428
+ <wsdl:output>
429
+ <soap12:body use="literal" />
430
+ </wsdl:output>
431
+ </wsdl:operation>
432
+ <wsdl:operation name="GetRole">
433
+ <soap12:operation soapAction="http://www.twinfield.com/GetRole" style="document" />
434
+ <wsdl:input>
435
+ <soap12:body use="literal" />
436
+ <soap12:header message="tns:GetRoleHeader" part="Header" use="literal" />
437
+ </wsdl:input>
438
+ <wsdl:output>
439
+ <soap12:body use="literal" />
440
+ </wsdl:output>
441
+ </wsdl:operation>
442
+ </wsdl:binding>
443
+ <wsdl:service name="Session">
444
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Twinfield session web service methods.</wsdl:documentation>
445
+ <wsdl:port name="SessionSoap" binding="tns:SessionSoap">
446
+ <soap:address location="https://accounting.twinfield.com/webservices/session.asmx" />
447
+ </wsdl:port>
448
+ <wsdl:port name="SessionSoap12" binding="tns:SessionSoap12">
449
+ <soap12:address location="https://accounting.twinfield.com/webservices/session.asmx" />
450
+ </wsdl:port>
451
+ </wsdl:service>
452
+ </wsdl:definitions>
@@ -0,0 +1,157 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.twinfield.com/" xmlns:s1="http://microsoft.com/wsdl/types/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://www.twinfield.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
3
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Twinfield Finder web service methods.</wsdl:documentation>
4
+ <wsdl:types>
5
+ <s:schema elementFormDefault="qualified" targetNamespace="http://www.twinfield.com/">
6
+ <s:import namespace="http://microsoft.com/wsdl/types/" />
7
+ <s:element name="Search">
8
+ <s:complexType>
9
+ <s:sequence>
10
+ <s:element minOccurs="0" maxOccurs="1" name="type" type="s:string" />
11
+ <s:element minOccurs="0" maxOccurs="1" name="pattern" type="s:string" />
12
+ <s:element minOccurs="1" maxOccurs="1" name="field" type="s:int" />
13
+ <s:element minOccurs="1" maxOccurs="1" name="firstRow" type="s:int" />
14
+ <s:element minOccurs="1" maxOccurs="1" name="maxRows" type="s:int" />
15
+ <s:element minOccurs="0" maxOccurs="1" name="options" type="tns:ArrayOfArrayOfString" />
16
+ </s:sequence>
17
+ </s:complexType>
18
+ </s:element>
19
+ <s:complexType name="ArrayOfArrayOfString">
20
+ <s:sequence>
21
+ <s:element minOccurs="0" maxOccurs="unbounded" name="ArrayOfString" nillable="true" type="tns:ArrayOfString" />
22
+ </s:sequence>
23
+ </s:complexType>
24
+ <s:complexType name="ArrayOfString">
25
+ <s:sequence>
26
+ <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
27
+ </s:sequence>
28
+ </s:complexType>
29
+ <s:element name="SearchResponse">
30
+ <s:complexType>
31
+ <s:sequence>
32
+ <s:element minOccurs="0" maxOccurs="1" name="SearchResult" type="tns:ArrayOfMessageOfErrorCodes" />
33
+ <s:element minOccurs="0" maxOccurs="1" name="data" type="tns:FinderData" />
34
+ </s:sequence>
35
+ </s:complexType>
36
+ </s:element>
37
+ <s:complexType name="ArrayOfMessageOfErrorCodes">
38
+ <s:sequence>
39
+ <s:element minOccurs="0" maxOccurs="unbounded" name="MessageOfErrorCodes" nillable="true" type="tns:MessageOfErrorCodes" />
40
+ </s:sequence>
41
+ </s:complexType>
42
+ <s:complexType name="MessageOfErrorCodes">
43
+ <s:sequence>
44
+ <s:element minOccurs="1" maxOccurs="1" name="Type" type="tns:MessageType" />
45
+ <s:element minOccurs="0" maxOccurs="1" name="Text" type="s:string" />
46
+ <s:element minOccurs="1" maxOccurs="1" name="Code" type="tns:ErrorCodes" />
47
+ <s:element minOccurs="0" maxOccurs="1" name="Parameters" type="tns:ArrayOfString" />
48
+ </s:sequence>
49
+ </s:complexType>
50
+ <s:simpleType name="MessageType">
51
+ <s:restriction base="s:string">
52
+ <s:enumeration value="Error" />
53
+ <s:enumeration value="Warning" />
54
+ <s:enumeration value="Informational" />
55
+ </s:restriction>
56
+ </s:simpleType>
57
+ <s:simpleType name="ErrorCodes">
58
+ <s:restriction base="s:string">
59
+ <s:enumeration value="NoAccessToOffice" />
60
+ <s:enumeration value="OptionNotAllowed" />
61
+ <s:enumeration value="InvalidBooleanOptionValue" />
62
+ <s:enumeration value="InvalidIntegerOptionValue" />
63
+ <s:enumeration value="InvalidDecimalOptionValue" />
64
+ <s:enumeration value="InvalidEnumerationOptionValue" />
65
+ <s:enumeration value="OptionValueOutOfRange" />
66
+ <s:enumeration value="ParameterOutOfRange" />
67
+ <s:enumeration value="InvalidFinderType" />
68
+ <s:enumeration value="ParameterTooSmall" />
69
+ <s:enumeration value="OptionLevelMandatoryForSectionTeq" />
70
+ <s:enumeration value="OptionIcIncompatibleWithOptionHidden" />
71
+ <s:enumeration value="InvalidDateTimeOptionLength" />
72
+ <s:enumeration value="InvalidDateTimeOptionValue" />
73
+ <s:enumeration value="InvalidDateTimeOptionOutOfRange" />
74
+ <s:enumeration value="OptionMandatory" />
75
+ <s:enumeration value="AccessDenied" />
76
+ <s:enumeration value="DisableAccessRulesNotAllowed" />
77
+ <s:enumeration value="Option1MandatoryIfOption2IsUsed" />
78
+ </s:restriction>
79
+ </s:simpleType>
80
+ <s:complexType name="FinderData">
81
+ <s:sequence>
82
+ <s:element minOccurs="1" maxOccurs="1" name="TotalRows" type="s:int" />
83
+ <s:element minOccurs="0" maxOccurs="1" name="Columns" type="tns:ArrayOfString" />
84
+ <s:element minOccurs="0" maxOccurs="1" name="Items" type="tns:ArrayOfArrayOfString" />
85
+ </s:sequence>
86
+ </s:complexType>
87
+ <s:element name="Header" type="tns:Header" />
88
+ <s:complexType name="Header">
89
+ <s:sequence>
90
+ <s:element minOccurs="0" maxOccurs="1" name="SessionID" type="s:string" />
91
+ <s:element minOccurs="0" maxOccurs="1" name="AccessToken" type="s:string" />
92
+ <s:element minOccurs="0" maxOccurs="1" name="CompanyCode" type="s:string" />
93
+ <s:element minOccurs="1" maxOccurs="1" name="CompanyId" nillable="true" type="s1:guid" />
94
+ </s:sequence>
95
+ <s:anyAttribute />
96
+ </s:complexType>
97
+ </s:schema>
98
+ <s:schema elementFormDefault="qualified" targetNamespace="http://microsoft.com/wsdl/types/">
99
+ <s:simpleType name="guid">
100
+ <s:restriction base="s:string">
101
+ <s:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" />
102
+ </s:restriction>
103
+ </s:simpleType>
104
+ </s:schema>
105
+ </wsdl:types>
106
+ <wsdl:message name="SearchSoapIn">
107
+ <wsdl:part name="parameters" element="tns:Search" />
108
+ </wsdl:message>
109
+ <wsdl:message name="SearchSoapOut">
110
+ <wsdl:part name="parameters" element="tns:SearchResponse" />
111
+ </wsdl:message>
112
+ <wsdl:message name="SearchHeader">
113
+ <wsdl:part name="Header" element="tns:Header" />
114
+ </wsdl:message>
115
+ <wsdl:portType name="FinderSoap">
116
+ <wsdl:operation name="Search">
117
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Searches for different types of data based on the given finder type and search pattern.</wsdl:documentation>
118
+ <wsdl:input message="tns:SearchSoapIn" />
119
+ <wsdl:output message="tns:SearchSoapOut" />
120
+ </wsdl:operation>
121
+ </wsdl:portType>
122
+ <wsdl:binding name="FinderSoap" type="tns:FinderSoap">
123
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
124
+ <wsdl:operation name="Search">
125
+ <soap:operation soapAction="http://www.twinfield.com/Search" style="document" />
126
+ <wsdl:input>
127
+ <soap:body use="literal" />
128
+ <soap:header message="tns:SearchHeader" part="Header" use="literal" />
129
+ </wsdl:input>
130
+ <wsdl:output>
131
+ <soap:body use="literal" />
132
+ </wsdl:output>
133
+ </wsdl:operation>
134
+ </wsdl:binding>
135
+ <wsdl:binding name="FinderSoap12" type="tns:FinderSoap">
136
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
137
+ <wsdl:operation name="Search">
138
+ <soap12:operation soapAction="http://www.twinfield.com/Search" style="document" />
139
+ <wsdl:input>
140
+ <soap12:body use="literal" />
141
+ <soap12:header message="tns:SearchHeader" part="Header" use="literal" />
142
+ </wsdl:input>
143
+ <wsdl:output>
144
+ <soap12:body use="literal" />
145
+ </wsdl:output>
146
+ </wsdl:operation>
147
+ </wsdl:binding>
148
+ <wsdl:service name="Finder">
149
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Twinfield Finder web service methods.</wsdl:documentation>
150
+ <wsdl:port name="FinderSoap" binding="tns:FinderSoap">
151
+ <soap:address location="https://accounting2.twinfield.com/webservices/finder.asmx" />
152
+ </wsdl:port>
153
+ <wsdl:port name="FinderSoap12" binding="tns:FinderSoap12">
154
+ <soap12:address location="https://accounting2.twinfield.com/webservices/finder.asmx" />
155
+ </wsdl:port>
156
+ </wsdl:service>
157
+ </wsdl:definitions>