oddb2xml 1.3.7 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ === 1.3.8 / 09.02.2013
2
+
3
+ * Add valid INDEX entries to product.xml
4
+
1
5
  === 1.3.7 / 08.02.2013
2
6
 
3
7
  * Add more Tags to product.xml from Packungen.xls
@@ -146,7 +146,6 @@ module Oddb2xml
146
146
  @products = []
147
147
  @index['DE'].each_pair do |phar, indices|
148
148
  indices.each_with_index do |index, i|
149
- obj = {}
150
149
  obj = {
151
150
  :seq => @items[phar],
152
151
  :pac => nil,
@@ -158,27 +157,27 @@ module Oddb2xml
158
157
  :ean => index[:ean],
159
158
  :atc => index[:atc_code],
160
159
  :ith => '',
161
- # from Packungen.xls
162
160
  :siz => '',
163
161
  :eht => '',
164
162
  :sub => '',
165
163
  }
166
- if obj[:seq] and obj[:pac] = obj[:seq][:packages][phar]
167
- obj[:no8] = obj[:pac][:swissmedic_number8].to_s
168
- obj[:atc] = obj[:pac][:atc_code].to_s
169
- if obj[:no8] and ppac = @packs[obj[:no8].intern] # Packungen.xls
170
- unless obj[:ean]
171
- obj[:ean] = ppac[:ean].to_s
172
- end
173
- # sync ATC-code via EAN
174
- if obj[:ean] == ppac[:ean].to_s
175
- obj[:atc] = ppac[:atc_code].to_s
176
- end
177
- obj[:ith] = ppac[:ith_swissmedic]
178
- obj[:siz] = ppac[:package_size]
179
- obj[:eht] = ppac[:einheit_swissmedic]
180
- obj[:sub] = ppac[:substance_swissmedic]
164
+ if obj[:ean] # via EAN-Code
165
+ obj[:no8] = obj[:ean][4..11]
166
+ end
167
+ if obj[:no8] and ppac = @packs[obj[:no8].intern] and # Packungen.xls
168
+ !ppac[:is_tier]
169
+ # If swissINDEX does not have EAN
170
+ if obj[:ean].nil? or obj[:ean].empty?
171
+ obj[:ean] = ppac[:ean].to_s
181
172
  end
173
+ # If swissINDEX dose not have ATC-Code
174
+ if obj[:atc].nil? or obj[:atc].empty?
175
+ obj[:atc] = ppac[:atc_code].to_s
176
+ end
177
+ obj[:ith] = ppac[:ith_swissmedic]
178
+ obj[:siz] = ppac[:package_size]
179
+ obj[:eht] = ppac[:einheit_swissmedic]
180
+ obj[:sub] = ppac[:substance_swissmedic]
182
181
  end
183
182
  if obj[:ean][0..3] == '7680'
184
183
  @products << obj
@@ -384,7 +383,6 @@ module Oddb2xml
384
383
  length = 0
385
384
  @products.each do |obj|
386
385
  seq = obj[:seq]
387
- next unless seq # option
388
386
  length += 1
