oddb2xml 2.4.3 → 2.4.4
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/History.txt +5 -0
- data/lib/oddb2xml/builder.rb +20 -4
- data/lib/oddb2xml/extractor.rb +13 -3
- data/lib/oddb2xml/version.rb +1 -1
- data/spec/extractor_spec.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d53eced411a8265a49354d1c7ffb1309c10a4545
|
4
|
+
data.tar.gz: d53b5e31652a7b16b3889a3bf6636f2a06ca5ba8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f782573e7dca61022e7f44c2a34794673473def7c79d20676106387c779e6965a157a29f510f56a396afad5c3838558d59b0e876d2b0e54a38ec60cf2536faf
|
7
|
+
data.tar.gz: ddb93469191bbcb33f3ae744fbf463bad8480d863b45631fb43e543a7a1052a7a596baec4fd044396d8508270c5289c3944201ef6ff41d0d9ad0d072a05eb6dd
|
data/History.txt
CHANGED
data/lib/oddb2xml/builder.rb
CHANGED
@@ -768,10 +768,28 @@ module Oddb2xml
|
|
768
768
|
prepare_articles
|
769
769
|
idx = 0
|
770
770
|
nbr_records = 0
|
771
|
+
@preparations_only = []
|
771
772
|
Oddb2xml.log "build_article #{idx} of #{@articles.size} articles"
|
772
773
|
_builder = Nokogiri::XML::Builder.new(:encoding => 'utf-8') do |xml|
|
773
774
|
xml.doc.tag_suffix = @tag_suffix
|
774
775
|
datetime = Time.new.strftime('%FT%T%z')
|
776
|
+
eans_from_refdata = @articles.collect{|refdata| refdata[:ean] }
|
777
|
+
eans_from_preparations = @items.keys
|
778
|
+
missing_eans = []
|
779
|
+
eans_from_preparations.each do |ean|
|
780
|
+
next if ean.to_i == 0
|
781
|
+
unless eans_from_refdata.index(ean)
|
782
|
+
@preparations_only << ean
|
783
|
+
missing_eans << ean
|
784
|
+
item = @items[ean].clone
|
785
|
+
next if defined?(RSpec) && !item[:pharmacode]
|
786
|
+
item[:ean] = ean
|
787
|
+
item[:_type] = :preparations_xml
|
788
|
+
item[:desc_de] = item[:name_de] + ' ' + item[:desc_de]
|
789
|
+
item[:desc_fr] = item[:name_fr] + ' ' + item[:desc_fr]
|
790
|
+
@articles << item
|
791
|
+
end
|
792
|
+
end
|
775
793
|
xml.ARTICLE(XML_OPTIONS) {
|
776
794
|
@articles.sort! { |a,b| a[:ean] <=> b[:ean] }
|
777
795
|
@articles.each do |obj|
|
@@ -844,9 +862,6 @@ module Oddb2xml
|
|
844
862
|
xml.BG(flag ? 'Y' : 'N')
|
845
863
|
end
|
846
864
|
#xml.EXP
|
847
|
-
if item and item[:substances] and substance = item[:substances].first
|
848
|
-
xml.QTY "#{substance[:quantity]}#{substance[:unit] ? ' ' + substance[:unit] : ''}"
|
849
|
-
end if false # TODO: get qty/unit from refdata name
|
850
865
|
xml.DSCRD obj[:desc_de] if obj[:desc_de] and not obj[:desc_de].empty?
|
851
866
|
xml.DSCRF obj[:desc_fr] if obj[:desc_fr] and not obj[:desc_fr].empty?
|
852
867
|
xml.DSCRF obj[:desc_de] if !obj[:desc_fr] or obj[:desc_fr].empty?
|
@@ -953,7 +968,7 @@ module Oddb2xml
|
|
953
968
|
}
|
954
969
|
}
|
955
970
|
end
|
956
|
-
Oddb2xml.log "build_article. Done #{idx} of #{@articles.size} articles"
|
971
|
+
Oddb2xml.log "build_article. Done #{idx} of #{@articles.size} articles " + ( @preparations_only.size > 0 ? ('. Only in preparations.xml '+ @preparations_only.join(' ')) : '')
|
957
972
|
Oddb2xml.add_hash(_builder.to_xml)
|
958
973
|
end
|
959
974
|
def build_fi
|
@@ -1108,6 +1123,7 @@ module Oddb2xml
|
|
1108
1123
|
elsif @items[de_idx[:pharmacode]] # BAG-XML (SL/LS)
|
1109
1124
|
10
|
1110
1125
|
elsif (de_idx[:migel] or # MiGel (xls)
|
1126
|
+
de_idx[:_type] == :preparations_xml or
|
1111
1127
|
de_idx[:_type] == :nonpharma) # MiGel (swissindex)
|
1112
1128
|
13
|
1113
1129
|
else
|
data/lib/oddb2xml/extractor.rb
CHANGED
@@ -68,11 +68,21 @@ module Oddb2xml
|
|
68
68
|
item[:pharmacodes] = []
|
69
69
|
item[:packages] = {} # pharmacode => package
|
70
70
|
seq.Packs.Pack.each do |pac|
|
71
|
+
if pac.SwissmedicNo8 && pac.SwissmedicNo8.length < 8
|
72
|
+
puts "BagXmlExtractor: Adding leading zeros for SwissmedicNo8 #{pac.SwissmedicNo8} BagDossierNo #{pac.BagDossierNo} PackId #{pac.PackId} #{item[:name_de]}"
|
73
|
+
pac.SwissmedicNo8 = pac.SwissmedicNo8.rjust(8, '0')
|
74
|
+
end
|
71
75
|
unless pac.GTIN
|
72
|
-
|
73
|
-
|
76
|
+
unless pac.SwissmedicNo8
|
77
|
+
puts "BagXmlExtractor: Skipping as missing GTIN in SwissmedicNo8 #{pac.SwissmedicNo8} BagDossierNo #{pac.BagDossierNo} PackId #{pac.PackId} #{item[:name_de]}. Skipping"
|
78
|
+
else
|
79
|
+
ean12 = '7680' + pac.SwissmedicNo8
|
80
|
+
pac.GTIN = (ean12 + Oddb2xml.calc_checksum(ean12))
|
81
|
+
puts "BagXmlExtractor: Setting missing GTIN #{pac.GTIN} in SwissmedicNo8 #{pac.SwissmedicNo8} BagDossierNo #{pac.BagDossierNo} PackId #{pac.PackId} #{item[:name_de]}."
|
82
|
+
end
|
74
83
|
end
|
75
84
|
ean = pac.GTIN.to_i
|
85
|
+
|
76
86
|
# packages
|
77
87
|
exf = {:price => '', :valid_date => '', :price_code => ''}
|
78
88
|
if pac.Prices and pac.Prices.ExFactoryPrice
|
@@ -89,7 +99,7 @@ module Oddb2xml
|
|
89
99
|
item[:packages][ean] = {
|
90
100
|
:ean => ean,
|
91
101
|
:swissmedic_category => (cat = pac.SwissmedicCategory) ? cat : '',
|
92
|
-
:swissmedic_number8 => (num = pac.SwissmedicNo8) ? num
|
102
|
+
:swissmedic_number8 => (num = pac.SwissmedicNo8) ? num : '',
|
93
103
|
:prices => { :exf_price => exf, :pub_price => pub },
|
94
104
|
}
|
95
105
|
# related all limitations
|
data/lib/oddb2xml/version.rb
CHANGED
data/spec/extractor_spec.rb
CHANGED
@@ -125,7 +125,7 @@ describe Oddb2xml::BagXmlExtractor do
|
|
125
125
|
expect(with_pharma[:packages].size).to eq(1)
|
126
126
|
expect(with_pharma[:packages].first[0]).to eq(Oddb2xml::THREE_TC_GTIN)
|
127
127
|
expect(with_pharma[:packages].first[1][:prices][:pub_price][:price]).to eq('205.3')
|
128
|
-
expect(@items.size).to eq(
|
128
|
+
expect(@items.size).to eq(5)
|
129
129
|
end
|
130
130
|
it "should handle pub_price for 7680620690084 correctly" do
|
131
131
|
@items = subject.to_hash
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oddb2xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|