Avatax_TaxService 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,10 @@
1
+ //TransactionId
2
+ //ResultCode
3
+ //Summary
4
+ //Details
5
+ //Helplink
6
+ //RefersTo
7
+ //Severity
8
+ //Source
9
+ //DocId
10
+ //AuditMessage
@@ -0,0 +1,10 @@
1
+ //TransactionId
2
+ //ResultCode
3
+ //Summary
4
+ //Details
5
+ //Helplink
6
+ //RefersTo
7
+ //Severity
8
+ //Source
9
+ //DocId
10
+ //AuditMessage
@@ -0,0 +1,74 @@
1
+ //TransactionId
2
+ //ResultCode
3
+ //Summary
4
+ //Details
5
+ //HelpLink
6
+ //RefersTo
7
+ //Severity
8
+ //Source
9
+ //GetTaxResult/DocId
10
+ //GetTaxResult/DocType
11
+ //GetTaxResult/DocCode
12
+ //GetTaxResult/DocDate
13
+ //GetTaxResult/DocStatus
14
+ //GetTaxResult/Reconciled
15
+ //GetTaxResult/Timestamp
16
+ //GetTaxResult/TotalAmount
17
+ //GetTaxResult/TotalDiscount
18
+ //GetTaxResult/TotalExemption
19
+ //GetTaxResult/TotalTaxable
20
+ //GetTaxResult/TotalTax
21
+ //GetTaxResult/TotalTaxCalculated
22
+ //GetTaxResult/HashCode
23
+ //TaxLine/No
24
+ //TaxLine/TaxCode
25
+ //TaxLine/Taxability
26
+ //TaxLine/BoundaryLevel
27
+ //TaxLine/Exemption
28
+ //TaxLine/Discount
29
+ //TaxLine/Taxable
30
+ //TaxLine/Rate
31
+ //TaxLine/Tax
32
+ //TaxLine/TaxCalculated
33
+ //TaxLine/TaxIncluded
34
+ //TaxDetail/Country
35
+ //TaxDetail/Region
36
+ //TaxDetail/JurisType
37
+ //TaxDetail/TaxType
38
+ //TaxDetail/Base
39
+ //TaxLine/Taxable
40
+ //TaxDetail/Rate
41
+ //TaxDetail/Tax
42
+ //TaxDetail/TaxCalculated
43
+ //TaxDetail/NonTaxable
44
+ //TaxDetail/Exemption
45
+ //TaxDetail/JurisName
46
+ //TaxDetail/TaxName
47
+ //TaxDetail/TaxAuthorityType
48
+ //TaxDetail/TaxGroup
49
+ //TaxDetail/RateType
50
+ //TaxDetail/StateAssignedNo
51
+ //TaxLine/ExemptCertId
52
+ //TaxLine/TaxDate
53
+ //TaxLine/ReportingDate
54
+ //TaxLine/AccountingMethod
55
+ //TaxAddress/Address
56
+ //TaxAddress/AddressCode
57
+ //TaxAddress/City
58
+ //TaxAddress/Country
59
+ //TaxAddress/PostalCode
60
+ //TaxAddress/Region
61
+ //TaxAddress/TaxRegionId
62
+ //TaxAddress/JurisCode
63
+ //TaxAddress/Latitude
64
+ //TaxAddress/Longitude
65
+ //TaxAddress/GeocodeType
66
+ //TaxAddress/ValidateStatus
67
+ //TaxAddress/DistanceToBoundary
68
+ //GetTaxResult/Locked
69
+ //GetTaxResult/AdjustmentReason
70
+ //GetTaxResult/AdjustmentDescription
71
+ //GetTaxResult/Version
72
+ //GetTaxResult/TaxDate
73
+ //GetTaxResult/TaxSummary
74
+ //GetTaxResult/VolatileTaxRates
@@ -0,0 +1,128 @@
1
+ //TransactionId
2
+ //ResultCode
3
+ //Summary
4
+ //Details
5
+ //HelpLink
6
+ //RefersTo
7
+ //Severity
8
+ //Source
9
+
10
+ //GetTaxRequest/CompanyCode
11
+ //GetTaxRequest/DocType
12
+ //GetTaxRequest/DocType
13
+ //GetTaxRequest/DocCode
14
+ //GetTaxRequest/DocDate
15
+ //GetTaxRequest/SalesPerson
16
+ //GetTaxRequest/CustomerCode
17
+ //GetTaxRequest/CustomerUsageType
18
+ //GetTaxRequest/Discount
19
+ //GetTaxRequest/PurchaseOrderNo
20
+ //GetTaxRequest/ExemptionNo
21
+ //GetTaxRequest/OriginCode
22
+ //GetTaxRequest/DestinationCode
23
+
24
+ //GetTaxRequest//AddressCode
25
+ //GetTaxRequest//Line1
26
+ //GetTaxRequest//Line2
27
+ //GetTaxRequest//Line3
28
+ //GetTaxRequest//City
29
+ //GetTaxRequest//Region
30
+ //GetTaxRequest//PostalCode
31
+ //GetTaxRequest//Country
32
+ //GetTaxRequest//TaxRegionId
33
+ //GetTaxRequest//Latitude
34
+ //GetTaxRequest//Longitude
35
+
36
+ //GetTaxRequest//No
37
+ //GetTaxRequest//OriginCode
38
+ //GetTaxRequest//DestinationCode
39
+ //GetTaxRequest//ItemCode
40
+ //GetTaxRequest//TaxCode
41
+ //GetTaxRequest//Qty
42
+ //GetTaxRequest//Amount
43
+ //GetTaxRequest//Discounted
44
+ //GetTaxRequest//RevAcct
45
+ //GetTaxRequest//Ref1
46
+ //GetTaxRequest//Ref2
47
+ //GetTaxRequest//ExemptionNo
48
+ //GetTaxRequest//CustomerUsageType
49
+ //GetTaxRequest//Description
50
+ //GetTaxRequest//TaxIncluded
51
+ //GetTaxRequest//BusinessIdentificationNo
52
+
53
+ //GetTaxRequest/DetailLevel
54
+ //GetTaxRequest/ReferenceCode
55
+ //GetTaxRequest/HashCode
56
+ //GetTaxRequest/LocationCode
57
+ //GetTaxRequest/Commit
58
+ //GetTaxRequest/BatchCode
59
+ //GetTaxRequest/CurrencyCode
60
+ //GetTaxRequest/ServiceMode
61
+ //GetTaxRequest/PaymentDate
62
+ //GetTaxRequest/ExchangeRate
63
+ //GetTaxRequest/ExchangeRateEffDate
64
+ //GetTaxRequest/PosLaneCode
65
+ //GetTaxRequest/BusinessIdentificationNo
66
+
67
+ //GetTaxResult/TransactionId
68
+ //GetTaxResult/ResultCode
69
+ //GetTaxResult/Summary
70
+ //GetTaxResult/Details
71
+ //GetTaxResult/HelpLink
72
+ //GetTaxResult/RefersTo
73
+ //GetTaxResult/Severity
74
+ //GetTaxResult/Source
75
+ //GetTaxResult/DocId
76
+ //GetTaxResult/DocType
77
+ //GetTaxResult/DocCode
78
+ //GetTaxResult/DocDate
79
+ //GetTaxResult/DocStatus
80
+ //GetTaxResult/Reconciled
81
+ //GetTaxResult/Timestamp
82
+ //GetTaxResult/TotalAmount
83
+ //GetTaxResult/TotalDiscount
84
+ //GetTaxResult/TotalExemption
85
+ //GetTaxResult/TotalTaxable
86
+ //GetTaxResult/TotalTax
87
+ //GetTaxResult/TotalTaxCalculated
88
+ //GetTaxResult/HashCode
89
+
90
+ //GetTaxResult//No
91
+ //GetTaxResult//TaxCode
92
+ //GetTaxResult//Taxability
93
+ //GetTaxResult//Exemption
94
+ //GetTaxResult//Discount
95
+ //GetTaxResult//Taxable
96
+ //GetTaxResult//Rate
97
+ //GetTaxResult//Tax
98
+ //GetTaxResult//TaxCalculated
99
+ //GetTaxResult//TaxIncluded
100
+ //GetTaxResult//ExemptCertId
101
+ //GetTaxResult//TaxDate
102
+ //GetTaxResult//ReportingDate
103
+ //GetTaxResult//AccountingMethod
104
+
105
+ //GetTaxResult//TaxDetail/Country
106
+ //GetTaxResult//TaxDetail/Region
107
+ //GetTaxResult//TaxDetail/JurisType
108
+ //GetTaxResult//TaxDetail/TaxType
109
+ //GetTaxResult//TaxDetail/Base
110
+ //GetTaxResult//TaxDetail/Taxable
111
+ //GetTaxResult//TaxDetail/Rate
112
+ //GetTaxResult//TaxDetail/Tax
113
+ //GetTaxResult//TaxDetail/TaxCalculated
114
+ //GetTaxResult//TaxDetail/NonTaxable
115
+ //GetTaxResult//TaxDetail/Exemption
116
+ //GetTaxResult//TaxDetail/JurisName
117
+ //GetTaxResult//TaxDetail/TaxName
118
+ //GetTaxResult//TaxDetail/TaxAuthorityType
119
+ //GetTaxResult//TaxDetail/TaxGroup
120
+ //GetTaxResult//TaxDetail/RateType
121
+ //GetTaxResult//TaxDetail/StateAssignedNo
122
+
123
+ //GetTaxResult/Locked
124
+ //GetTaxResult/AdjustmentReason
125
+ //GetTaxResult/AdjustmentDescription
126
+ //GetTaxResult/Version
127
+ //GetTaxResult/TaxDate
128
+ //GetTaxResult/VolatileTaxRates
@@ -0,0 +1,4 @@
1
+ //TransactionId
2
+ //ResultCode
3
+ //Operations
4
+ //Expires
@@ -0,0 +1,9 @@
1
+ //TransactionId
2
+ //ResultCode
3
+ //Summary
4
+ //Details
5
+ //Helplink
6
+ //RefersTo
7
+ //Severity
8
+ //Source
9
+ //Version
@@ -0,0 +1,9 @@
1
+ //TransactionId
2
+ //ResultCode
3
+ //Summary
4
+ //Details
5
+ //Helplink
6
+ //RefersTo
7
+ //Severity
8
+ //Source
9
+ //DocId
@@ -0,0 +1,31 @@
1
+ //TransactionId
2
+ //ResultCode
3
+ //Summary
4
+ //Details
5
+ //HelpLink
6
+ //RefersTo
7
+ //Severity
8
+ //Source
9
+ //GetTaxResult//DocId
10
+ //GetTaxResult//DocType
11
+ //GetTaxResult//DocCode
12
+ //GetTaxResult//DocDate
13
+ //GetTaxResult//DocStatus
14
+ //GetTaxResult//Reconciled
15
+ //GetTaxResult//Timestamp
16
+ //GetTaxResult//TotalAmount
17
+ //GetTaxResult//TotalDiscount
18
+ //GetTaxResult//TotalExemption
19
+ //GetTaxResult//TotalTaxable
20
+ //GetTaxResult//TotalTax
21
+ //GetTaxResult//TotalTaxCalculated
22
+ //GetTaxResult//HashCode
23
+ //GetTaxResult//Locked
24
+ //GetTaxResult//AdjustmentReason
25
+ //GetTaxResult//AdjustmentDescription
26
+ //GetTaxResult//Version
27
+ //GetTaxResult//TaxDate
28
+ //GetTaxResult//TaxSummary
29
+ //GetTaxResult//VolatileTaxRates
30
+ //LastDocId
31
+ //RecordCount
@@ -0,0 +1,116 @@
1
+ #Load the Avalara Address Service module
2
+ require 'avatax_taxservice'
3
+ #Load the Avalara Address Service module
4
+ require 'avatax_addressservice'
5
+
6
+ #Create an tax service instance
7
+ username = 'USERNAME' #Your user account number or name here
8
+ password = 'PASSWORD' #The password that was e-mailed to you here
9
+ name = 'Avalara Inc.'
10
+ clientname = 'MyShoppingCart'
11
+ adapter = 'Avatax SDK for Ruby 1.0.1'
12
+ machine = 'Lenovo W520 Windows 7'
13
+ TaxServ = AvaTax::TaxService.new(username,password,name,clientname,adapter,machine)
14
+
15
+ #Create an address service instance
16
+ AddrService = AvaTax::AddressService.new(username,password,name,clientname,adapter,machine)
17
+
18
+ adjustmentreason = "5"
19
+ adjustmentdescription = "Hey I adjusted the tax"
20
+ companycode = 'APITrialCompany'
21
+ doctype = "SalesInvoice"
22
+ doccode = "MyTest01"
23
+ docdate = "2013-10-11"
24
+ salespersoncode = "Bob Sales"
25
+ customercode = "CUS001"
26
+ customerusagetype = ""
27
+ discount = ".0000"
28
+ purchaseorderno = "PO999999"
29
+ exemptionno = ""
30
+ origincode = "123"
31
+ destinationcode = "456"
32
+ addresses = []
33
+ lines = []
34
+ detaillevel = "Tax"
35
+ referencecode = ""
36
+ hashcode = "0"
37
+ locationcode = ""
38
+ commit = "true"
39
+ batchcode = ""
40
+ taxoverridetype = "None"
41
+ taxamount = ".0000"
42
+ taxdate = "1900-01-01"
43
+ reason = ""
44
+ currencycode = "USD"
45
+ servicemode = "Remote"
46
+ paymentdate = "2013-09-26"
47
+ exchangerate = ".0000"
48
+ exchangerateeffdate = "1900-01-01"
49
+ poslanecode = ""
50
+ businessidentificationno = ""
51
+ debug = true
52
+ validate = false
53
+
54
+ addresses = [
55
+ ["123", "100 ravine lane", "", "","Bainbridge Island","WA","98110","US","0","",""],
56
+ ["456", "1S278 Wenmoth", "", "","Batavia","IL","60510","US","0","",""]
57
+ ]
58
+
59
+ lines = [["1","","","Canoe","","1","300","false","","ref1","ref2","","","Blue canoe","None",".0000","1900-01-01","","false",""],
60
+ ["2","","","Rowing boat","","1","800","false","","ref3","ref4","","","Red rowing boat","None",".0000","1900-01-01","","false",""]
61
+ ]
62
+
63
+ tax_result = {}
64
+ #Call the gettax service
65
+ tax_result = TaxServ.adjusttax(adjustmentreason,
66
+ adjustmentdescription,
67
+ companycode,
68
+ doctype,
69
+ doccode,
70
+ docdate,
71
+ salespersoncode,
72
+ customercode,
73
+ customerusagetype,
74
+ discount,
75
+ purchaseorderno,
76
+ exemptionno,
77
+ origincode,
78
+ destinationcode,
79
+ addresses,
80
+ lines,
81
+ detaillevel,
82
+ referencecode,
83
+ hashcode,
84
+ locationcode,
85
+ commit,
86
+ batchcode,
87
+ taxoverridetype,
88
+ taxamount,
89
+ taxdate,
90
+ reason,
91
+ currencycode,
92
+ servicemode,
93
+ paymentdate,
94
+ exchangerate,
95
+ exchangerateeffdate,
96
+ poslanecode,
97
+ businessidentificationno,
98
+ debug,
99
+ validate)
100
+
101
+ require 'pp'
102
+ pp tax_result
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
@@ -0,0 +1,191 @@
1
+ #Load the Avalara Address Service module
2
+ require 'avatax_taxservice'
3
+ #Load the Avalara Address Service module - optional
4
+ require 'avatax_addressservice'
5
+
6
+ #Create an tax service instance
7
+ username = 'USERNAME' #Your user account number or name here
8
+ password = 'PASSWORD' #The password that was e-mailed to you here
9
+ name = 'Avalara Inc.'
10
+ clientname = 'MyShoppingCart'
11
+ adapter = 'Avatax SDK for Ruby 1.0.1'
12
+ machine = 'Lenovo W520 Windows 7'
13
+ TaxServ = AvaTax::TaxService.new(username,password,name,clientname,adapter,machine)
14
+
15
+ #Create an address service instance - optional
16
+ AddrService = AvaTax::AddressService.new(username,password,name,clientname,adapter,machine)
17
+
18
+ #Populate the fields required by the GetTax call
19
+ companycode = 'API TrialCompany' #Same as the company code you set in the Admin console
20
+ doctype = "SalesInvoice" #The type of document you want to process
21
+ doccode = "MyDocCode" #Your doc code (e.g. invoice number)
22
+ docdate = "2013-10-11" #The date on the document
23
+ salespersoncode = "Bill Sales" #Optional sales person
24
+ customercode = "CUS001" #Customer code
25
+ customerusagetype = "" #Usage type
26
+ discount = ".0000" #Discount amount
27
+ purchaseorderno = "PO123456" #PO number
28
+ exemptionno = "" #Exemption number
29
+ origincode = "123" #Origin or ship from code - you make it up
30
+ destinationcode = "456" #Destination or ship to code - you make it up
31
+ #Pass addresses as an array
32
+ # <AddressCode>123</AddressCode>
33
+ # <Line1>100 Ravine Lane</Line1>
34
+ # <Line2/>
35
+ # <Line3/>
36
+ # <City>Bainbridge Island</City>
37
+ # <Region>WA</Region>
38
+ # <PostalCode>98110</PostalCode>
39
+ # <Country>US</Country>
40
+ # <TaxRegionId>0</TaxRegionId>
41
+ # <Latitude/>
42
+ # <Longitude/>
43
+ addresses = [
44
+ ["123", "100 ravine lane", "", "","Bainbridge Island","WA","98110","US","0","",""],
45
+ ["456", "7070 West Arlington Drive", "", "","Lakewood","CO","80123","US","0","",""]
46
+ ]
47
+ #Pass order/invoice lines as an array
48
+ # <No>1</No>
49
+ # <OriginCode></OriginCode>
50
+ # <DestinationCode></DestinationCode>
51
+ # <ItemCode>Canoe</ItemCode>
52
+ # <TaxCode></TaxCode>
53
+ # <Qty>1</Qty>
54
+ # <Amount>300</Amount>
55
+ # <Discounted>false</Discounted>
56
+ # <RevAcct></RevAcct>
57
+ # <Ref1>ref1</Ref1>
58
+ # <Ref2>ref2</Ref2>
59
+ # <ExemptionNo></ExemptionNo>
60
+ # <CustomerUsageType></CustomerUsageType>
61
+ # <Description>Blue canoe</Description>
62
+ # <TaxOverrideType>TaxAmount</TaxOverrideType>
63
+ # <TaxAmount>10</TaxAmount>
64
+ # <TaxDate>1900-01-01</TaxDate>
65
+ # <Reason>Tax Credit</Reason>
66
+ # <TaxIncluded>false</TaxIncluded>
67
+ # <BusinessIdentificationNo></BusinessIdentificationNo>
68
+ lines = [
69
+ ["1","","","Canoe","","1","300.43","false","","ref1","ref2","","","Blue canoe","TaxAmount","10","1900-01-01","Tax credit","false",""],
70
+ ["2","","","Rowing boat","","1","800.12","false","","ref3","ref4","","","Red rowing boat","None",".0000","1900-01-01","","false",""]
71
+ ]
72
+ detaillevel = "Tax" #The level of detail you want returned by the service
73
+ referencecode = "" #Reference code - used for returns
74
+ hashcode = "0" #Set to 0
75
+ locationcode = "" #Store Location, Outlet Id, or Outlet code.
76
+ commit = "false" #Invoice will be committed if this flag has been set to true.
77
+ batchcode = "" #Optional Batch Code
78
+ taxoverridetype = "None" #Type of TaxOverride
79
+ taxamount = ".0000" #The TaxAmount overrides the total tax for the document, if not 0
80
+ taxdate = "1900-01-01" #Tax Date is the date used to calculate tax
81
+ reason = "" #Reason for applying TaxOverride.
82
+ currencycode = "USD" #3 character ISO 4217 currency code (for example, USD)
83
+ servicemode = "Remote" #All lines are calculated by AvaTax remote server
84
+ paymentdate = "2013-09-26" #Indicates the date payment was applied to this invoice
85
+ exchangerate = ".0000" #Indicates the currency exchange rate
86
+ exchangerateeffdate = "1900-01-01" #Indicates the effective date of the exchange rate.
87
+ poslanecode = "" #Optional POS Lane Code
88
+ businessidentificationno = "" #Optional Business Identification Number
89
+ debug = false #Run in debug move - writes data to tax_log.txt
90
+ validate = false #Performs address validation before calculating tax - needs address service installed
91
+
92
+ #Create empty hash for the tax result details
93
+ tax_result = {}
94
+ tax_result = TaxServ.gettax(companycode,
95
+ doctype,
96
+ doccode,
97
+ docdate,
98
+ salespersoncode,
99
+ customercode,
100
+ customerusagetype,
101
+ discount,
102
+ purchaseorderno,
103
+ exemptionno,
104
+ origincode,
105
+ destinationcode,
106
+ addresses,
107
+ lines,
108
+ detaillevel,
109
+ referencecode,
110
+ hashcode,
111
+ locationcode,
112
+ commit,
113
+ batchcode,
114
+ taxoverridetype,
115
+ taxamount,
116
+ taxdate,
117
+ reason,
118
+ currencycode,
119
+ servicemode,
120
+ paymentdate,
121
+ exchangerate,
122
+ exchangerateeffdate,
123
+ poslanecode,
124
+ businessidentificationno,
125
+ debug,
126
+ validate)
127
+
128
+ #Print out the returned hash
129
+ require 'pp'
130
+ pp tax_result
131
+ puts
132
+
133
+ #Always check the result code
134
+ if tax_result[:ResultCode] = "Success" then
135
+ puts "The GetTax call was successful"
136
+ else
137
+ puts "The GetTax call failed"
138
+ end
139
+
140
+ puts
141
+ #Convert a hash value to Floating point
142
+ tt = tax_result[:GetTaxResultTotalTax].at(0).to_f
143
+ puts "Total tax = #{tt}"
144
+
145
+ #Use the size method to determine the no of entries associated with a symbol
146
+ puts tax_result[:TaxDetailTaxName].size
147
+
148
+ #Data elements begin at 0
149
+ puts tax_result[:TaxDetailTaxName][0]
150
+ puts tax_result[:TaxDetailTaxName][1]
151
+
152
+ tax_result[:TaxDetailJurisType].each do |type|
153
+ puts type
154
+ end
155
+
156
+ #Example of extracting the tax breakdown per line
157
+ no_of_lines = tax_result[:TaxLineNo].size
158
+ no_of_jurisdictions = tax_result[:TaxDetailCountry].size / no_of_lines
159
+ i = 0
160
+ while i < no_of_lines
161
+ puts
162
+ puts "Line = #{tax_result[:TaxLineNo][i]}"
163
+ j = 0
164
+ while j < no_of_jurisdictions
165
+ puts "Jurisdiction #{j+1} = #{tax_result[:TaxDetailJurisName][j]}"
166
+ puts "Tax name = #{tax_result[:TaxDetailTaxName][j]}"
167
+ puts "Taxable amount = #{tax_result[:TaxDetailBase][j]}"
168
+ puts "Tax rate = #{tax_result[:TaxDetailRate][j]}"
169
+ puts "Tax calculated = #{tax_result[:TaxDetailTaxCalculated][j]}"
170
+ puts
171
+ j += 1
172
+ end
173
+ i += 1
174
+ end
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+