zanders 1.4.10 → 2.0

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b04b4f35c32e7fefb2e813e7143e33d6749ee98
4
- data.tar.gz: 37ff995660b5e1e98dc5213914ffe2c8f4b4d8e1
3
+ metadata.gz: 87b6fba3d86fa736bca99aa0c64cddc262c1b8c0
4
+ data.tar.gz: 108b978150d49336b6c697e8b108270a2c4db8a9
5
5
  SHA512:
6
- metadata.gz: 04a63e413014b45a44cbcce9cd1743a8ce88ab2d114f2ec3eb4d779bf0a0db1a79de33922c4fbf901e3801d1c2be537cf5c7f962191f93776c3148cfc106f153
7
- data.tar.gz: fd135cd8fe139ab047431196dc157a675c8a854437726c55a27b8bc3afc89c7fff6404f07d437ec873b37872db95652e7d95729dae2969f650807ea292b6c888
6
+ metadata.gz: 963c1d800361f0e04a18b22535ab3d153772813224772e2b5af3ab7a19f60602b69280fccac2f24ba5a3802ddd10217a623fba0e458fe2594266738f85b85043
7
+ data.tar.gz: 65f26302cd660430a46064e4b1ecf7d3f16f8bca393ea3f66761bf6373c725ba64595b9740730fc6b133d26ea6e8b089c18ee1e5cc042471be813f337d759317
data/lib/zanders.rb CHANGED
@@ -11,6 +11,7 @@ require 'zanders/address'
11
11
  require 'zanders/order'
12
12
  require 'zanders/item'
13
13
  require 'zanders/inventory'
14
+ require 'zanders/catalog'
14
15
 
15
16
  module Zanders
16
17
 
@@ -36,7 +36,7 @@ module Zanders
36
36
  response = response.body[:use_ship_to_response][:return][:item]
37
37
 
38
38
  # Successful call return_code is 0
39
- if response.first[:value] == "0" || response.first[:value] == "15"
39
+ if response.first[:value] == "0"
40
40
  ship_to_number = Hash.new
41
41
 
42
42
  # Let's dig to get to data we actually need. Yay, digging...
@@ -0,0 +1,56 @@
1
+ module Zanders
2
+ class Catalog < Base
3
+
4
+ CATALOG_FILENAME = "zandersinv.csv"
5
+
6
+ def initialize(options = {})
7
+ requires!(options, :username, :password)
8
+
9
+ @options = options
10
+ end
11
+
12
+ def self.all(chunk_size = 15, options = {}, &block)
13
+ requires!(options, :username, :password)
14
+ new(options).all(chunk_size, &block)
15
+ end
16
+
17
+ def all(chunk_size, &block)
18
+ connect(@options) do |ftp|
19
+ begin
20
+ csv_tempfile = Tempfile.new
21
+
22
+ ftp.chdir(Zanders.config.ftp_directory)
23
+ ftp.getbinaryfile(CATALOG_FILENAME, csv_tempfile.path)
24
+
25
+ SmarterCSV.process(csv_tempfile, {
26
+ :chunk_size => chunk_size,
27
+ :convert_values_to_numeric => false,
28
+ :key_mapping => {
29
+ :available => :quantity,
30
+ :desc1 => :short_description,
31
+ :itemnumber => :item_identifier,
32
+ :manufacturer => :brand,
33
+ :mfgpnumber => :mfg_number,
34
+ :mapprice => :map_price,
35
+ :price1 => :price
36
+ }
37
+ }) do |chunk|
38
+ chunk.each do |item|
39
+ item[:name] = item[:short_description]
40
+ item[:long_description] = "#{item[:short_description]} #{item[:desc2]}"
41
+
42
+ item.except!(:desc2, :qty1, :qty2, :qty3, :price2, :price3)
43
+ end
44
+
45
+ yield(chunk)
46
+ end
47
+
48
+ csv_tempfile.unlink
49
+ ensure
50
+ ftp.close
51
+ end
52
+ end
53
+ end
54
+
55
+ end
56
+ end
@@ -1,8 +1,7 @@
1
1
  module Zanders
2
2
  class Inventory < Base
3
3
 
