diff --git a/ext/export/src/oddbdat.rb b/ext/export/src/oddbdat.rb index cb16cde..6fc9cae 100644 --- a/ext/export/src/oddbdat.rb +++ b/ext/export/src/oddbdat.rb @@ -420,7 +420,8 @@ module ODDB 11 => galform, 12 => conc, 13 => unit, - 16 => @package.parts.first.multi, + #16 => @package.parts.first.multi, + 16 => @package.parts.first ? @package.parts.first.multi : '', 17 => comform, 18 => qty, 19 => qty_unit, diff --git a/src/model/package.rb b/src/model/package.rb index 718233b..7b028a3 100644 --- a/src/model/package.rb +++ b/src/model/package.rb @@ -131,7 +131,7 @@ module ODDB comparables.uniq end def comparable_size - @parts.collect { |part| part.comparable_size }.inject { |a, b| a + b } + @parts.collect { |part| part.comparable_size }.inject{ |a, b| a + b } or raise RuntimeError rescue RuntimeError @parts.inject(Dose.new(0)) { |comp, part| ODDB::Dose.new(comp.qty + part.comparable_size.qty) diff --git a/src/plugin/oddbdat_export.rb b/src/plugin/oddbdat_export.rb index 8710f00..a942f79 100644 --- a/src/plugin/oddbdat_export.rb +++ b/src/plugin/oddbdat_export.rb @@ -47,7 +47,14 @@ class OddbDatExport < ODDB::Plugin LimTxtTable, EanTable ] ids = [] - @app.each_package { |pac| ids.push(pac.odba_id) } + dose_missing_list = [] + @app.each_package { |pac| + ids.push(pac.odba_id) + if pac.parts.empty? + dose_missing_list.push([pac.basename, pac.iksnr, pac.sequence.seqnr, pac.ikscd]) + end + } + files += EXPORT_SERVER.export_oddbdat(ids, EXPORT_DIR, package_tables) # codes table @@ -65,9 +72,12 @@ class OddbDatExport < ODDB::Plugin # readme files += EXPORT_SERVER.export_oddbdat(nil, EXPORT_DIR, [Readme]) - + # compress EXPORT_SERVER.compress_many(EXPORT_DIR, 'oddbdat', files) + + # warning + return dose_missing_list end def export_fachinfos # fachinfo table diff --git a/src/util/exporter.rb b/src/util/exporter.rb index 23571e2..2bf6cfb 100644 --- a/src/util/exporter.rb +++ b/src/util/exporter.rb @@ -145,9 +145,10 @@ module ODDB sleep(30) end def export_oddbdat + dose_missing_list = [] safe_export 'oddbdat' do exporter = OdbaExporter::OddbDatExport.new(@app) - exporter.export + dose_missing_list = exporter.export EXPORT_SERVER.clear sleep(30) run_on_weekday(1) { @@ -155,6 +156,22 @@ module ODDB EXPORT_SERVER.clear sleep(30) } + + # here to raise warning if package.parts is empty + if !dose_missing_list.empty? + log = Log.new(@@today) + log.report = [ + "Warning: Dose data (ODDB::Package.parts, Array of ODDB::Dose instances) is empty.", + "Message: export_oddbdat succeeded but the following package(s) do not have Dose data.", + "Package(s):", + dose_missing_list.collect do |list| + list[0].to_s + ", " + \ + "http://#{SERVER_NAME}/de/gcc/resolve/pointer/%3A!registration%2C" + list[1].to_s + \ + "!sequence%2C" + list[2].to_s + "!package%2C" + list[3].to_s + ".\n" + end + ].join("\n") + log.notify("Warning Export: oddbdat") + end end end def export_pdf