diff --git a/src/model/narcotic.rb b/src/model/narcotic.rb index 521cdd3..85d77a0 100644 --- a/src/model/narcotic.rb +++ b/src/model/narcotic.rb @@ -1,6 +1,7 @@ #!/usr/bin/env ruby # encoding: utf-8 -# Narcotic -- oddb -- 04.11.2005 -- ffricker@ywesee.com +# ODDB::Narcotic -- oddb.org -- 17.01.2012 -- mhatakeyama@ywesee.com +# ODDB::Narcotic -- oddb.org -- 04.11.2005 -- ffricker@ywesee.com require 'util/persistence' require 'util/language' @@ -8,6 +9,11 @@ require 'model/package_observer' require 'model/text' module ODDB + class Narcotic2 + include Persistence + include Language + attr_accessor :category, :eancode + end class Narcotic include Persistence include PackageObserver diff --git a/src/plugin/narcotic.rb b/src/plugin/narcotic.rb index 137901d..5a2fd4c 100644 --- a/src/plugin/narcotic.rb +++ b/src/plugin/narcotic.rb @@ -157,6 +157,7 @@ module ODDB [ "Updated packages Narcotic flag(true): #{@update_bm_flag}", "Updated packages Category(A+): #{@update_ikscat}", + "Created narcotics: #{@new_narcotics}", ].join("\n") end def report_text(row) @@ -228,6 +229,7 @@ module ODDB if File.exists?(path) @update_bm_flag = 0 @update_ikscat = 0 + @new_narcotics = 0 workbook = Spreadsheet.open(path) workbook.worksheet(0).each do |row| iksnr = ikscd = ikscat = nil @@ -236,6 +238,7 @@ module ODDB ikscd = items[3] end if reg = @app.registration(iksnr) and pac = reg.package(ikscd) + # update package values = {} unless pac.bm_flag #pac.bm_flag = true @@ -248,6 +251,20 @@ module ODDB @update_ikscat += 1 end @app.update(pac.pointer, values, :narcotic) + + # update narcotics + values = {} + if category = row[8] + values.store(:category, category) + end + values.store(:eancode, pac.barcode) + pointer = if narc = @app.narcotic_by_eancode(pac.barcode) + narc.pointer + else + @new_narcotics += 1 + Persistence::Pointer.new(:narcotic).creator + end + @app.update(pointer, values, :swissmedic) end end end diff --git a/src/util/oddbapp.rb b/src/util/oddbapp.rb index 172a622..b998d6b 100644 --- a/src/util/oddbapp.rb +++ b/src/util/oddbapp.rb @@ -1,6 +1,6 @@ #!/usr/bin/env ruby # encoding: utf-8 -# OddbApp -- oddb.org -- 13.01.2012 -- mhatakeyama@ywesee.com +# OddbApp -- oddb.org -- 17.01.2012 -- mhatakeyama@ywesee.com # OddbApp -- oddb.org -- 21.06.2010 -- hwyss@ywesee.com require 'yaml' @@ -380,7 +380,8 @@ class OddbPrevalence @minifis.store(minifi.oid, minifi) end def create_narcotic - narc = ODDB::Narcotic.new + #narc = ODDB::Narcotic.new + narc = ODDB::Narcotic2.new @narcotics.store(narc.oid, narc) end def create_orphaned_fachinfo @@ -441,6 +442,12 @@ class OddbPrevalence def analysis_count @analysis_count ||= analysis_positions.size end + def delete_all_narcotics + @narcotics.values.each do |narc| + delete(narc.pointer) + end + @narcotics.odba_isolated_store + end def delete_all_analysis_group analysis_positions.each do |pos| delete(pos.pointer) @@ -678,6 +685,11 @@ class OddbPrevalence @narcotics.values.find do |narc| narc.swissmedic_codes.include?(smcd) end end end + def narcotic_by_eancode(eancode) + @narcotics.values.find do |narc| + narc.eancode == eancode + end + end def narcotics_count @narcotics.size end