389
387
  xml.PRD('DT' => '') {
390
388
  xml.GTIN obj[:ean].to_s
@@ -529,15 +527,14 @@ module Oddb2xml
529
527
  ) {
530
528
  @articles.each do |obj|
531
529
  obj[:de].each_with_index do |de_idx, i|
532
- fr_idx = obj[:fr][i] # swiss index FR
533
- pac,no8 = nil,nil # BAG XML (additional data)
534
- ppac = nil # Packungen
530
+ fr_idx = obj[:fr][i] # swiss index FR
531
+ pac,no8 = nil,de_idx[:ean][4..11] # BAG XML (additional data)
532
+ ppac = nil # Packungen
535
533
  if obj[:seq]
536
534
  pac = obj[:seq][:packages][de_idx[:pharmacode]]
537
- if pac
538
- no8 = pac[:swissmedic_number8].intern
539
- ppac = @packs[no8]
540
- end
535
+ end
536
+ if no8
537
+ ppac = ((_ppac = @packs[no8.intern] and !_ppac[:is_tier]) ? _ppac : nil)
541
538
  end
542
539
  xml.ART('DT' => '') {
543
540
  xml.PHAR de_idx[:pharmacode] unless de_idx[:pharmacode].empty?
@@ -545,10 +542,10 @@ module Oddb2xml
545
542
  #xml.CDS01
546
543
  #xml.CDS02
547
544
  #xml.PRDNO
548
- if pac && ppac && ppac[:swissmedic_category]
545
+ if ppac && ppac[:swissmedic_category]
549
546
  xml.SMCAT ppac[:swissmedic_category]
550
547
  end
551
- if pac
548
+ if no8
552
549
  xml.SMNO no8.to_s unless no8.to_s.empty?
553
550
  end
554
551
  #xml.HOSPCD
@@ -563,11 +560,9 @@ module Oddb2xml
563
560
  xml.LIMPTS pac[:limitation_points] unless pac[:limitation_points].empty?
564
561
  end
565
562
  #xml.GRDFR
566
- if pac
567
- if no8.empty? and
568
- no8.to_s =~ /(\d{5})(\d{3})/
569
- xml.COOL 1 if @fridges.include?($1.to_s)
570
- end
563
+ if no8 and !no8.empty? and
564
+ no8.to_s =~ /(\d{5})(\d{3})/
565
+ xml.COOL 1 if @fridges.include?($1.to_s)
571
566
  end
572
567
  #xml.TEMP
573
568
  unless de_idx[:ean].empty?
@@ -860,12 +855,12 @@ module Oddb2xml
860
855
  else
861
856
  '0'
862
857
  end
863
- row << "%#{DAT_LEN[:CIKS]}s" % if (no8 && @packs[no8]) # Packungen.xls
858
+ row << "%#{DAT_LEN[:CIKS]}s" % if (no8 && @packs[no8] && !@packs[no8][:is_tier]) # Packungen.xls
864
859
  @packs[no8][:swissmedic_category]
865
860
  else
866
861
  '0'
867
862
  end.gsub(/(\+|\s)/, '')
868
- row << "%0#{DAT_LEN[:ITHE]}d" % if (no8 && @packs[no8])
863
+ row << "%0#{DAT_LEN[:ITHE]}d" % if (no8 && @packs[no8] && !@packs[no8][:is_tier])
869
864
  format_date(@packs[no8][:ith_swissmedic])
870
865
  else
871
866
  ('0' * DAT_LEN[:ITHE])
@@ -204,7 +204,7 @@ module Oddb2xml
204
204
  eht = 12 # :einheit_swissmedic
205
205
  sub = 14 # :substance_swissmedic
206
206
  @sheet.each_with_index do |row, i|
207
- next if (i== 0 or row[typ] == 'Tierarzneimittel')
207
+ next if (i== 0)
208
208
  no8 = extract_number(row, i_5).to_s + extract_number(row, i_3, /^\d{3}$/).to_s
209
209
  unless no8.empty?
210
210
  ean_base12 = "7680#{no8}"
@@ -216,6 +216,7 @@ module Oddb2xml
216
216
  :package_size => row[siz].to_s,
217
217
  :einheit_swissmedic => row[eht].to_s,
218
218
  :substance_swissmedic => row[sub].to_s,
219
+ :is_tier => (row[typ] == 'Tierarzneimittel' ? true : false),
219
220
  }
220
221
  end
221
222
  end
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "1.3.7"
2
+ VERSION = "1.3.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oddb2xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 1.3.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-08 00:00:00.000000000 Z
12
+ date: 2013-02-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubyzip
16
- requirement: &15778620 !ruby/object:Gem::Requirement
16
+ requirement: &17599500 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *15778620
24
+ version_requirements: *17599500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: archive-tar-minitar
27
- requirement: &15777540 !ruby/object:Gem::Requirement
27
+ requirement: &17598980 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *15777540
35
+ version_requirements: *17598980
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mechanize
38
- requirement: &15776980 !ruby/object:Gem::Requirement
38
+ requirement: &17598420 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *15776980
46
+ version_requirements: *17598420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: nokogiri
49
- requirement: &15776260 !ruby/object:Gem::Requirement
49
+ requirement: &17597680 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *15776260
57
+ version_requirements: *17597680
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: savon
60
- requirement: &15775420 !ruby/object:Gem::Requirement
60
+ requirement: &17596580 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '2.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *15775420
68
+ version_requirements: *17596580
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: spreadsheet
71
- requirement: &15774640 !ruby/object:Gem::Requirement
71
+ requirement: &17596100 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *15774640
79
+ version_requirements: *17596100
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rspec
82
- requirement: &15773640 !ruby/object:Gem::Requirement
82
+ requirement: &17595560 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *15773640
90
+ version_requirements: *17595560
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: webmock
93
- requirement: &15771340 !ruby/object:Gem::Requirement
93
+ requirement: &17594800 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *15771340
101
+ version_requirements: *17594800
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: ZenTest
104
- requirement: &15769640 !ruby/object:Gem::Requirement
104
+ requirement: &17593260 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *15769640
112
+ version_requirements: *17593260
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: hoe
115
- requirement: &15767680 !ruby/object:Gem::Requirement
115
+ requirement: &17590480 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '3.4'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *15767680
123
+ version_requirements: *17590480
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rdoc
126
- requirement: &15764720 !ruby/object:Gem::Requirement
126
+ requirement: &17554860 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *15764720
134
+ version_requirements: *17554860
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: rdoc
137
- requirement: &15760840 !ruby/object:Gem::Requirement
137
+ requirement: &17553900 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '3.10'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *15760840
145
+ version_requirements: *17553900
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: hoe
148
- requirement: &15759960 !ruby/object:Gem::Requirement
148
+ requirement: &17553160 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ~>
@@ -153,7 +153,7 @@ dependencies:
153
153
  version: '2.13'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *15759960
156
+ version_requirements: *17553160
157
157
  description: oddb2xml creates xml files using swissINDEX, BAG-XML and Swissmedic.
158
158
  email: yasaka@ywesee.com, zdavatz@ywesee.com
159
159
  executables: