Avatax_TaxService 1.0.13 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZGJiODRjYzA0ZmIwOTYwMDE3NDYyNzE3NGY3OTViMzA5Nzg2MzEzOQ==
4
+ YjAwNjNhNDYxNmY2NDk4MTIwNDNjOWU5NzNiZDk0OGY3ZTRmOWIzYQ==
5
5
  data.tar.gz: !binary |-
6
- MTZkM2MzODkzYmY2OTc3YjNiZWM3OGQzMzJmMTAyNjE3Y2YwYjQ4Nw==
6
+ NmIyODBhY2JiNGI4MDY1OTVkZjY2MGE3ZjJlZWU0OWYyZDVjZjE5Yw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NDMzNDc4YTE5OGZjNmNmYTY2NTI5NTk4ZTFhYWYzZTNiMGM2ODkwN2E1OTM1
10
- ZDQxZDJlZTY4MDVhYTM4Y2U5OTM1NjBkYzU0NzMyZDMzOGU5NmRhNWZlZjQy
11
- ZGVlMzkyZjM2ODNmMmE2ZTBmMmUwOGM1NGIzYjcyZTlkMDI5YzY=
9
+ NmVhOGFjNWI2NWU0NWJkOWYxOGZkYTUzZDMxMmY0N2IyOGMyZjk1ODRhN2U1
10
+ Y2YxZTI0NDE2NTJkMmVhZTI1ZGExYjY1ZjNlMDlhNDA1MTAxYTJlM2M2ODBm
11
+ YmEzMzhiMTQwMjFmMDExNTFkMWRhMDI5YzNkNTM3NWIwNjkxZGE=
12
12
  data.tar.gz: !binary |-
13
- NWJmMDcyZmRkN2FjNWIzMjI3MjVhNGJlYWE1NGU2NWQ2NmNjMTQ1OTdmMTUy
14
- NDBmYzRjNjk5Y2VkYjVhZjVkY2E5MTkyMWIxNjk3ODM5NWRiZTU0OWIxOTMw
15
- YTNhMzE5YTVhOTk0M2I1YWY5M2U2NzAwMjc5MTlhYWYwNGUzMTU=
13
+ NzA5ZmIxMjVmMzY3ODNiZTVlNDI0MTJjMGUxOTkwMjEzMGMxMzA5ZWY5ODI2
14
+ MTdjMDMyMWY4NjU5NTRkYWRiOGM4M2RlMmVkNzc3ZGExODM1MGRmYjUwMzNl
15
+ M2ZkZGI5NWRiZGIxZmMzNmI3MDBmMjNmOTEwNGRlOGNmYzk4YjY=
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "Avatax_TaxService"
3
- s.version = "1.0.13"
3
+ s.version = "1.0.14"
4
4
  s.date = "2012-10-28"
5
5
  s.author = "Graham S Wilson"
6
6
  s.email = "support@Avalara.com"
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
  "lib/template_adjusttax.erb", "lib/template_canceltax.erb", "lib/template_committax.erb","lib/template_gettax.erb",
13
13
  "lib/template_gettaxhistory.erb","lib/template_isauthorized.erb","lib/template_ping.erb","lib/template_posttax.erb",
14
14
  "lib/template_reconciletaxhistory.erb",
15
- "samples/CancelTax.rb","samples/credentials.yml","samples/GetTax.rb","samples/GetTaxHistory.rb","samples/Ping.rb","samples/PostTax.rb","samples/Validate.rb",
15
+ "samples/CancelTaxTest.rb","samples/GetTaxTest.rb","samples/GetTaxHistoryTest.rb","samples/PingTest.rb","samples/PostTaxTest.rb","samples/ValidateAddressTest.rb",
16
16
  "spec/adjusttax_spec.rb","spec/canceltax_spec.rb","spec/committax_spec.rb","spec/gettax_spec.rb",
17
17
  "spec/gettaxhistory_spec.rb","spec/isauthorized_spec.rb","spec/ping_spec.rb","spec/posttax_spec.rb","spec/reconciletaxhistory_spec.rb",