4
- INVENTORY_FILENAME = "zandersinv.csv"
5
- QUANTITY_FILENAME = "liveinv.csv"
4
+ INVENTORY_FILENAME = "liveinv.csv"
6
5
 
7
6
  def initialize(options = {})
8
7
  requires!(options, :username, :password)
@@ -15,31 +14,7 @@ module Zanders
15
14
  new(options).all(chunk_size, &block)
16
15
  end
17
16
 
18
- def self.quantities(chunk_size = 15, options = {}, &block)
19
- requires!(options, :username, :password)
20
- new(options).quantities(chunk_size, &block)
21
- end
22
-
23
17
  def all(chunk_size, &block)
24
- connect(@options) do |ftp|
25
- begin
26
- csv_tempfile = Tempfile.new
27
-
28
- ftp.chdir(Zanders.config.ftp_directory)
29
- ftp.getbinaryfile(INVENTORY_FILENAME, csv_tempfile.path)
30
-
31
- SmarterCSV.process(csv_tempfile, { :chunk_size => chunk_size, :convert_values_to_numeric => false }) do |chunk|
32
- yield(chunk)
33
- end
34
-
35
- csv_tempfile.unlink
36
- ensure
37
- ftp.close
38
- end
39
- end
40
- end
41
-
42
- def quantities(chunk_size, &block)
43
18
  connect(@options) do |ftp|
44
19
  begin
45
20
  csv_tempfile = Tempfile.new
@@ -47,7 +22,19 @@ module Zanders
47
22
  ftp.chdir(Zanders.config.ftp_directory)
48
23
  ftp.getbinaryfile(QUANTITY_FILENAME, csv_tempfile.path)
49
24
 
50
- SmarterCSV.process(csv_tempfile, { :chunk_size => chunk_size, :convert_values_to_numeric => false }) do |chunk|
25
+ SmarterCSV.process(csv_tempfile, {
26
+ :chunk_size => chunk_size,
27
+ :convert_values_to_numeric => false,
28
+ :key_mapping => {
29
+ :available => :quantity,
30
+ :itemnumber => :item_identifier,
31
+ :price1 => :price
32
+ }
33
+ }) do |chunk|
34
+ chunk.each do |item|
35
+ item.except!(:qty1, :qty2, :qty3, :price2, :price3)
36
+ end
37
+
51
38
  yield(chunk)
52
39
  end
53
40
 
data/lib/zanders/order.rb CHANGED
@@ -53,11 +53,9 @@ module Zanders
53
53
  ])
54
54
  end
55
55
 
56
- shipping_code = (@options[:account] == :default ? 'UM' : 'UG')
57
-
58
56
  shipping_information.push(*[
59
57
  { key: 'shipDate', value: Time.now.strftime("%Y-%m-%d") },
60
- { key: 'shipViaCode', value: shipping_code },
58
+ { key: 'shipViaCode', value: 'UG' },
61
59
  { key: 'purchaseOrderNumber', value: purchase_order_number }
62
60
  ])
63
61
 
@@ -69,7 +67,7 @@ module Zanders
69
67
  if ship_to_number[:success]
70
68
  shipping_information.push({key: 'shipToNo', value: ship_to_number[:ship_to_number] })
71
69
  else
72
- return { success: false, error_code: ship_to_number[:error_code], error_message: ship_to_number[:error_message] }
70
+ return { success: false, error_code: ship_to_number[:error_code], error_message: response.last[:value] }
73
71
  end
74
72
  else
75
73
  shipping_information.push(*[
@@ -1,3 +1,3 @@
1
1
  module Zanders
2
- VERSION = "1.4.10"
2
+ VERSION = "2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zanders
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.10
4
+ version: '2.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Knight
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-19 00:00:00.000000000 Z
11
+ date: 2017-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -115,6 +115,7 @@ files:
115
115
  - lib/zanders.rb
116
116
  - lib/zanders/address.rb
117
117
  - lib/zanders/base.rb
118
+ - lib/zanders/catalog.rb
118
119
  - lib/zanders/inventory.rb
119
120
  - lib/zanders/item.rb
120
121
  - lib/zanders/order.rb