oddb2xml 2.6.3 → 2.6.4

Sign up to get free protection for your applications and to get access to all the features.
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.