18
18
  "spec/spec_helper.rb","spec/taxservice_spec.rb","Avatax_TaxService.gemspec","Avatax Ruby SDK Guide.docx", "LICENSE.txt"]
@@ -0,0 +1,34 @@
1
+ require_relative '../Avatax_TaxService/lib/avatax_taxservice.rb'
2
+ #require 'Avatax_TaxService'
3
+
4
+ accountNumber = "1234567890"
5
+ licenseKey = "A1B2C3D4E5F6G7H8"
6
+ useProductionURL = false
7
+
8
+ # Header Level Parameters
9
+ taxSvc = AvaTax::TaxService.new(
10
+
11
+ # Required Header Parameters
12
+ :username => accountNumber,
13
+ :password => licenseKey,
14
+ :use_production_url => useProductionURL,
15
+ :clientname => "AvaTaxSample",
16
+
17
+ # Optional Header Parameters
18
+ :name => "Development")
19
+
20
+ cancelTaxRequest = {
21
+ # Required Request Parameters
22
+ :companycode => "APITrialCompany",
23
+ :doctype => "SalesInvoice",
24
+ :doccode => "INV001",
25
+ :cancelcode => "DocVoided"
26
+ }
27
+
28
+ cancelTaxResult = taxSvc.canceltax(cancelTaxRequest)
29
+
30
+ # Print Results
31
+ puts "CancelTaxTest ResultCode: "+cancelTaxResult[:result_code]
32
+ if cancelTaxResult[:result_code] != "Success"
33
+ cancelTaxResult[:messages].each { |message| puts message[:details] }
34
+ end
@@ -0,0 +1,45 @@
1
+ require_relative '../Avatax_TaxService/lib/avatax_taxservice.rb'
2
+ #require 'Avatax_TaxService'
3
+
4
+ accountNumber = "1234567890"
5
+ licenseKey = "A1B2C3D4E5F6G7H8"
6
+ useProductionURL = false
7
+
8
+ # Header Level Parameters
9
+ taxSvc = AvaTax::TaxService.new(
10
+
11
+ # Required Header Parameters
12
+ :username => accountNumber,
13
+ :password => licenseKey,
14
+ :use_production_url => useProductionURL,
15
+ :clientname => "AvaTaxSample",
16
+
17
+ # Optional Header Parameters
18
+ :name => "Development")
19
+
20
+ getTaxHistoryRequest = {
21
+ # Required Request Parameters
22
+ :companycode => "APITrialCompany",
23
+ :doctype => "SalesInvoice",
24
+ :doccode => "INV001",
25
+
26
+ # Optional Request Parameters
27
+ :detaillevel=>"Tax"
28
+ }
29
+
30
+ getTaxHistoryResult = taxSvc.gettaxhistory(getTaxHistoryRequest)
31
+
32
+ # Print Results
33
+ puts "GetTaxHistoryTest ResultCode: " + getTaxHistoryResult[:result_code]
34
+ if getTaxHistoryResult[:result_code] != "Success"
35
+ getTaxHistoryResult[:messages].each { |message| puts message[:details] }
36
+ else
37
+ puts "Document Code: " + getTaxHistoryResult[:get_tax_result][:doc_code] +
38
+ " Total Tax: " + getTaxHistoryResult[:get_tax_result][:total_tax].to_s
39
+ getTaxHistoryResult[:get_tax_result][:tax_lines][:tax_line].each do |taxLine|
40
+ puts " " + "Line Number: " + taxLine[:no] + " Line Tax: " + taxLine[:tax].to_s
41
+ taxLine[:tax_details][:tax_detail].each do |taxDetail|
42
+ puts " " + "Jurisdiction: " + taxDetail[:juris_name] + " Tax: " + taxDetail[:tax].to_s
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,149 @@
1
+ require_relative '../Avatax_TaxService/lib/avatax_taxservice.rb'
2
+ #require 'Avatax_TaxService'
3
+
4
+ accountNumber = "1234567890"
5
+ licenseKey = "A1B2C3D4E5F6G7H8"
6
+ useProductionURL = false
7
+
8
+ # Header Level Parameters
9
+ taxSvc = AvaTax::TaxService.new(
10
+
11
+ # Required Header Parameters
12
+ :username => accountNumber,
13
+ :password => licenseKey,
14
+ :use_production_url => useProductionURL,
15
+ :clientname => "AvaTaxSample",
16
+
17
+ # Optional Header Parameters
18
+ :name => "Development")
19
+
20
+ getTaxRequest = {
21
+ # Document Level Parameters
22
+ # Required Request Parameters
23
+ :customercode => "ABC4335",
24
+ :docdate => "2014-01-01",
25
+
26
+ # Best Practice Request Parameters
27
+ :companycode => "APITrialCompany",
28
+ :doccode => "INV001",
29
+ :detaillevel => "Tax",
30
+ :commit => false,
31
+ :doctype => "SalesInvoice",
32
+
33
+ # Situational Request Parameters
34
+ # :businessidentificationno => "234243",
35
+ # :customerusagetype => "G",
36
+ # :exemptionno => "12345",
37
+ # :discount => 50,
38
+ # :locationcode => "01",
39
+ # :taxoverridetype => "TaxDate",
40
+ # :reason => "Adjustment for return",
41
+ # :taxdate => "2013-07-01",
42
+ # :taxamount => "0",
43
+ # :servicemode => "Automatic",
44
+
45
+ # Optional Request Parameters
46
+ :purchaseorderno => "PO123456",
47
+ :referencecode => "ref123456",
48
+ :poslanecode => "09",
49
+ :currencycode => "USD",
50
+ :exchangerate => "1.0",
51
+ :exchangerateeffdate => "2013-01-01",
52
+ :salespersoncode => "Bill Sales",
53
+
54
+ # Address Data
55
+ :addresses =>
56
+ [
57
+ {
58
+ :addresscode => "01",
59
+ :line1 => "45 Fremont Street",
60
+ :city => "San Francisco",
61
+ :region => "CA",
62
+ },
63
+ {
64
+ :addresscode => "02",
65
+ :line1 => "118 N Clark St",
66
+ :line2 => "Suite 100",
67
+ :line3 => "ATTN Accounts Payable",
68
+ :city => "Chicago",
69
+ :region => "IL",
70
+ :country => "US",
71
+ :postalcode => "60602",
72
+ },
73
+ {
74
+ :addresscode => "03",
75
+ :latitude => "47.627935",
76
+ :longitude => "-122.51702",
77
+ }
78
+ ],
79
+
80
+ # Line Data
81
+ :lines =>
82
+ [
83
+ {
84
+
85
+ # Required Parameters
86
+ :no => "01",
87
+ :itemcode => "N543",
88
+ :qty => 1,
89
+ :amount => 10,
90
+ :origincode => "01",
91
+ :destinationcode => "02",
92
+
93
+ # Best Practice Request Parameters
94
+ :description => "Red Size 7 Widget",
95
+ :taxcode => "NT",
96
+
97
+ # Situational Request Parameters
98
+ # :customerusagetype => "L",
99
+ # :exemptionno => "12345",
100
+ # :discounted => true,
101
+ # :taxincluded => true,
102
+ # :taxoverridetypeline => "TaxDate",
103
+ # :reasonline => "Adjustment for return",
104
+ # :taxdateline => "2013-07-01",
105
+ # :taxamountline => "0",
106
+
107
+ # Optional Request Parameters
108
+ :ref1 => "ref123",
109
+ :ref2 => "ref456",
110
+ },
111
+ {
112
+ :no => "02",
113
+ :itemcode => "T345",
114
+ :qty => 3,
115
+ :amount => 150,
116
+ :origincode => "01",
117
+ :destinationcode => "03",
118
+ :description => "Size 10 Green Running Shoe",
119
+ :taxcode => "PC030147",
120
+ },
121
+ {
122
+ :no => "02-FR",
123
+ :itemcode => "FREIGHT",
124
+ :qty => 1,
125
+ :amount => 15,
126
+ :origincode => "01",
127
+ :destinationcode => "03",
128
+ :description => "Shipping Charge",
129
+ :taxcode => "FR",
130
+ }
131
+ ]
132
+ }
133
+
134
+ getTaxResult = taxSvc.gettax(getTaxRequest)
135
+
136
+ # Print Results
137
+ puts "GetTaxTest ResultCode: " + getTaxResult[:result_code]
138
+ if getTaxResult[:result_code] != "Success"
139
+ getTaxResult[:messages].each { |message| puts message[:details] }
140
+ else
141
+ puts "Document Code: " + getTaxResult[:doc_code] +
142
+ " Total Tax: " + getTaxResult[:total_tax].to_s
143
+ getTaxResult[:tax_lines][:tax_line].each do |taxLine|
144
+ puts " " + "Line Number: " + taxLine[:no] + " Line Tax: " + taxLine[:tax].to_s
145
+ taxLine[:tax_details][:tax_detail].each do |taxDetail|
146
+ puts " " + "Jurisdiction: " + taxDetail[:juris_name] + " Tax: " + taxDetail[:tax].to_s
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,26 @@
1
+ require_relative '../Avatax_TaxService/lib/avatax_taxservice.rb'
2
+ #require 'Avatax_TaxService'
3
+
4
+ accountNumber = "1234567890"
5
+ licenseKey = "A1B2C3D4E5F6G7H8"
6
+ useProductionURL = false
7
+
8
+ # Header Level Parameters
9
+ taxSvc = AvaTax::TaxService.new(
10
+
11
+ # Required Header Parameters
12
+ :username => accountNumber,
13
+ :password => licenseKey,
14
+ :use_production_url => useProductionURL,
15
+ :clientname => "AvaTaxSample",
16
+
17
+ # Optional Header Parameters
18
+ :name => "Development")
19
+
20
+ pingResult = taxSvc.ping
21
+
22
+ #Display the result
23
+ puts "PingTest ResultCode: " + pingResult[:result_code]
24
+ if pingResult[:result_code] != "Success"
25
+ pingResult[:messages].each { |message| puts message[:details] }
26
+ end
@@ -0,0 +1,40 @@
1
+ require_relative '../Avatax_TaxService/lib/avatax_taxservice.rb'
2
+ #require 'Avatax_TaxService'
3
+
4
+ accountNumber = "1234567890"
5
+ licenseKey = "A1B2C3D4E5F6G7H8"
6
+ useProductionURL = false
7
+
8
+ # Header Level Parameters
9
+ taxSvc = AvaTax::TaxService.new(
10
+
11
+ # Required Header Parameters
12
+ :username => accountNumber,
13
+ :password => licenseKey,
14
+ :use_production_url => useProductionURL,
15
+ :clientname => "AvaTaxSample",
16
+
17
+ # Optional Header Parameters
18
+ :name => "Development")
19
+
20
+ postTaxRequest = {
21
+ # Required Request Parameters
22
+ :companycode => "APITrialCompany",
23
+ :doctype => "SalesInvoice",
24
+ :doccode => "INV001",
25
+ :commit => "false",
26
+ :docdate => "2014-01-01",
27
+ :totaltax => "34.07",
28
+ :totalamount => "170",
29
+
30
+ # Optional Request Parameters
31
+ :newdoccode => "INV001-1"
32
+ }
33
+
34
+ postTaxResult = taxSvc.posttax(postTaxRequest)
35
+
36
+ # Print Results
37
+ puts "PostTaxTest ResultCode: " + postTaxResult[:result_code]
38
+ if postTaxResult[:result_code] != "Success"
39
+ postTaxResult[:messages].each { |message| puts message[:details] }
40
+ end
@@ -0,0 +1,50 @@
1
+ require_relative '../Avatax_AddressService/lib/avatax_addressservice.rb'
2
+ #require 'Avatax_AddressService'
3
+
4
+ accountNumber = "1234567890"
5
+ licenseKey = "A1B2C3D4E5F6G7H8"
6
+ useProductionURL = false
7
+
8
+ # Header Level Parameters
9
+ addressSvc = AvaTax::AddressService.new(
10
+
11
+ # Required Header Parameters
12
+ :username => accountNumber,
13
+ :password => licenseKey,
14
+ :use_production_url => useProductionURL,
15
+ :clientname => "AvaTaxSample",
16
+
17
+ # Optional Header Parameters
18
+ :name => "Development")
19
+
20
+ validateRequest = {
21
+ # Required Request Parameters
22
+ :line1 => "118 N Clark St",
23
+ :city => "Chicago",
24
+ :region => "IL",
25
+ # Optional Request Parameters
26
+ :line2 => "Suite 100",
27
+ :line3 => "ATTN Accounts Payable",
28
+ :country => "US",
29
+ :postalcode => "60602",
30
+ :coordinates => true,
31
+ :taxability => true,
32
+ :textcase => "Upper"
33
+ }
34
+
35
+ # Call the service
36
+ validateResult = addressSvc.validate(validateRequest)
37
+
38
+ # Print Results
39
+ puts "ValidateAddressTest Result: "+validateResult[:result_code]
40
+ if validateResult[:result_code] != "Success"
41
+ validateResult[:messages].each { |message| puts message[:details] }
42
+ else
43
+ puts validateResult[:valid_addresses][:valid_address][:line1] +
44
+ " " +
45
+ validateResult[:valid_addresses][:valid_address][:city] +
46
+ ", " +
47
+ validateResult[:valid_addresses][:valid_address][:region] +
48
+ " " +
49
+ validateResult[:valid_addresses][:valid_address][:postal_code]
50
+ end
data/spec/gettax_spec.rb CHANGED
@@ -58,9 +58,6 @@ describe "GetTax" do
58
58
  :debug => false,
