oddb2xml 2.6.3 → 2.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8de23f42038eb80cc0f1b7468b9e5fa6e40274a1
4
- data.tar.gz: '0383eb0e96e8fa789dbf89e3f74129ce9fa95624'
2
+ SHA256:
3
+ metadata.gz: cc3e56a43eff7b85027dc12b927d57a8aebe943c6964108cb28cb430a1cfe2df
4
+ data.tar.gz: e9af1d5b625086d3ae824fd1dfc57b6ecb6da44a6e3b971a5fe3a4be5ccf6276
5
5
  SHA512:
6
- metadata.gz: 97430a7ecb08aaa1095277cc59c5372fa55be940f73f6aa82eee0346a0a06067090ff067d03d4b4d3c1eb006f708d1efcb7dc9808af0ee84e32c2011b1b273c0
7
- data.tar.gz: 3aa0b0ab8425522ee4f0f712895b18fc9c72ac3a859ee4a771cec5d268c49bb2fbf9455dbd3c1879d470c9eca03c28cba24e3a5f5f8dd2cbf460ae31c19bcf37
6
+ metadata.gz: bc2108a78bd1fef35651632cc57a9ddc245ae1859c41845004a575e291cdda718fb98d15e32055c1223d15055ab4952801452f558a56c1a6079989d9e012276b
7
+ data.tar.gz: 0eb25db55df9755a8f9762ec44bedbb1b63ec6d3619d5abc01d1360f7b1ef6203b1eaa752fc23b52bbcaea58091bff6e2c51245949bfa7c381e0f2e057216d97
data/History.txt CHANGED
@@ -1,3 +1,6 @@
1
+ === 2.6.4 / 14.08.2019
2
+ * Fix issue #35: Missing product with ATC code for 7680005850010 Varilrix when building Artikelstamm_V5
3
+
1
4
  === 2.6.3 / 01.07.2019
2
5
  * Use https://github.com/zdavatz/cpp2sqlite/blob/master/input/atc_codes_multi_lingual.txt instead of http://download.epha.ch/data/atc/atc.csv
3
6
 
@@ -859,7 +859,7 @@ module Oddb2xml
859
859
  @articles.sort! { |a,b| a[:ean13] <=> b[:ean13] }
860
860
  @articles.each do |obj|
861
861
  idx += 1
862
- Oddb2xml.log "build_article #{idx} of #{@articles.size} articles" if idx % 500 == 0
862
+ Oddb2xml.log "build_article #{obj[:ean13]}: #{idx} of #{@articles.size} articles" if idx % 500 == 0
863
863
  item = @items[obj[:ean13]]
864
864
  pac,no8 = nil,obj[:ean13].to_s[4..11] # BAG-XML(SL/LS)
865
865
  pack_info = nil
@@ -1449,7 +1449,7 @@ module Oddb2xml
1449
1449
  obj = @packs[no8] # obj not yet in refdata. Use data from swissmedic_package.xlsx
1450
1450
  end
1451
1451
  nr_items += 1
1452
- Oddb2xml.log "build_article #{nr_items} of #{gtins.size} articles" if nr_items % 5000 == 0
1452
+ Oddb2xml.log "build_artikelstamm #{ean13}: #{nr_items} of #{gtins.size} articles" if nr_items % 5000 == 0
1453
1453
  item = @items[ean13]
1454
1454
  pack_info = nil
1455
1455
  pack_info = @packs[no8] if no8 && /#{ean13}/.match(@packs[no8].to_s) # info from Packungen.xlsx from swissmedic_info
@@ -1509,7 +1509,7 @@ module Oddb2xml
1509
1509
  name_fr ||= (obj[:name_fr] + ', ' + obj[:desc_fr]).strip if obj[:name_fr]
1510
1510
  # ZuRorse has only german names
1511
1511
  name_fr ||= (item[:name_fr] + ', ' + item[:desc_fr]) if item
1512
- name_fr ||= '--missing--'
1512
+ name_fr ||= name
1513
1513
  xml.DSCRF(name_fr)
1514
1514
  xml.COMP do # Manufacturer
