ruconomic 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +100 -0
- data/Rakefile +2 -0
- data/lib/ruconomic/api/account.rb +520 -0
- data/lib/ruconomic/api/accounting_period.rb +113 -0
- data/lib/ruconomic/api/accounting_year.rb +161 -0
- data/lib/ruconomic/api/activity.rb +90 -0
- data/lib/ruconomic/api/bank_payment_type.rb +103 -0
- data/lib/ruconomic/api/budget_figure.rb +343 -0
- data/lib/ruconomic/api/cash_book.rb +232 -0
- data/lib/ruconomic/api/cash_book_entry.rb +716 -0
- data/lib/ruconomic/api/company.rb +294 -0
- data/lib/ruconomic/api/cost_type.rb +138 -0
- data/lib/ruconomic/api/cost_type_group.rb +115 -0
- data/lib/ruconomic/api/creditor.rb +688 -0
- data/lib/ruconomic/api/creditor_contact.rb +269 -0
- data/lib/ruconomic/api/creditor_entry.rb +235 -0
- data/lib/ruconomic/api/creditor_group.rb +208 -0
- data/lib/ruconomic/api/currency.rb +67 -0
- data/lib/ruconomic/api/current_invoice.rb +1110 -0
- data/lib/ruconomic/api/current_invoice_line.rb +440 -0
- data/lib/ruconomic/api/current_supplier_invoice.rb +115 -0
- data/lib/ruconomic/api/current_supplier_invoice_line.rb +92 -0
- data/lib/ruconomic/api/debtor.rb +978 -0
- data/lib/ruconomic/api/debtor_contact.rb +328 -0
- data/lib/ruconomic/api/debtor_entry.rb +223 -0
- data/lib/ruconomic/api/debtor_group.rb +232 -0
- data/lib/ruconomic/api/delivery_location.rb +341 -0
- data/lib/ruconomic/api/department.rb +197 -0
- data/lib/ruconomic/api/distribution_key.rb +187 -0
- data/lib/ruconomic/api/document_archive_category.rb +163 -0
- data/lib/ruconomic/api/employee.rb +421 -0
- data/lib/ruconomic/api/employee_group.rb +199 -0
- data/lib/ruconomic/api/entry.rb +318 -0
- data/lib/ruconomic/api/extended_vat_zone.rb +79 -0
- data/lib/ruconomic/api/inventory_location.rb +91 -0
- data/lib/ruconomic/api/invoice.rb +655 -0
- data/lib/ruconomic/api/invoice_line.rb +248 -0
- data/lib/ruconomic/api/key_figure_code.rb +103 -0
- data/lib/ruconomic/api/mileage_entry.rb +319 -0
- data/lib/ruconomic/api/order.rb +1169 -0
- data/lib/ruconomic/api/order_line.rb +451 -0
- data/lib/ruconomic/api/price_group.rb +200 -0
- data/lib/ruconomic/api/product.rb +533 -0
- data/lib/ruconomic/api/product_group.rb +271 -0
- data/lib/ruconomic/api/product_price.rb +164 -0
- data/lib/ruconomic/api/project.rb +449 -0
- data/lib/ruconomic/api/project_group.rb +113 -0
- data/lib/ruconomic/api/quotation.rb +1145 -0
- data/lib/ruconomic/api/quotation_line.rb +451 -0
- data/lib/ruconomic/api/report_code.rb +78 -0
- data/lib/ruconomic/api/report_code_set.rb +89 -0
- data/lib/ruconomic/api/scanned_document.rb +175 -0
- data/lib/ruconomic/api/subscriber.rb +475 -0
- data/lib/ruconomic/api/subscription.rb +375 -0
- data/lib/ruconomic/api/subscription_line.rb +307 -0
- data/lib/ruconomic/api/sum_interval.rb +164 -0
- data/lib/ruconomic/api/template_collection.rb +78 -0
- data/lib/ruconomic/api/term_of_payment.rb +307 -0
- data/lib/ruconomic/api/time_entry.rb +258 -0
- data/lib/ruconomic/api/unit.rb +187 -0
- data/lib/ruconomic/api/vat_account.rb +151 -0
- data/lib/ruconomic/api.rb +79 -0
- data/lib/ruconomic/fault.rb +17 -0
- data/lib/ruconomic/soap/document.rb +79 -0
- data/lib/ruconomic/soap/node.rb +24 -0
- data/lib/ruconomic/soap.rb +7 -0
- data/lib/ruconomic/version.rb +3 -0
- data/lib/ruconomic/web_service.rb +50 -0
- data/lib/ruconomic.rb +42 -0
- data/ruconomic.gemspec +27 -0
- metadata +202 -0
@@ -0,0 +1,187 @@
|
|
1
|
+
module Ruconomic
|
2
|
+
module API
|
3
|
+
module Unit
|
4
|
+
extend Ruconomic::WebService
|
5
|
+
|
6
|
+
# Creates a new unit from a data object.
|
7
|
+
# Parameters: data: The data object that specifies the properties of the new unit.
|
8
|
+
#
|
9
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
10
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_CreateFromData
|
11
|
+
# @return [Hash] The body content of the SOAP response.
|
12
|
+
def self.create_from_data
|
13
|
+
response = invoke('Unit_CreateFromData') do |message|
|
14
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# Creates new units from data objects.
|
19
|
+
# Parameters: dataArray: The array of data objects that specifies the properties of the new units.
|
20
|
+
#
|
21
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
22
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_CreateFromDataArray
|
23
|
+
# @return [Hash] The body content of the SOAP response.
|
24
|
+
def self.create_from_data_array
|
25
|
+
response = invoke('Unit_CreateFromDataArray') do |message|
|
26
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Update units from data objects.
|
31
|
+
# Parameters: dataArray: The array of data objects.
|
32
|
+
#
|
33
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
34
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_UpdateFromDataArray
|
35
|
+
# @return [Hash] The body content of the SOAP response.
|
36
|
+
def self.update_from_data_array
|
37
|
+
response = invoke('Unit_UpdateFromDataArray') do |message|
|
38
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# Updates a unit from a data object.
|
43
|
+
# Parameters: data: The data object.
|
44
|
+
#
|
45
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
46
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_UpdateFromData
|
47
|
+
# @return [Hash] The body content of the SOAP response.
|
48
|
+
def self.update_from_data
|
49
|
+
response = invoke('Unit_UpdateFromData') do |message|
|
50
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Returns an unit data object for a given unit.
|
55
|
+
# Parameters: entityHandle: A handle for the unit.
|
56
|
+
#
|
57
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
58
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_GetData
|
59
|
+
# @return [Hash] The body content of the SOAP response.
|
60
|
+
def self.get_data
|
61
|
+
response = invoke('Unit_GetData') do |message|
|
62
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# Returns unit data objects for a given set of unit handles.
|
67
|
+
# Parameters: entityHandles: An array of the unit handles.
|
68
|
+
#
|
69
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
70
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_GetDataArray
|
71
|
+
# @return [Hash] The body content of the SOAP response.
|
72
|
+
def self.get_data_array
|
73
|
+
response = invoke('Unit_GetDataArray') do |message|
|
74
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# Creates a new unit.
|
79
|
+
# Parameters: name: The name of the new unit.
|
80
|
+
#
|
81
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
82
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_Create
|
83
|
+
# @return [Hash] The body content of the SOAP response.
|
84
|
+
def self.create
|
85
|
+
response = invoke('Unit_Create') do |message|
|
86
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# Returns handles for all units.
|
91
|
+
#
|
92
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
93
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_GetAll
|
94
|
+
# @return [Hash] The body content of the SOAP response.
|
95
|
+
def self.get_all
|
96
|
+
response = invoke('Unit_GetAll') do |message|
|
97
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# Returns handles for units with a given name.
|
102
|
+
# Parameters: name: The name to search for.
|
103
|
+
#
|
104
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
105
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_FindByName
|
106
|
+
# @return [Hash] The body content of the SOAP response.
|
107
|
+
def self.find_by_name
|
108
|
+
response = invoke('Unit_FindByName') do |message|
|
109
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
# Returns a handle for the unit with a given number.
|
114
|
+
# Parameters: number: The number to search for.
|
115
|
+
#
|
116
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
117
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_FindByNumber
|
118
|
+
# @return [Hash] The body content of the SOAP response.
|
119
|
+
def self.find_by_number
|
120
|
+
response = invoke('Unit_FindByNumber') do |message|
|
121
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
# Returns an array with handles for the untis corresponding to the given unit numbers. If a unit with a given number does not exist then the array contains nothing at that index.
|
126
|
+
# Parameters: numbers: The numbers to search for.
|
127
|
+
#
|
128
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
129
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_FindByNumberList
|
130
|
+
# @return [Hash] The body content of the SOAP response.
|
131
|
+
def self.find_by_number_list
|
132
|
+
response = invoke('Unit_FindByNumberList') do |message|
|
133
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
# Deletes a unit.
|
138
|
+
# Parameters: unitHandle: Handle for the unit.
|
139
|
+
#
|
140
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
141
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_Delete
|
142
|
+
# @return [Hash] The body content of the SOAP response.
|
143
|
+
def self.delete
|
144
|
+
response = invoke('Unit_Delete') do |message|
|
145
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
# Gets the number of a unit.
|
150
|
+
# Parameters: unitHandle: Handle for the unit.
|
151
|
+
#
|
152
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
153
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_GetNumber
|
154
|
+
# @return [Hash] The body content of the SOAP response.
|
155
|
+
def self.get_number
|
156
|
+
response = invoke('Unit_GetNumber') do |message|
|
157
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
# Gets the name of a unit.
|
162
|
+
# Parameters: unitHandle: Handle for the unit.
|
163
|
+
#
|
164
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
165
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_GetName
|
166
|
+
# @return [Hash] The body content of the SOAP response.
|
167
|
+
def self.get_name
|
168
|
+
response = invoke('Unit_GetName') do |message|
|
169
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
# Sets the name of a unit.
|
174
|
+
# Parameters: unitHandle: Handle for the unit. value: The new name of the unit.
|
175
|
+
#
|
176
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
177
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Unit_SetName
|
178
|
+
# @return [Hash] The body content of the SOAP response.
|
179
|
+
def self.set_name
|
180
|
+
response = invoke('Unit_SetName') do |message|
|
181
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
end
|
186
|
+
end
|
187
|
+
end
|
@@ -0,0 +1,151 @@
|
|
1
|
+
module Ruconomic
|
2
|
+
module API
|
3
|
+
module VatAccount
|
4
|
+
extend Ruconomic::WebService
|
5
|
+
|
6
|
+
# Update VAT accounts from data objects.
|
7
|
+
# Parameters: dataArray: The array of data objects.
|
8
|
+
#
|
9
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
10
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_UpdateFromDataArray
|
11
|
+
# @return [Hash] The body content of the SOAP response.
|
12
|
+
def self.update_from_data_array
|
13
|
+
response = invoke('VatAccount_UpdateFromDataArray') do |message|
|
14
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# Updates a VAT account from a data object.
|
19
|
+
# Parameters: data: The data object.
|
20
|
+
#
|
21
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
22
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_UpdateFromData
|
23
|
+
# @return [Hash] The body content of the SOAP response.
|
24
|
+
def self.update_from_data
|
25
|
+
response = invoke('VatAccount_UpdateFromData') do |message|
|
26
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Returns an VAT account data object for a given VAT account.
|
31
|
+
# Parameters: entityHandle: A handle for the VAT account.
|
32
|
+
#
|
33
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
34
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_GetData
|
35
|
+
# @return [Hash] The body content of the SOAP response.
|
36
|
+
def self.get_data
|
37
|
+
response = invoke('VatAccount_GetData') do |message|
|
38
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# Returns VAT account data objects for a given set of VAT account handles.
|
43
|
+
# Parameters: entityHandles: An array of the VAT account handles.
|
44
|
+
#
|
45
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
46
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_GetDataArray
|
47
|
+
# @return [Hash] The body content of the SOAP response.
|
48
|
+
def self.get_data_array
|
49
|
+
response = invoke('VatAccount_GetDataArray') do |message|
|
50
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Returns handles for all VAT accounts.
|
55
|
+
#
|
56
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
57
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_GetAll
|
58
|
+
# @return [Hash] The body content of the SOAP response.
|
59
|
+
def self.get_all
|
60
|
+
response = invoke('VatAccount_GetAll') do |message|
|
61
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Returns handle for the VAT account with a given VAT code.
|
66
|
+
# Parameters: vatCode: The VAT code to search for.
|
67
|
+
#
|
68
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
69
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_FindByVatCode
|
70
|
+
# @return [Hash] The body content of the SOAP response.
|
71
|
+
def self.find_by_vat_code
|
72
|
+
response = invoke('VatAccount_FindByVatCode') do |message|
|
73
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
# Gets the VAT code of a VAT account.
|
78
|
+
# Parameters: vatAccountHandle: Handle for the VAT account.
|
79
|
+
#
|
80
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
81
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_GetVatCode
|
82
|
+
# @return [Hash] The body content of the SOAP response.
|
83
|
+
def self.get_vat_code
|
84
|
+
response = invoke('VatAccount_GetVatCode') do |message|
|
85
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
# Gets the name of a VAT account.
|
90
|
+
# Parameters: vatAccountHandle: Handle for the VAT account.
|
91
|
+
#
|
92
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
93
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_GetName
|
94
|
+
# @return [Hash] The body content of the SOAP response.
|
95
|
+
def self.get_name
|
96
|
+
response = invoke('VatAccount_GetName') do |message|
|
97
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# Gets the type of a VAT account.
|
102
|
+
# Parameters: vatAccountHandle: Handle for the VAT account.
|
103
|
+
#
|
104
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
105
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_GetType
|
106
|
+
# @return [Hash] The body content of the SOAP response.
|
107
|
+
def self.get_type
|
108
|
+
response = invoke('VatAccount_GetType') do |message|
|
109
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
# Gets the rate of a VAT account.
|
114
|
+
# Parameters: vatAccountHandle: Handle for the VAT account.
|
115
|
+
#
|
116
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
117
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_GetRateAsPercent
|
118
|
+
# @return [Hash] The body content of the SOAP response.
|
119
|
+
def self.get_rate_as_percent
|
120
|
+
response = invoke('VatAccount_GetRateAsPercent') do |message|
|
121
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
# Gets the account of a VAT account.
|
126
|
+
# Parameters: vatAccountHandle: Handle for the VAT account.
|
127
|
+
#
|
128
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
129
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_GetAccount
|
130
|
+
# @return [Hash] The body content of the SOAP response.
|
131
|
+
def self.get_account
|
132
|
+
response = invoke('VatAccount_GetAccount') do |message|
|
133
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
# Gets the contra account of a VAT account.
|
138
|
+
# Parameters: vatAccountHandle: Handle for the VAT account.
|
139
|
+
#
|
140
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
141
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=VatAccount_GetContraAccount
|
142
|
+
# @return [Hash] The body content of the SOAP response.
|
143
|
+
def self.get_contra_account
|
144
|
+
response = invoke('VatAccount_GetContraAccount') do |message|
|
145
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
module Ruconomic
|
2
|
+
module API
|
3
|
+
extend Ruconomic::WebService
|
4
|
+
|
5
|
+
# Connects to the server.
|
6
|
+
#
|
7
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Connect
|
8
|
+
# @param agreement [String] The agreement number for the subscription.
|
9
|
+
# @param username [String] The user name of the subscription.
|
10
|
+
# @param password [String] The password for the user name.
|
11
|
+
# @return [String] The token for this connection
|
12
|
+
def self.connect(agreement, username, password)
|
13
|
+
response = invoke('Connect') do |message|
|
14
|
+
message.add 'agreementNumber', agreement
|
15
|
+
message.add 'userName', username
|
16
|
+
message.add 'password', password
|
17
|
+
end
|
18
|
+
|
19
|
+
response.find('//dns:ConnectResult/text()').first.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
# Connects to the server.
|
23
|
+
# Parameters: agreementNumber: The agreement number for the subscription. userName: The user name of the subscription. password: The password for the user name.
|
24
|
+
#
|
25
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
26
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=ConnectAsAdministrator
|
27
|
+
# @return [Hash] The body content of the SOAP response.
|
28
|
+
def self.connect_as_administrator
|
29
|
+
response = invoke('ConnectAsAdministrator') do |message|
|
30
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Connects to the server.
|
35
|
+
# Parameters: agreementNumber: The agreement number for the subscription. userName: The user name of the subscription. password: The password for the user name. customerNumber: the internal adminCustomerNumber
|
36
|
+
#
|
37
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
38
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=ConnectAsAdministratorWithCustomerNumber
|
39
|
+
# @return [Hash] The body content of the SOAP response.
|
40
|
+
def self.connect_as_administrator_with_customer_number
|
41
|
+
response = invoke('ConnectAsAdministratorWithCustomerNumber') do |message|
|
42
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Connects to the server.
|
47
|
+
# Parameters: token: The access token provided.
|
48
|
+
#
|
49
|
+
# @note TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
50
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=ConnectWithToken
|
51
|
+
# @return [Hash] The body content of the SOAP response.
|
52
|
+
def self.connect_with_token
|
53
|
+
response = invoke('ConnectWithToken') do |message|
|
54
|
+
raise "TODO: This method was autogenerated from the WSDL - see https://github.com/ta/e-conomic#contributing"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Disconnects from the server.
|
59
|
+
#
|
60
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=Disconnect
|
61
|
+
# @return [String] The result of the disconnect operation
|
62
|
+
def self.disconnect
|
63
|
+
response = invoke('Disconnect')
|
64
|
+
|
65
|
+
response.find('//dns:DisconnectResult/text()').first.to_s
|
66
|
+
end
|
67
|
+
|
68
|
+
# Gets information about the e-conomic API.
|
69
|
+
#
|
70
|
+
# @see https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=GetApiInformation
|
71
|
+
# @return [String] The API version
|
72
|
+
def self.get_api_information
|
73
|
+
response = invoke('GetApiInformation')
|
74
|
+
|
75
|
+
response.find('//dns:GetApiInformationResult/text()').first.to_s
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Ruconomic
|
2
|
+
class Fault < StandardError
|
3
|
+
attr_reader :code, :reason, :details
|
4
|
+
|
5
|
+
def initialize(code, reason, details)
|
6
|
+
super(reason)
|
7
|
+
@code = code
|
8
|
+
@reason = reason
|
9
|
+
@details = details
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_s
|
13
|
+
"Ruconomic::Fault { :code => '#{@code}', :reason => '#{@reason}', :details => '#{@details}' }"
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require "libxml"
|
2
|
+
require "ruconomic/soap/node"
|
3
|
+
|
4
|
+
module Ruconomic
|
5
|
+
module SOAP
|
6
|
+
class Document < LibXML::XML::Document
|
7
|
+
|
8
|
+
def initialize(xml_version = "1.0")
|
9
|
+
super(xml_version)
|
10
|
+
self.root = envelope = Ruconomic::SOAP::Node.new("Envelope")
|
11
|
+
self.root << body = Ruconomic::SOAP::Node.new("Body")
|
12
|
+
LibXML::XML::Namespace.new(envelope, "xsd", "http://www.w3.org/2001/XMLSchema")
|
13
|
+
LibXML::XML::Namespace.new(envelope, "xsi", "http://www.w3.org/2001/XMLSchema-instance")
|
14
|
+
soap = LibXML::XML::Namespace.new(envelope, "soap", "http://schemas.xmlsoap.org/soap/envelope/")
|
15
|
+
envelope.namespaces.namespace = soap
|
16
|
+
body.namespaces.namespace = soap
|
17
|
+
end
|
18
|
+
|
19
|
+
def << node
|
20
|
+
self.root.first << node
|
21
|
+
end
|
22
|
+
|
23
|
+
# As suggested in http://stackoverflow.com/a/1231297 - not pretty, but encapsulated
|
24
|
+
def to_hash
|
25
|
+
LibXML::XML.default_load_external_dtd = false
|
26
|
+
LibXML::XML.default_pedantic_parser = true
|
27
|
+
h = { self.root.name.to_s.to_sym => traverse(self.root) }
|
28
|
+
|
29
|
+
h[:Envelope][:body]
|
30
|
+
end
|
31
|
+
|
32
|
+
# We want #string to return a Ruconomic::SOAP::Document
|
33
|
+
def self.string(value, options = {})
|
34
|
+
document = Ruconomic::SOAP::Document.new
|
35
|
+
document.root = document.import(super(value, options).root)
|
36
|
+
|
37
|
+
document
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def normalize_name(name)
|
43
|
+
name.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').gsub(/([a-z\d])([A-Z])/,'\1_\2').tr("-", "_").downcase.to_sym
|
44
|
+
end
|
45
|
+
|
46
|
+
# As suggested in http://stackoverflow.com/a/1231297 - not pretty, but encapsulated
|
47
|
+
def traverse(node)
|
48
|
+
if node.element?
|
49
|
+
if node.children?
|
50
|
+
result_hash = {}
|
51
|
+
node.each_child do |child|
|
52
|
+
result = traverse(child)
|
53
|
+
child_name = normalize_name(child.name)
|
54
|
+
if child.name == "text"
|
55
|
+
if !child.next? and !child.prev?
|
56
|
+
return result
|
57
|
+
end
|
58
|
+
elsif result_hash[child_name]
|
59
|
+
if result_hash[child_name].is_a?(Object::Array)
|
60
|
+
result_hash[child_name] << result
|
61
|
+
else
|
62
|
+
result_hash[child_name] = [result_hash[child_name]] << result
|
63
|
+
end
|
64
|
+
else
|
65
|
+
result_hash[child_name] = result
|
66
|
+
end
|
67
|
+
end
|
68
|
+
return result_hash
|
69
|
+
else
|
70
|
+
return nil
|
71
|
+
end # end if node.children?
|
72
|
+
else
|
73
|
+
return node.content.to_s
|
74
|
+
end # end if node.element?
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "libxml"
|
2
|
+
|
3
|
+
module Ruconomic
|
4
|
+
module SOAP
|
5
|
+
class Node < LibXML::XML::Node
|
6
|
+
|
7
|
+
def initialize(name, value = nil, namespace = nil, prefix = nil)
|
8
|
+
# add prefix to node if namespace (and prefix is given)
|
9
|
+
name = prefix + ':' + name if namespace != nil && prefix != nil
|
10
|
+
super(name, value)
|
11
|
+
# Add namespace (and prefix if given)
|
12
|
+
LibXML::XML::Namespace.new(self, prefix, namespace) if namespace
|
13
|
+
end
|
14
|
+
|
15
|
+
def add(name, value = nil, namespace = nil, prefix = nil)
|
16
|
+
self << node = Ruconomic::SOAP::Node.new(name, value, namespace, prefix)
|
17
|
+
yield node if block_given?
|
18
|
+
|
19
|
+
node
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require "curb"
|
2
|
+
require "ruconomic/fault"
|
3
|
+
require "ruconomic/soap"
|
4
|
+
|
5
|
+
module Ruconomic
|
6
|
+
module WebService
|
7
|
+
@@curl = nil
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def invoke(action, soapAction = nil, &block)
|
12
|
+
node = Ruconomic::SOAP::Node.new(action, nil, "http://e-conomic.com")
|
13
|
+
yield node if block_given?
|
14
|
+
document = Ruconomic::SOAP::Document.new
|
15
|
+
document << node
|
16
|
+
|
17
|
+
call(document.to_s(:indent => false), action)
|
18
|
+
end
|
19
|
+
|
20
|
+
def call(document, action)
|
21
|
+
@@curl ||= Curl::Easy.new(Ruconomic.url) do |c|
|
22
|
+
c.headers["Content-Type"] = "text/xml; charset=UTF-8"
|
23
|
+
c.timeout = Ruconomic.timeout
|
24
|
+
c.enable_cookies = true
|
25
|
+
if Ruconomic.follow_redirects
|
26
|
+
c.follow_location = true
|
27
|
+
c.max_redirects = Ruconomic.max_redirects
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
begin
|
32
|
+
@@curl.http_post(document)
|
33
|
+
response = Ruconomic::SOAP::Document.string(@@curl.body_str)
|
34
|
+
if @@curl.response_code != 200
|
35
|
+
h = response.to_hash || {}
|
36
|
+
fault = h[:fault]
|
37
|
+
raise Ruconomic::Fault.new(fault[:faultcode],fault[:faultstring],fault[:details]) if fault
|
38
|
+
end
|
39
|
+
LibXML::XML::Namespace.new(response.root, nil, "http://e-conomic.com")
|
40
|
+
response.root.namespaces.default_prefix = "dns"
|
41
|
+
rescue Curl::Err => e
|
42
|
+
@@curl = nil
|
43
|
+
raise
|
44
|
+
end
|
45
|
+
|
46
|
+
response
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
data/lib/ruconomic.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require "ruconomic/version"
|
2
|
+
require "ruconomic/fault"
|
3
|
+
require "ruconomic/web_service"
|
4
|
+
require "ruconomic/api"
|
5
|
+
|
6
|
+
module Ruconomic
|
7
|
+
|
8
|
+
URL = "https://www.e-conomic.com/secure/api1/EconomicWebService.asmx"
|
9
|
+
|
10
|
+
class << self
|
11
|
+
attr_accessor :agreement, :username, :password, :timeout, :follow_redirects, :max_redirects, :url
|
12
|
+
|
13
|
+
def configure &block
|
14
|
+
yield self if block_given?
|
15
|
+
end
|
16
|
+
|
17
|
+
def timeout
|
18
|
+
@timeout || 30
|
19
|
+
end
|
20
|
+
|
21
|
+
def follow_redirects
|
22
|
+
@follow_redirects || true
|
23
|
+
end
|
24
|
+
|
25
|
+
def max_redirects
|
26
|
+
@max_redirects || 2
|
27
|
+
end
|
28
|
+
|
29
|
+
def url
|
30
|
+
@url || Ruconomic::URL
|
31
|
+
end
|
32
|
+
|
33
|
+
def session(&block)
|
34
|
+
raise "Not configured" unless agreement && username && password && url
|
35
|
+
Ruconomic::API.connect(Ruconomic.agreement, Ruconomic.username, Ruconomic.password)
|
36
|
+
yield self::API if block_given?
|
37
|
+
ensure
|
38
|
+
Ruconomic::API.disconnect
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
data/ruconomic.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'ruconomic/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "ruconomic"
|
8
|
+
spec.version = Ruconomic::VERSION
|
9
|
+
spec.authors = ["Tonni Tølbøll Lund Aagesen"]
|
10
|
+
spec.email = ["tonni@toelboell-lund.dk"]
|
11
|
+
spec.summary = %q{Easy to use ruby wrapper for e-conomic.com's webservice}
|
12
|
+
spec.homepage = "https://github.com/ta/ruconomic"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_runtime_dependency "curb"
|
21
|
+
spec.add_runtime_dependency "libxml-ruby"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
24
|
+
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "minitest"
|
26
|
+
spec.add_development_dependency "yard"
|
27
|
+
end
|