sapoci 0.2.0 → 0.3.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 +4 -4
- data/lib/sapoci/document.rb +2 -2
- data/lib/sapoci/item.rb +100 -18
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31a56bf4eb76ed5dfb7df17a9142775bbb99e19f
|
4
|
+
data.tar.gz: 615ea0a0826d3de6f369394acb3f3953ab1feae2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d88d4bd8ab73a9414a5c1e1d759b650dffcf4153909ed5ca92547c242f92350d38cfc22868c025ec1b6b753058795cb8d3bf9029312b4dccc97e8a54b2277b69
|
7
|
+
data.tar.gz: cbf129c4b3308992af62c58109fd35953432d9c0eec2aa55fcd0bc0d810b805716297646e7b6b026baa49c92a0af79485a25e7cae9e0fe656cc4356b8debe94c
|
data/lib/sapoci/document.rb
CHANGED
@@ -71,7 +71,7 @@ module SAPOCI
|
|
71
71
|
items[index].longtext = value
|
72
72
|
end
|
73
73
|
end
|
74
|
-
items.inject([]) { |memo, (
|
74
|
+
items.inject([]) { |memo, (_, value)| memo << value }.sort_by(&:index)
|
75
75
|
end
|
76
76
|
|
77
77
|
# Parses a Rails-/Rack-compatible params hash and returns
|
@@ -115,7 +115,7 @@ module SAPOCI
|
|
115
115
|
end if oci_values
|
116
116
|
end # oci_name =~ /NEW_ITEM-/
|
117
117
|
end
|
118
|
-
items.inject([]) { |memo, (
|
118
|
+
items.inject([]) { |memo, (_, value)| memo << value }.sort_by(&:index)
|
119
119
|
end
|
120
120
|
|
121
121
|
end
|
data/lib/sapoci/item.rb
CHANGED
@@ -7,16 +7,12 @@ require 'bigdecimal'
|
|
7
7
|
|
8
8
|
module SAPOCI
|
9
9
|
class Item
|
10
|
-
|
10
|
+
|
11
11
|
attr_reader :index
|
12
12
|
attr_accessor :description
|
13
13
|
attr_accessor :matnr
|
14
|
-
attr_accessor :quantity
|
15
14
|
attr_accessor :unit
|
16
|
-
attr_accessor :price
|
17
15
|
attr_accessor :currency
|
18
|
-
attr_accessor :priceunit
|
19
|
-
attr_accessor :leadtime
|
20
16
|
attr_accessor :longtext
|
21
17
|
attr_accessor :vendor
|
22
18
|
attr_accessor :vendormat
|
@@ -36,49 +32,108 @@ module SAPOCI
|
|
36
32
|
attr_accessor :ext_category_id
|
37
33
|
attr_accessor :ext_category
|
38
34
|
attr_accessor :sld_sys_name
|
35
|
+
attr_accessor :mps_sage_number
|
36
|
+
attr_accessor :mps_sage_contract
|
39
37
|
attr_accessor :cust_field1
|
40
38
|
attr_accessor :cust_field2
|
41
39
|
attr_accessor :cust_field3
|
42
40
|
attr_accessor :cust_field4
|
43
41
|
attr_accessor :cust_field5
|
44
|
-
|
42
|
+
attr_accessor :cust_field6
|
43
|
+
attr_accessor :cust_field7
|
44
|
+
attr_accessor :cust_field8
|
45
|
+
attr_accessor :cust_field9
|
46
|
+
attr_accessor :cust_field10
|
47
|
+
attr_accessor :cust_field11
|
48
|
+
attr_accessor :cust_field12
|
49
|
+
attr_accessor :cust_field13
|
50
|
+
attr_accessor :cust_field14
|
51
|
+
attr_accessor :cust_field15
|
52
|
+
attr_accessor :cust_field16
|
53
|
+
attr_accessor :cust_field17
|
54
|
+
attr_accessor :cust_field18
|
55
|
+
attr_accessor :cust_field19
|
56
|
+
attr_accessor :cust_field20
|
57
|
+
attr_accessor :cust_field21
|
58
|
+
attr_accessor :cust_field22
|
59
|
+
attr_accessor :cust_field23
|
60
|
+
attr_accessor :cust_field24
|
61
|
+
attr_accessor :cust_field25
|
62
|
+
attr_accessor :cust_field26
|
63
|
+
attr_accessor :cust_field27
|
64
|
+
attr_accessor :cust_field28
|
65
|
+
attr_accessor :cust_field29
|
66
|
+
attr_accessor :cust_field30
|
67
|
+
|
45
68
|
# Initializes the item.
|
46
69
|
def initialize(index)
|
47
70
|
@index = index
|
48
71
|
end
|
49
|
-
|
72
|
+
|
50
73
|
def quantity
|
51
|
-
|
74
|
+
if defined?(@quantity)
|
75
|
+
BigDecimal.new("0#{@quantity.to_s.strip.gsub(/,/,'.')}")
|
76
|
+
else
|
77
|
+
BigDecimal.new("0.0")
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def quantity=(value)
|
82
|
+
@quantity = value
|
52
83
|
end
|
53
84
|
|
54
85
|
def quantity_before_type_cast
|
55
86
|
@quantity
|
56
87
|
end
|
57
|
-
|
88
|
+
|
58
89
|
def price
|
59
|
-
|
90
|
+
if defined?(@price)
|
91
|
+
BigDecimal.new("0#{@price.to_s.strip.gsub(/,/,'.')}")
|
92
|
+
else
|
93
|
+
BigDecimal.new("0.0")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def price=(value)
|
98
|
+
@price = value
|
60
99
|
end
|
61
|
-
|
100
|
+
|
62
101
|
def price_before_type_cast
|
63
102
|
@price
|
64
103
|
end
|
65
104
|
|
66
105
|
def priceunit
|
67
|
-
|
106
|
+
if defined?(@priceunit)
|
107
|
+
BigDecimal.new("0#{@priceunit.to_s.strip.gsub(/,/,'.')}").nonzero? || 1
|
108
|
+
else
|
109
|
+
1
|
110
|
+
end
|
68
111
|
end
|
69
|
-
|
112
|
+
|
113
|
+
def priceunit=(value)
|
114
|
+
@priceunit = value
|
115
|
+
end
|
116
|
+
|
70
117
|
def priceunit_before_type_cast
|
71
118
|
@priceunit
|
72
119
|
end
|
73
120
|
|
74
121
|
def leadtime
|
75
|
-
@leadtime
|
122
|
+
if defined?(@leadtime) && @leadtime
|
123
|
+
@leadtime.to_i
|
124
|
+
else
|
125
|
+
0
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
def leadtime=(value)
|
130
|
+
@leadtime = value
|
76
131
|
end
|
77
132
|
|
78
133
|
def leadtime_before_type_cast
|
79
134
|
@leadtime
|
80
135
|
end
|
81
|
-
|
136
|
+
|
82
137
|
def service?
|
83
138
|
self.service == "X"
|
84
139
|
end
|
@@ -112,21 +167,48 @@ module SAPOCI
|
|
112
167
|
html << hidden_field_tag("EXT_CATEGORY_ID", self.ext_category_id) unless self.ext_category_id.blank?
|
113
168
|
html << hidden_field_tag("EXT_CATEGORY", self.ext_category) unless self.ext_category.blank?
|
114
169
|
html << hidden_field_tag("SLD_SYS_NAME", self.sld_sys_name) unless self.sld_sys_name.blank?
|
170
|
+
html << hidden_field_tag("MPS_SAGE_NUMBER", self.mps_sage_number) unless self.mps_sage_number.blank?
|
171
|
+
html << hidden_field_tag("MPS_SAGE_CONTRACT", self.mps_sage_contract) unless self.mps_sage_contract.blank?
|
115
172
|
html << hidden_field_tag("CUST_FIELD1", self.cust_field1) unless self.cust_field1.blank?
|
116
173
|
html << hidden_field_tag("CUST_FIELD2", self.cust_field2) unless self.cust_field2.blank?
|
117
174
|
html << hidden_field_tag("CUST_FIELD3", self.cust_field3) unless self.cust_field3.blank?
|
118
175
|
html << hidden_field_tag("CUST_FIELD4", self.cust_field4) unless self.cust_field4.blank?
|
119
176
|
html << hidden_field_tag("CUST_FIELD5", self.cust_field5) unless self.cust_field5.blank?
|
177
|
+
html << hidden_field_tag("CUST_FIELD6", self.cust_field6) unless self.cust_field6.blank?
|
178
|
+
html << hidden_field_tag("CUST_FIELD7", self.cust_field7) unless self.cust_field7.blank?
|
179
|
+
html << hidden_field_tag("CUST_FIELD8", self.cust_field8) unless self.cust_field8.blank?
|
180
|
+
html << hidden_field_tag("CUST_FIELD9", self.cust_field9) unless self.cust_field9.blank?
|
181
|
+
html << hidden_field_tag("CUST_FIELD10", self.cust_field10) unless self.cust_field10.blank?
|
182
|
+
html << hidden_field_tag("CUST_FIELD11", self.cust_field11) unless self.cust_field11.blank?
|
183
|
+
html << hidden_field_tag("CUST_FIELD12", self.cust_field12) unless self.cust_field12.blank?
|
184
|
+
html << hidden_field_tag("CUST_FIELD13", self.cust_field13) unless self.cust_field13.blank?
|
185
|
+
html << hidden_field_tag("CUST_FIELD14", self.cust_field14) unless self.cust_field14.blank?
|
186
|
+
html << hidden_field_tag("CUST_FIELD15", self.cust_field15) unless self.cust_field15.blank?
|
187
|
+
html << hidden_field_tag("CUST_FIELD16", self.cust_field16) unless self.cust_field16.blank?
|
188
|
+
html << hidden_field_tag("CUST_FIELD17", self.cust_field17) unless self.cust_field17.blank?
|
189
|
+
html << hidden_field_tag("CUST_FIELD18", self.cust_field18) unless self.cust_field18.blank?
|
190
|
+
html << hidden_field_tag("CUST_FIELD19", self.cust_field19) unless self.cust_field19.blank?
|
191
|
+
html << hidden_field_tag("CUST_FIELD20", self.cust_field20) unless self.cust_field20.blank?
|
192
|
+
html << hidden_field_tag("CUST_FIELD21", self.cust_field21) unless self.cust_field21.blank?
|
193
|
+
html << hidden_field_tag("CUST_FIELD22", self.cust_field22) unless self.cust_field22.blank?
|
194
|
+
html << hidden_field_tag("CUST_FIELD23", self.cust_field23) unless self.cust_field23.blank?
|
195
|
+
html << hidden_field_tag("CUST_FIELD24", self.cust_field24) unless self.cust_field24.blank?
|
196
|
+
html << hidden_field_tag("CUST_FIELD25", self.cust_field25) unless self.cust_field25.blank?
|
197
|
+
html << hidden_field_tag("CUST_FIELD26", self.cust_field26) unless self.cust_field26.blank?
|
198
|
+
html << hidden_field_tag("CUST_FIELD27", self.cust_field27) unless self.cust_field27.blank?
|
199
|
+
html << hidden_field_tag("CUST_FIELD28", self.cust_field28) unless self.cust_field28.blank?
|
200
|
+
html << hidden_field_tag("CUST_FIELD29", self.cust_field29) unless self.cust_field29.blank?
|
201
|
+
html << hidden_field_tag("CUST_FIELD30", self.cust_field30) unless self.cust_field30.blank?
|
120
202
|
html << "<input type=\"hidden\" name=\"NEW_ITEM-LONGTEXT_#{index + 1}:132[]\" value=\"#{escape_html(self.longtext)}\" />" unless self.longtext.blank?
|
121
203
|
html.join
|
122
204
|
end
|
123
|
-
|
205
|
+
|
124
206
|
private
|
125
|
-
|
207
|
+
|
126
208
|
def hidden_field_tag(name, value, options = {})
|
127
209
|
"<input type=\"hidden\" name=\"NEW_ITEM-#{name}[#{index + 1}]\" value=\"#{escape_html(value)}\" />"
|
128
210
|
end
|
129
|
-
|
211
|
+
|
130
212
|
ESCAPE_HTML = { "&" => "&", "<" => "<", ">" => ">", "'" => "'", '"' => """, }
|
131
213
|
ESCAPE_HTML_PATTERN = Regexp.union(ESCAPE_HTML.keys)
|
132
214
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sapoci
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oliver Eilhard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
106
|
version: 1.3.6
|
107
107
|
requirements: []
|
108
108
|
rubyforge_project:
|
109
|
-
rubygems_version: 2.
|
109
|
+
rubygems_version: 2.5.1
|
110
110
|
signing_key:
|
111
111
|
specification_version: 4
|
112
112
|
summary: SAP OCI enables users to parse SAP OCI compliant data from online shops.
|