1515
1515
  xml.NAME obj[:company_name]
@@ -1558,11 +1558,13 @@ module Oddb2xml
1558
1558
  end if item && item[:deductible]
1559
1559
  prodno = Oddb2xml.getProdnoForEan13(pkg_gtin)
1560
1560
  xml.PRODNO prodno if prodno
1561
+ atc = package[:atc_code]
1562
+ atc ||= @refdata[pkg_gtin][:seq][:atc_code] if @refdata[pkg_gtin]
1561
1563
  csv = []
1562
1564
  @csv_file << [pkg_gtin, name, package[:unit], measure,
1563
1565
  pexf ? pexf : '',
1564
1566
  ppub ? ppub : '',
1565
- package[:prodno], package[:atc_code], package[:substance_swissmedic],
1567
+ prodno, atc, package[:substance_swissmedic],
1566
1568
  sequence[:org_gen_code], package[:ith_swissmedic],
1567
1569
  @items[pkg_gtin] ? 'SL' : '',
1568
1570
  ]
@@ -1658,18 +1660,20 @@ module Oddb2xml
1658
1660
  sequence ||= @products[ean][:seq] if @products[ean]
1659
1661
  next unless check_name(obj, :de)
1660
1662
  ppac = ((_ppac = @packs[ean.to_s[4..11]] and !_ppac[:is_tier]) ? _ppac : {})
1661
- unless ppac
1662
- ppac = @packs.find{|pac| pac.ean == ean }.first
1663
- end
1664
1663
  prodno = ppac[:prodno] if ppac[:prodno] and !ppac[:prodno].empty?
1665
1664
  prodno = obj[:pharmacode] if obj[:chapter70]
1665
+ myPack = @packs.values.find{ |x| x[:iksnr].to_i == obj[:seq][:swissmedic_number5].to_i } if obj[:seq]
1666
+ if myPack && !prodno
1667
+ prodno ||= myPack[:prodno]
1668
+ puts "Setting prodno #{prodno} for #{ean13} Varilrix"
1669
+ end
1666
1670
  next unless prodno
1667
1671
  next if emitted_prodno.index(prodno)
1668
1672
  sequence ||= @articles.find{|x| x[:ean13].eql?(ean)}
1669
1673
  unless obj[:chapter70]
1670
1674
  next unless sequence && (sequence[:name_de] || sequence[:desc_de])
1671
- if Oddb2xml.getEan13forProdno(prodno).size == 0
1672
- puts "No item found for prodno #{prodno} no8 #{obj[:no8]} #{sequence[:name_de]} "
1675
+ if Oddb2xml.getEan13forProdno(prodno).size == 0 && !obj[:no8].eql?(Oddb2xml.getNo8ForEan13(ean))
1676
+ puts "No item found for prodno #{prodno} no8 #{obj[:no8]} #{sequence[:name_de]}"
1673
1677
  next
1674
1678
  end
1675
1679
  end
@@ -319,6 +319,7 @@ module Oddb2xml
319
319
  Oddb2xml.setEan13forProdno(prodno, ean13)
320
320
  Oddb2xml.setEan13forNo8(no8, ean13)