59
59
  :validate => false,
60
60
  :hashcode => "0",
61
- :taxoverridetype=>"None",
62
- :taxamount=>".0000",
63
- :taxdate=>"1900-01-01",
64
61
  :reason=>"",
65
62
  :addresses=>[{
66
63
  :addresscode=>"123",
@@ -182,7 +179,7 @@ describe "GetTax" do
182
179
  it "all parameters succeed" do
183
180
  @service = AvaTax::TaxService.new(@creds)
184
181
  @result = @service.gettax(@request_required.merge(@request_optional))
185
- @result[:result_code].should eql "Success"
182
+ @result.should eql "Success"
186
183
  end
187
184
  end
188
185
  describe "workflow" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Avatax_TaxService
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.13
4
+ version: 1.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Graham S Wilson
@@ -43,13 +43,12 @@ files:
43
43
  - lib/template_ping.erb
44
44
  - lib/template_posttax.erb
45
45
  - lib/template_reconciletaxhistory.erb
46
- - samples/CancelTax.rb
47
- - samples/credentials.yml
48
- - samples/GetTax.rb
49
- - samples/GetTaxHistory.rb
50
- - samples/Ping.rb
51
- - samples/PostTax.rb
52
- - samples/Validate.rb
46
+ - samples/CancelTaxTest.rb
47
+ - samples/GetTaxTest.rb
48
+ - samples/GetTaxHistoryTest.rb
49
+ - samples/PingTest.rb
50
+ - samples/PostTaxTest.rb
51
+ - samples/ValidateAddressTest.rb
53
52
  - spec/adjusttax_spec.rb
54
53
  - spec/canceltax_spec.rb
55
54
  - spec/committax_spec.rb
data/samples/CancelTax.rb DELETED
@@ -1,27 +0,0 @@
1
- require 'Avatax_TaxService'
2
- require 'yaml'
3
-
4
- #Create an instance of the service class
5
- credentials = YAML::load(File.open('credentials.yml'))
6
- svc = AvaTax::TaxService.new(:username => credentials['username'],
7
- :password => credentials['password'],
8
- :clientname => credentials['clientname'],
9
- :use_production_url => credentials['production'])
10
-
11
- #Create the request
12
- request = {
13
- :doccode=>"MyDocCode", #Required
14
- :companycode=>credentials['companycode'], #Required
15
- :doctype=>"SalesInvoice", #Required
16
- :cancelcode=>"DocVoided" #Required
17
- }
18
- #Call the service
19
- result = svc.canceltax(request)
20
- #Display the result
21
- puts "CancelTax ResultCode: "+result[:result_code]
22
-
23
- #If we encountered an error
24
- if result[:result_code] != "Success"
25
- #Print the first error message returned
26
- puts result[:details]
27
- end
data/samples/GetTax.rb DELETED
@@ -1,118 +0,0 @@
1
- require 'Avatax_TaxService'
2
- require 'date'
3
- require 'yaml'
4
-
5
- #Create an instance of the service class
6
- credentials = YAML::load(File.open('credentials.yml'))
7
- svc = AvaTax::TaxService.new(:username => credentials['username'],
8
- :password => credentials['password'],
9
- :clientname => credentials['clientname'],
10
- :use_production_url => credentials['production'])
11
- #Create the request
12
- #Document Level Setup
13
- # R: indicates Required Element
14
- # O: Indicates Optional Element
15
- #
16
- get_tax_request = {
17
- # Set the tax document properties - values are Required unless noted as Optional, but all properties must be defined.
18
-
19
- :companycode=>credentials['companycode'], # R: Company Code from the accounts Admin Console
20
- :doctype=>"SalesInvoice", # R: Typically SalesOrder,SalesInvoice, ReturnInvoice
21
- :doccode=>"SampleDoc: " + DateTime.now.to_s, # R: Invoice or document tracking number - Must be unique
22
- :docdate=>DateTime.now.strftime("%Y-%m-%d"), # R: Sets reporting date and default tax date
23
- :salespersoncode=>"Bill Sales", # O: This is a reportable value that does not affect tax calculation.
24
- :customercode=>"TaxSvcTestCust", # R: String - Customer Tracking number or Exemption Customer Code
25
- :customerusagetype=>"", # O: Send for tax exempt transactions only.
26
- :discount=>".0000", # O: Send for document-level discounts only.
27
- :purchaseorderno=>"PO123456", # O: Specifies the purchase order number associated with the transaction. This value can be used to track single-use exemption certficates.
28
- :exemptionno=>"", # O: Send for tax exempt transactions only.
29
- :origincode=>"123", # R: Value representing the Origin Address
30
- :destinationcode=>"456", # R: Value representing the Destination Address
31
- :detaillevel=>"Tax", # R: Chose Summary, Document, Line or Tax - varying levels of results detail
32
- :referencecode=>"", # O: This is a reportable value that does not affect tax calculation.
33
- :locationcode=>"", # O: This is a reportable value that does not affect tax calculation.
34
- :commit=>"false", # O: Default is "false" - Set to "true" to commit the Document
35
- # TaxOverride O: Allows the TaxDate (or other values) to be overridden for tax calculation. Situational only. can be added at the document OR line level.
36
- #:taxoverridetype=>"TaxDate",
37
- #:taxdate=>"1900-01-01",
38
- # :reason=>"",
39
- :currencycode=>"USD", # O: This is a reportable value that does not affect tax calculation.
40
- :servicemode=>"Remote", # O: This is a reportable value that does not affect tax calculation.
41
- :paymentdate=>"2013-09-26", # O: This is a reportable value that does not affect tax calculation.
42
- :exchangerate=>".0000", # O: This is a reportable value that does not affect tax calculation.
43
- :exchangerateeffdate=>"1900-01-01", # O: This is a reportable value that does not affect tax calculation.
44
- :poslanecode=>"", # O: This is a reportable value that does not affect tax calculation.
45
- :businessidentificationno=>"", # O: Specified VAT ID of customer for international/VAT calculations and reporting.
46
- :debug=>true, # O: If true, transaction logs will be written in the gem root directory.
47
- # Address Section
48
- # Add the origin and destination addresses referred to by the
49
- # "OriginCode" and "DestinationCode" properties above.
50
- :addresses=>[{
51
- :addresscode=>"123",
52
- :line1=>"100 ravine lane",
53
- :line2=>"Suite 21",
54
- :city=>"Bainbridge Island",
55
- :region=>"WA",
56
- :postalcode=>"98110",
57
- :country=>"US",
58
- :latitude=>"",
59
- :longitude=>""
60
- }, {
61
- :addresscode=>"456",
62
- :line1=>"7070 West Arlington Drive",
63
- :city=>"Lakewood",
64
- :region=>"CO",
65
- :postalcode=>"80123",
66
- :country=>"US",
67
- }],
68
-
69
- # Add invoice lines
70
- :lines=>[{
71
- :no=>"1", # R: string - line Number of invoice - must be unique within the document.
72
- :itemcode=>"Canoe", #R: string - SKU or short name of Item
73
- :qty=>"1", # R: decimal - The number of items -- Qty of product sold.
74
- :amount=>"300.43", # R: decimal - the "NET" amount -- Amount should be the 'extended' or 'net' amount
75
- :discounted=>"false", # R: determines if the document-level discount should be applied to this line item.
76
- :ref1=>"ref1", # O: This is a reportable value that does not affect tax calculation.
77
- :ref2=>"ref2", # O: This is a reportable value that does not affect tax calculation.
78
- :description=>"Blue canoe", # O: string - Description or category of item sold.
79
- # TaxOverride O: Allows the TaxDate (or other values) to be overridden for tax calculation. Situational only.
80
- :taxoverridetypeline=>"TaxAmount",
81
- :taxamountline=>"10",
82
- :taxdateline=>"1900-01-01",
83
- :reasonline=>"Tax credit",
84
- :taxincluded=>"false" # O: Determines if the line amount on the request includes the tax amount
85
- }, {
86
- :no=>"2",
87
- :itemcode=>"Rowing boat",
88
- :qty=>"1",
89
- :amount=>"800.12",
90
- :discounted=>"false",
91
- :ref1=>"ref3",
92
- :ref2=>"ref4",
93
- :description=>"Red rowing boat",
94
- :taxincluded=>"false"
95
- }]}
96
-
97
- #Call the service
98
- result = svc.gettax(get_tax_request)
99
- #Display the result
100
- #puts result
101
- puts "CalcTax ResultCode: "+result[:result_code]
102
- #If we encountered an error
103
- if result[:result_code] != "Success"
104
- result[:messages][:message].each do |message|
105
- puts message[:summary]+ ": " + message[:details]
106
- end
107
- else
108
- puts "DocCode: " + result[:doc_code]+ " Total Tax Calculated: " + result[:total_tax]
109
- puts "Jurisdiction Breakdown:"
110
- #Show the tax amount calculated at each jurisdictional level
111
- result[:tax_lines][:tax_line].each do |line|
112
- puts " "+ "Line Number " + line[:no] + ": Tax: " + line[:tax]
113
- #This will display the jurisdiction name and tax at each jurisdiction for the line.
114
- line[:tax_details][:tax_detail].each do |key,value|
115
- puts " " + key.to_s+ ": " + value.to_s
116
- end
117
- end
118
- end
@@ -1,39 +0,0 @@
1
- require 'Avatax_TaxService'
2
- require 'yaml'
3
-
4
- #Create an instance of the service class
5
- credentials = YAML::load(File.open('credentials.yml'))
6
- svc = AvaTax::TaxService.new(:username => credentials['username'],
7
- :password => credentials['password'],
8
- :clientname => credentials['clientname'],
9
- :use_production_url => credentials['production'])
10
-
11
- #Create the request
12
- request = {
13
- :doccode=>"MyDocCode", #Required
14
- :companycode=> credentials['companycode'], #Required
15
- :doctype=>"SalesInvoice", #Required
16
- :docid=> "", #Optional
17
- :detaillevel=>"Tax", #Optional
18
- :debug => true #Optional
19
- }
20
- #Call the service
21
- result = svc.gettaxhistory(request)
22
- #print result
23
- #Display the result
24
- puts "GetTaxHistory ResultCode: "+result[:result_code]
25
- #If we encountered an error
26
- if result[:result_code] != "Success"
27
- puts result[:details]
28
- else
29
- puts "DocCode: " + result[:get_tax_result][:doc_code]+ " Total Tax Calculated: " + result[:get_tax_result][:total_tax].to_s
30
- puts "Jurisdiction Breakdown:"
31
- #Show the tax amount calculated at each jurisdictional level
32
- result[:get_tax_result][:tax_lines][:tax_line].each do |line|
33
- puts " "+ "Line Number " + line[:no] + ": Tax: " + line[:tax]
34
- #This will display the jurisdiction name and tax at each jurisdiction for the line.
35
- line[:tax_details][:tax_detail].each do |key,value|
36
- puts " " + key.to_s+ ": " + value.to_s
37
- end
38
- end
39
- end
data/samples/Ping.rb DELETED
@@ -1,24 +0,0 @@
1
- require 'Avatax_TaxService'
2
- require 'Avatax_AddressService'
3
- require 'yaml'
4
- #Note that the ping function exists in both the AddressSvc and TaxSvc classes - it works the same way in both.
5
-
6
- #Create an instance of the service class
7
- credentials = YAML::load(File.open('credentials.yml'))
8
- svc = AvaTax::TaxService.new(:username => credentials['username'],
9
- :password => credentials['password'],
10
- :clientname => credentials['clientname'],
11
- :use_production_url => credentials['production'])
12
-
13
- #Call the service
14
- result = svc.ping
15
- #print result
16
-
17
- #Display the result
18
- puts "Ping ResultCode: "+result[:result_code]
19
-
20
- #If we encountered an error
21
- if result[:result_code] != "Success"
22
- #Print the first error message returned
23
- puts result[:details]
24
- end
data/samples/PostTax.rb DELETED
@@ -1,34 +0,0 @@
1
- require 'Avatax_TaxService'
2
- require 'yaml'
3
-
4
- #Create an instance of the service class
5
- credentials = YAML::load(File.open('credentials.yml'))
6
- svc = AvaTax::TaxService.new(:username => credentials['username'],
7
- :password => credentials['password'],
8
- :clientname => credentials['clientname'],
9
- :use_production_url => credentials['production'])
10
-
11
- #Create the request
12
- request = {
13
- :docid=>"", #optional
14
- :companycode=> credentials['companycode'], #Required
15
- :doctype=>"SalesInvoice", #Required
16
- :doccode => "MyDocCode",
17
- :docdate => DateTime.now.strftime("%Y-%m-%d"),
18
- :totalamount => "1100.5500",
19
- :totaltax => "7",
20
- :hashcode => "0",
21
- :commit => "false",
22
- :newdoccode => "MyDocCode"
23
- }
24
- #Call the service
25
- result = svc.posttax(request)
26
-
27
- #Display the result
28
- puts "PostTax ResultCode: "+result[:result_code]
29
-
30
- #If we encountered an error
31
- if result[:result_code] != "Success"
32
- #Print the first error message returned
33
- puts result[:messages][:message][0][:summary]
34
- end
data/samples/Validate.rb DELETED
@@ -1,37 +0,0 @@
1
- require 'Avatax_AddressService'
2
- require 'yaml'
3
-
4
- #Create an instance of the service class
5
- credentials = YAML::load(File.open('credentials.yml'))
6
- svc = AvaTax::AddressService.new(:username => credentials['username'],
7
- :password => credentials['password'],
8
- :clientname => credentials['clientname'],
9
- :use_production_url => credentials['production'])
10
-
11
- # Create the request
12
- input = {
13
- :line1 => "General Delivery", #Required
14
- :line2 => "Suite 100", #Optional
15
- :line3 => "Attn: Accounts Payable", #Optional
16
- :city =>"Seattle", #Required, if PostalCode is not specified
17
- :region=>"WA", #Required, if PostalCode is not specified
18
- :postalcode =>"98101", #Required, if City and Region are not specified
19
- :country => "US" #Optional
20
- }
21
- #Call the service
22
- result = svc.validate(input)
23
- #Display the result
24
- #print result
25
-
26
- #If we encountered an error
27
- if result[:result_code] != "Success"
28
- #puts the first error message returned
29
- puts "Address Validation ResultCode: "+result[:result_code]
30
- puts result[:details]
31
- else
32
- puts "Validated Address: "
33
- result[:valid_addresses][:valid_address].each do |key, value|
34
- puts key.to_s + ": " + value.to_s if not value.nil?
35
- end
36
-
37
- end
@@ -1,5 +0,0 @@
1
- username: username
2
- password: password
3
- clientname: AvaTaxCalcSOAP Ruby Sample
4
- production: false
5
- companycode: 1