321
321
  data[no8] = {
322
+ :iksnr => row[iksnr].value.to_i,
322
323
  :no8 => no8,
323
324
  :ean13 => ean13,
324
325
  :prodno => prodno,
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "2.6.3"
2
+ VERSION = "2.6.4"
3
3
  end
@@ -121,7 +121,7 @@ describe Oddb2xml::Builder do
121
121
  it 'should find price from Preparations.xml by setting' do
122
122
  expect(File.exists?(@elexis_v5_csv)).to eq true
123
123
  inhalt = File.open(@elexis_v5_csv, 'r+').read
124
- expected = %(7680658560014,Dibase 10'000 Tropfen 10000 IE/ml Fl 10 ml,,Flasche(n),5,9.25,,,,"",,SL)
124
+ expected = %(7680658560014,Dibase 10'000 Tropfen 10000 IE/ml Fl 10 ml,,Flasche(n),5,9.25,6585601,A11CC05,,"",,SL)
125
125
  expect(inhalt.index(expected)).to be > 0
126
126
  end
127
127
 
@@ -139,7 +139,7 @@ describe Oddb2xml::Builder do
139
139
  it 'should have a price for Lynparza' do
140
140
  expect(File.exists?(@elexis_v5_csv)).to eq true
141
141
  inhalt = File.open(@elexis_v5_csv, 'r+').read
142
- expect(inhalt.index('7680651600014,Lynparza Kaps 50 mg 448 Stk,,Kapsel(n),5562.48,5947.55,,,,"",,SL')).not_to be nil
142
+ expect(inhalt.index('7680651600014,Lynparza Kaps 50 mg 448 Stk,,Kapsel(n),5562.48,5947.55,6516001,L01XX46,,"",,S')).not_to be nil
143
143
  end
144
144
  it 'should trim the ean13 to 13 length' do
145
145
  gtin14 = "00040565124346"
@@ -214,23 +214,27 @@ describe Oddb2xml::Builder do
214
214
 
215
215
  it 'should contain DIBASE with phar' do
216
216
  expected = %(<ITEM PHARMATYPE="P">
217
- <GTIN>7680658570013</GTIN>
218
- <!--override with-->
217
+ <GTIN>7680658560014</GTIN>
218
+ <!--obsolete override-->
219
+ <PHAR>7199565</PHAR>
219
220
  <SALECD>A</SALECD>
220
- <DSCR>DIBASE 25'000, Lösung zum Einnehmen</DSCR>
221
- <DSCRF>--missing--</DSCRF>
221
+ <DSCR>Dibase 10'000 Tropfen 10000 IE/ml Fl 10 ml</DSCR>
222
+ <DSCRF>Dibase 10'000 gouttes 10000 UI/ml fl 10 ml</DSCRF>
222
223
  <COMP>
223
224
  <NAME>Gebro Pharma AG</NAME>
224
- <GLN/>
225
+ <GLN>7612053000000</GLN>
225
226
  </COMP>
227
+ <PEXF>5</PEXF>
228
+ <PPUB>9.25</PPUB>
226
229
  <PKG_SIZE>1</PKG_SIZE>
227
230
  <MEASURE>Flasche(n)</MEASURE>
228
231
  <MEASUREF>Flasche(n)</MEASUREF>
229
- <DOSAGE_FORM>Lösung</DOSAGE_FORM>
230
- <DOSAGE_FORMF>Solution</DOSAGE_FORMF>
232
+ <DOSAGE_FORM>orale Tropflösung</DOSAGE_FORM>
233
+ <SL_ENTRY>true</SL_ENTRY>
231
234
  <IKSCAT>D</IKSCAT>
232
- <PRODNO>6585701</PRODNO>
233
- </ITEM>)
235
+ <DEDUCTIBLE>10</DEDUCTIBLE>
236
+ <PRODNO>6585601</PRODNO>
237
+ </ITEM)
234
238
  expect(@inhalt.index(expected)).not_to be nil
235
239
  end
236
240
 
@@ -329,7 +333,7 @@ describe Oddb2xml::Builder do
329
333
  <DEDUCTIBLE>10</DEDUCTIBLE>
330
334
  <PRODNO>1610501</PRODNO>
331
335
  </ITEM>),
332
- 'item 7680161050743 100g ' =>
336
+ 'item 7680161050743 Hirudoid Creme 3 mg/g 100 g' =>
333
337
  %( <ITEM PHARMATYPE="P">
334
338
  <GTIN>7680161050743</GTIN>
335
339
  <PHAR>2731179</PHAR>
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.6.3
4
+ version: 2.6.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: 2019-07-01 00:00:00.000000000 Z
11
+ date: 2019-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -487,7 +487,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
487
487
  version: '0'
488
488
  requirements: []
489
489
  rubyforge_project:
490
- rubygems_version: 2.6.8
490
+ rubygems_version: 2.7.6
491
491
  signing_key:
492
492
  specification_version: 4
493
493
  summary: oddb2xml creates xml files.