ramaze.ch.oddb.org 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/LICENSE +339 -0
- data/Manifest.txt +285 -0
- data/README.txt +45 -0
- data/Rakefile +28 -0
- data/bin/admin +69 -0
- data/bin/exportd +63 -0
- data/bin/migrate +461 -0
- data/bin/oddbd +62 -0
- data/data/fulltext/data/dicts/french/fulltext.aff +1057 -0
- data/data/fulltext/data/dicts/french/fulltext.dict +91189 -0
- data/data/fulltext/data/dicts/french/fulltext.stop +135 -0
- data/data/fulltext/data/dicts/german/fulltext.aff +1233 -0
- data/data/fulltext/data/dicts/german/fulltext.dict +287574 -0
- data/data/fulltext/data/dicts/german/fulltext.stop +133 -0
- data/data/fulltext/data/german_compound/README +15 -0
- data/data/fulltext/data/german_compound/compound.pl +63 -0
- data/data/fulltext/data/german_compound/german.stop +20 -0
- data/data/fulltext/data/ispell-german-compound.tar.gz +0 -0
- data/data/fulltext/redist/dict_french/Makefile +12 -0
- data/data/fulltext/redist/dict_french/README.french +1 -0
- data/data/fulltext/redist/dict_french/dict_french.sql.in +7 -0
- data/data/fulltext/redist/dict_french/dict_snowball.c +56 -0
- data/data/fulltext/redist/dict_french/french_stem.c +1222 -0
- data/data/fulltext/redist/dict_french/french_stem.h +16 -0
- data/data/fulltext/redist/dict_french/subinclude.h +2 -0
- data/data/fulltext/redist/dict_german/Makefile +12 -0
- data/data/fulltext/redist/dict_german/README.german +1 -0
- data/data/fulltext/redist/dict_german/dict_german.sql.in +7 -0
- data/data/fulltext/redist/dict_german/dict_snowball.c +56 -0
- data/data/fulltext/redist/dict_german/german_stem.c +527 -0
- data/data/fulltext/redist/dict_german/german_stem.h +16 -0
- data/data/fulltext/redist/dict_german/subinclude.h +1 -0
- data/data/fulltext/redist/french_stem.c +1222 -0
- data/data/fulltext/redist/french_stem.h +16 -0
- data/data/fulltext/redist/german_stem.c +527 -0
- data/data/fulltext/redist/german_stem.h +16 -0
- data/lib/fixes/ruby19.rb +21 -0
- data/lib/fixes/selenium.rb +20 -0
- data/lib/fixes/singular.rb +8 -0
- data/lib/fixes/yaml.rb +13 -0
- data/lib/oddb.rb +11 -0
- data/lib/oddb/business/company.rb +18 -0
- data/lib/oddb/business/invoice.rb +75 -0
- data/lib/oddb/business/price.rb +60 -0
- data/lib/oddb/config.rb +73 -0
- data/lib/oddb/drugs.rb +16 -0
- data/lib/oddb/drugs/active_agent.rb +37 -0
- data/lib/oddb/drugs/atc.rb +53 -0
- data/lib/oddb/drugs/composition.rb +41 -0
- data/lib/oddb/drugs/ddd.rb +24 -0
- data/lib/oddb/drugs/dose.rb +107 -0
- data/lib/oddb/drugs/galenic_form.rb +21 -0
- data/lib/oddb/drugs/galenic_group.rb +17 -0
- data/lib/oddb/drugs/package.rb +87 -0
- data/lib/oddb/drugs/part.rb +56 -0
- data/lib/oddb/drugs/product.rb +25 -0
- data/lib/oddb/drugs/sequence.rb +61 -0
- data/lib/oddb/drugs/substance.rb +31 -0
- data/lib/oddb/drugs/substance_group.rb +13 -0
- data/lib/oddb/drugs/unit.rb +12 -0
- data/lib/oddb/export.rb +4 -0
- data/lib/oddb/export/csv.rb +89 -0
- data/lib/oddb/export/l10n_sessions.rb +30 -0
- data/lib/oddb/export/rss.rb +44 -0
- data/lib/oddb/export/server.rb +58 -0
- data/lib/oddb/export/xls.rb +119 -0
- data/lib/oddb/export/yaml.rb +123 -0
- data/lib/oddb/html/state/drugs/admin/package.rb +189 -0
- data/lib/oddb/html/state/drugs/admin/product.rb +56 -0
- data/lib/oddb/html/state/drugs/admin/sequence.rb +259 -0
- data/lib/oddb/html/state/drugs/ajax/explain_ddd_price.rb +19 -0
- data/lib/oddb/html/state/drugs/ajax/explain_price.rb +19 -0
- data/lib/oddb/html/state/drugs/ajax/global.rb +18 -0
- data/lib/oddb/html/state/drugs/ajax/package_infos.rb +19 -0
- data/lib/oddb/html/state/drugs/ajax/remote_infos.rb +19 -0
- data/lib/oddb/html/state/drugs/atc_browser.rb +39 -0
- data/lib/oddb/html/state/drugs/atc_guidelines.rb +21 -0
- data/lib/oddb/html/state/drugs/compare.rb +52 -0
- data/lib/oddb/html/state/drugs/download_export.rb +18 -0
- data/lib/oddb/html/state/drugs/fachinfo.rb +21 -0
- data/lib/oddb/html/state/drugs/feedback.rb +94 -0
- data/lib/oddb/html/state/drugs/global.rb +266 -0
- data/lib/oddb/html/state/drugs/init.rb +18 -0
- data/lib/oddb/html/state/drugs/login.rb +17 -0
- data/lib/oddb/html/state/drugs/package.rb +32 -0
- data/lib/oddb/html/state/drugs/patinfo.rb +21 -0
- data/lib/oddb/html/state/drugs/products.rb +51 -0
- data/lib/oddb/html/state/drugs/result.rb +125 -0
- data/lib/oddb/html/state/global.rb +165 -0
- data/lib/oddb/html/state/global_predefine.rb +17 -0
- data/lib/oddb/html/state/limit.rb +17 -0
- data/lib/oddb/html/state/login.rb +56 -0
- data/lib/oddb/html/state/paypal/checkout.rb +130 -0
- data/lib/oddb/html/state/paypal/collect.rb +46 -0
- data/lib/oddb/html/state/paypal/redirect.rb +18 -0
- data/lib/oddb/html/state/register_export.rb +38 -0
- data/lib/oddb/html/state/register_poweruser.rb +17 -0
- data/lib/oddb/html/state/viral/admin.rb +76 -0
- data/lib/oddb/html/state/viral/poweruser.rb +16 -0
- data/lib/oddb/html/util/annotated_list.rb +39 -0
- data/lib/oddb/html/util/know_it_all.rb +28 -0
- data/lib/oddb/html/util/known_user.rb +55 -0
- data/lib/oddb/html/util/lookandfeel.rb +554 -0
- data/lib/oddb/html/util/need_all_input.rb +29 -0
- data/lib/oddb/html/util/session.rb +88 -0
- data/lib/oddb/html/util/sort.rb +72 -0
- data/lib/oddb/html/util/unsaved_helper.rb +20 -0
- data/lib/oddb/html/util/validator.rb +54 -0
- data/lib/oddb/html/view/ajax/json.rb +22 -0
- data/lib/oddb/html/view/alpha_header.rb +28 -0
- data/lib/oddb/html/view/document.rb +126 -0
- data/lib/oddb/html/view/drugs/admin/package.rb +237 -0
- data/lib/oddb/html/view/drugs/admin/product.rb +104 -0
- data/lib/oddb/html/view/drugs/admin/sequence.rb +312 -0
- data/lib/oddb/html/view/drugs/ajax/explain_ddd_price.rb +87 -0
- data/lib/oddb/html/view/drugs/ajax/explain_price.rb +61 -0
- data/lib/oddb/html/view/drugs/ajax/package_infos.rb +105 -0
- data/lib/oddb/html/view/drugs/ajax/remote_infos.rb +44 -0
- data/lib/oddb/html/view/drugs/atc_browser.rb +68 -0
- data/lib/oddb/html/view/drugs/atc_guidelines.rb +94 -0
- data/lib/oddb/html/view/drugs/compare.rb +95 -0
- data/lib/oddb/html/view/drugs/download_export.rb +28 -0
- data/lib/oddb/html/view/drugs/fachinfo.rb +46 -0
- data/lib/oddb/html/view/drugs/feedback.rb +231 -0
- data/lib/oddb/html/view/drugs/init.rb +51 -0
- data/lib/oddb/html/view/drugs/legend.rb +24 -0
- data/lib/oddb/html/view/drugs/package.rb +398 -0
- data/lib/oddb/html/view/drugs/patinfo.rb +46 -0
- data/lib/oddb/html/view/drugs/products.rb +97 -0
- data/lib/oddb/html/view/drugs/result.rb +296 -0
- data/lib/oddb/html/view/drugs/search.rb +33 -0
- data/lib/oddb/html/view/drugs/template.rb +15 -0
- data/lib/oddb/html/view/foot.rb +52 -0
- data/lib/oddb/html/view/google.rb +23 -0
- data/lib/oddb/html/view/google_ads.rb +40 -0
- data/lib/oddb/html/view/head.rb +78 -0
- data/lib/oddb/html/view/limit.rb +109 -0
- data/lib/oddb/html/view/list.rb +59 -0
- data/lib/oddb/html/view/login.rb +38 -0
- data/lib/oddb/html/view/navigation.rb +67 -0
- data/lib/oddb/html/view/offset_header.rb +35 -0
- data/lib/oddb/html/view/paypal/collect.rb +84 -0
- data/lib/oddb/html/view/paypal/redirect.rb +51 -0
- data/lib/oddb/html/view/paypal/register_form.rb +106 -0
- data/lib/oddb/html/view/register_export.rb +29 -0
- data/lib/oddb/html/view/register_poweruser.rb +29 -0
- data/lib/oddb/html/view/rss/feedback.rb +64 -0
- data/lib/oddb/html/view/rss_preview.rb +54 -0
- data/lib/oddb/html/view/search.rb +104 -0
- data/lib/oddb/html/view/snapback.rb +24 -0
- data/lib/oddb/html/view/template.rb +56 -0
- data/lib/oddb/import/excel.rb +45 -0
- data/lib/oddb/import/import.rb +39 -0
- data/lib/oddb/import/rtf.rb +410 -0
- data/lib/oddb/import/whocc.rb +173 -0
- data/lib/oddb/import/xml.rb +15 -0
- data/lib/oddb/model.rb +179 -0
- data/lib/oddb/persistence/odba.rb +33 -0
- data/lib/oddb/persistence/odba/business/company.rb +13 -0
- data/lib/oddb/persistence/odba/business/invoice.rb +15 -0
- data/lib/oddb/persistence/odba/drugs/atc.rb +15 -0
- data/lib/oddb/persistence/odba/drugs/galenic_form.rb +18 -0
- data/lib/oddb/persistence/odba/drugs/galenic_group.rb +13 -0
- data/lib/oddb/persistence/odba/drugs/package.rb +25 -0
- data/lib/oddb/persistence/odba/drugs/product.rb +13 -0
- data/lib/oddb/persistence/odba/drugs/sequence.rb +21 -0
- data/lib/oddb/persistence/odba/drugs/substance.rb +21 -0
- data/lib/oddb/persistence/odba/drugs/substance_group.rb +13 -0
- data/lib/oddb/persistence/odba/drugs/unit.rb +13 -0
- data/lib/oddb/persistence/odba/export.rb +26 -0
- data/lib/oddb/persistence/odba/model.rb +68 -0
- data/lib/oddb/persistence/odba/regulatory/authority.rb +13 -0
- data/lib/oddb/persistence/odba/regulatory/registration.rb +13 -0
- data/lib/oddb/persistence/odba/text/document.rb +11 -0
- data/lib/oddb/persistence/odba/util/code.rb +11 -0
- data/lib/oddb/persistence/odba/util/m10l_document.rb +13 -0
- data/lib/oddb/persistence/og.rb +16 -0
- data/lib/oddb/persistence/og/drugs/composition.rb +14 -0
- data/lib/oddb/persistence/og/drugs/product.rb +14 -0
- data/lib/oddb/persistence/og/drugs/sequence.rb +15 -0
- data/lib/oddb/persistence/og/model.rb +25 -0
- data/lib/oddb/persistence/og/util/multilingual.rb +13 -0
- data/lib/oddb/redist/rtf_tools/reader.rb +139 -0
- data/lib/oddb/regulatory/authority.rb +14 -0
- data/lib/oddb/regulatory/registration.rb +15 -0
- data/lib/oddb/remote/business/company.rb +23 -0
- data/lib/oddb/remote/drugs/active_agent.rb +27 -0
- data/lib/oddb/remote/drugs/atc.rb +32 -0
- data/lib/oddb/remote/drugs/dose.rb +8 -0
- data/lib/oddb/remote/drugs/galenic_form.rb +25 -0
- data/lib/oddb/remote/drugs/package.rb +126 -0
- data/lib/oddb/remote/drugs/part.rb +30 -0
- data/lib/oddb/remote/drugs/product.rb +19 -0
- data/lib/oddb/remote/drugs/sequence.rb +46 -0
- data/lib/oddb/remote/drugs/substance.rb +20 -0
- data/lib/oddb/remote/drugs/unit.rb +19 -0
- data/lib/oddb/remote/object.rb +36 -0
- data/lib/oddb/remote/text/document.rb +20 -0
- data/lib/oddb/remote/util/m10l_document.rb +22 -0
- data/lib/oddb/text/chapter.rb +27 -0
- data/lib/oddb/text/document.rb +43 -0
- data/lib/oddb/text/format.rb +37 -0
- data/lib/oddb/text/paragraph.rb +58 -0
- data/lib/oddb/text/picture.rb +93 -0
- data/lib/oddb/text/table.rb +68 -0
- data/lib/oddb/util.rb +8 -0
- data/lib/oddb/util/annotated_list.rb +37 -0
- data/lib/oddb/util/code.rb +69 -0
- data/lib/oddb/util/comparison.rb +36 -0
- data/lib/oddb/util/exporter.rb +8 -0
- data/lib/oddb/util/feedback.rb +23 -0
- data/lib/oddb/util/ipn.rb +48 -0
- data/lib/oddb/util/m10l_document.rb +38 -0
- data/lib/oddb/util/mail.rb +73 -0
- data/lib/oddb/util/money.rb +60 -0
- data/lib/oddb/util/multilingual.rb +70 -0
- data/lib/oddb/util/quanty.rb +4 -0
- data/lib/oddb/util/quanty/fact.rb +229 -0
- data/lib/oddb/util/quanty/main.rb +160 -0
- data/lib/oddb/util/quanty/parse.rb +853 -0
- data/lib/oddb/util/quanty/units.dump +0 -0
- data/lib/oddb/util/server.rb +117 -0
- data/lib/oddb/util/updater.rb +41 -0
- data/lib/oddb/util/ydim.rb +110 -0
- data/lib/oddb/util/yus.rb +46 -0
- data/test/business/test_company.rb +29 -0
- data/test/business/test_price.rb +46 -0
- data/test/drugs/test_active_agent.rb +53 -0
- data/test/drugs/test_atc.rb +54 -0
- data/test/drugs/test_composition.rb +88 -0
- data/test/drugs/test_ddd.rb +22 -0
- data/test/drugs/test_dose.rb +190 -0
- data/test/drugs/test_galenic_form.rb +41 -0
- data/test/drugs/test_package.rb +173 -0
- data/test/drugs/test_part.rb +32 -0
- data/test/drugs/test_product.rb +31 -0
- data/test/drugs/test_sequence.rb +140 -0
- data/test/drugs/test_substance.rb +51 -0
- data/test/drugs/test_substance_group.rb +27 -0
- data/test/export/test_rss.rb +94 -0
- data/test/export/test_server.rb +117 -0
- data/test/export/test_xls.rb +152 -0
- data/test/export/test_yaml.rb +120 -0
- data/test/import/data/html/whocc/A.html +56 -0
- data/test/import/data/html/whocc/A03.html +48 -0
- data/test/import/data/html/whocc/A03AB.html +48 -0
- data/test/import/data/html/whocc/A06AA.html +47 -0
- data/test/import/data/html/whocc/C03.html +47 -0
- data/test/import/data/html/whocc/login.html +77 -0
- data/test/import/data/xml/ATC_2006.xml +47 -0
- data/test/import/data/xml/ATC_2006_ddd.xml +35 -0
- data/test/import/test_excel.rb +34 -0
- data/test/import/test_rtf.rb +40 -0
- data/test/import/test_whocc.rb +315 -0
- data/test/remote/drugs/test_active_agent.rb +36 -0
- data/test/selenium/selenium-server.jar +0 -0
- data/test/selenium/test_atc_browser.rb +122 -0
- data/test/selenium/test_atc_guidelines.rb +96 -0
- data/test/selenium/test_collect.rb +138 -0
- data/test/selenium/test_compare.rb +206 -0
- data/test/selenium/test_fachinfo.rb +130 -0
- data/test/selenium/test_feedback.rb +196 -0
- data/test/selenium/test_init.rb +52 -0
- data/test/selenium/test_limit.rb +305 -0
- data/test/selenium/test_login.rb +67 -0
- data/test/selenium/test_package.rb +512 -0
- data/test/selenium/test_patinfo.rb +131 -0
- data/test/selenium/test_product.rb +80 -0
- data/test/selenium/test_products.rb +142 -0
- data/test/selenium/test_search.rb +715 -0
- data/test/selenium/test_sequence.rb +543 -0
- data/test/selenium/unit.rb +185 -0
- data/test/stub/http_server.rb +169 -0
- data/test/stub/model.rb +173 -0
- data/test/suite.rb +15 -0
- data/test/test_model.rb +83 -0
- data/test/util/test_code.rb +74 -0
- data/test/util/test_ipn.rb +117 -0
- data/test/util/test_mail.rb +86 -0
- data/test/util/test_multilingual.rb +97 -0
- data/test/util/test_server.rb +48 -0
- data/test/util/test_updater.rb +353 -0
- data/test/util/test_ydim.rb +115 -0
- data/test/util/test_yus.rb +79 -0
- metadata +418 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
/* This file was generated automatically by the Snowball to ANSI C compiler */
|
3
|
+
|
4
|
+
#ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
#endif
|
7
|
+
|
8
|
+
extern struct SN_env * german_create_env(void);
|
9
|
+
extern void german_close_env(struct SN_env * z);
|
10
|
+
|
11
|
+
extern int german_stem(struct SN_env * z);
|
12
|
+
|
13
|
+
#ifdef __cplusplus
|
14
|
+
}
|
15
|
+
#endif
|
16
|
+
|
data/lib/fixes/ruby19.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Fixes::Ruby19 -- de.oddb.org -- 19.06.2009 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'encoding/character/utf-8'
|
6
|
+
rescue LoadError
|
7
|
+
begin
|
8
|
+
class Encoding
|
9
|
+
class Character
|
10
|
+
class UTF8 < String
|
11
|
+
module Methods
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
def u str
|
17
|
+
str
|
18
|
+
end
|
19
|
+
rescue TypeError # Ruby 1.8
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'selenium/client'
|
4
|
+
|
5
|
+
module Selenium
|
6
|
+
module Client
|
7
|
+
module Protocol
|
8
|
+
def remote_control_command(verb, args=[])
|
9
|
+
timeout(@default_timeout_in_seconds) do
|
10
|
+
status, response = http_post(http_request_for(verb, args))
|
11
|
+
if response && encoding = Encoding.default_external
|
12
|
+
response.force_encoding encoding
|
13
|
+
end
|
14
|
+
raise Selenium::CommandError, response unless status == "OK"
|
15
|
+
response
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/fixes/yaml.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Fix for Yaml -- de.oddb.org -- 01.11.2007 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'yaml'
|
5
|
+
|
6
|
+
## FIXME: the following works around Character::Encoding::UTF8 hanging when
|
7
|
+
# yaml's String#is_binary_data? calls self.count("\x00")
|
8
|
+
class String
|
9
|
+
def is_binary_data?
|
10
|
+
( self.count( "^ -~", "^\r\n" ) / self.size > 0.3 \
|
11
|
+
|| self.include?( "\x00" ) ) unless empty?
|
12
|
+
end
|
13
|
+
end
|
data/lib/oddb.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# ODDB -- de.oddb.org -- 27.10.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
module ODDB
|
5
|
+
VERSION = '1.0.0'
|
6
|
+
# File.read(File.expand_path('../.git/refs/heads/master',
|
7
|
+
# File.dirname(__FILE__)))
|
8
|
+
class << self
|
9
|
+
attr_accessor :auth, :config, :logger, :persistence, :server, :exporter
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# ODDB::Business::Company -- de.oddb.org -- 22.11.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'oddb/model'
|
5
|
+
|
6
|
+
module ODDB
|
7
|
+
module Business
|
8
|
+
class Company < Model
|
9
|
+
has_many :products, delegates(:packages)
|
10
|
+
multilingual :name
|
11
|
+
def packages
|
12
|
+
products.inject([]) { |memo, prod|
|
13
|
+
memo.concat(prod.packages)
|
14
|
+
}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Util::Invoice -- de.oddb.org -- 21.01.2008 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'oddb/model'
|
5
|
+
|
6
|
+
module ODDB
|
7
|
+
module Business
|
8
|
+
class Invoice < Model
|
9
|
+
has_many :items
|
10
|
+
attr_accessor :yus_name, :ydim_id, :status, :ipn, :currency
|
11
|
+
attr_reader :time
|
12
|
+
class Item
|
13
|
+
attr_reader :type, :text, :quantity, :price, :vat, :time
|
14
|
+
attr_accessor :expiry_time
|
15
|
+
def initialize(type, text, quantity, unit, price)
|
16
|
+
@type, @text, @quantity, @unit, @price \
|
17
|
+
= type, text, quantity.to_i, unit.to_s, price.to_f
|
18
|
+
@time = Time.now
|
19
|
+
end
|
20
|
+
def expired?
|
21
|
+
@expiry_time && @expiry_time < Time.now
|
22
|
+
end
|
23
|
+
def total_brutto
|
24
|
+
total_netto + vat
|
25
|
+
end
|
26
|
+
def total_netto
|
27
|
+
@price * @quantity
|
28
|
+
end
|
29
|
+
def vat
|
30
|
+
total_netto * ODDB.config.vat / 100
|
31
|
+
end
|
32
|
+
def ydim_data
|
33
|
+
{
|
34
|
+
:expiry_time => @expiry_time,
|
35
|
+
:price => @price,
|
36
|
+
:quantity => @quantity,
|
37
|
+
:text => @text,
|
38
|
+
:time => @time,
|
39
|
+
:unit => @unit,
|
40
|
+
}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
def initialize
|
44
|
+
@items = []
|
45
|
+
@salt = generate_salt
|
46
|
+
@time = Time.now
|
47
|
+
@yus_name = ''
|
48
|
+
@currency = 'EUR'
|
49
|
+
end
|
50
|
+
def add(*args)
|
51
|
+
add_item Item.new(*args)
|
52
|
+
end
|
53
|
+
def id
|
54
|
+
@id ||= Digest::MD5.hexdigest @time.strftime("%c") << @salt << @yus_name
|
55
|
+
end
|
56
|
+
def paid_for?(text)
|
57
|
+
@status == 'completed' && @items.any? { |item| item.text == text }
|
58
|
+
end
|
59
|
+
def total_brutto
|
60
|
+
@items.inject(Util::Money.new(0)) { |memo, item|
|
61
|
+
memo + item.total_brutto
|
62
|
+
}
|
63
|
+
end
|
64
|
+
def types
|
65
|
+
@items.collect { |item| item.type }.compact.uniq
|
66
|
+
end
|
67
|
+
private
|
68
|
+
def generate_salt
|
69
|
+
salt = ''
|
70
|
+
8.times { salt << rand(255).chr }
|
71
|
+
salt
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Business::Price -- ch.oddb.org -- 24.07.2009 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
module ODDB
|
5
|
+
module Business
|
6
|
+
class Price
|
7
|
+
include Comparable
|
8
|
+
attr_reader :country, :type, :values
|
9
|
+
def initialize type=nil, country=nil, amount=nil
|
10
|
+
@country = country.to_s.upcase
|
11
|
+
@type = type.to_s.downcase
|
12
|
+
@values = []
|
13
|
+
self.value = amount if amount
|
14
|
+
end
|
15
|
+
def at time=Time.now
|
16
|
+
@values.find do |price| price.valid_from <= time end
|
17
|
+
end
|
18
|
+
def country=(country)
|
19
|
+
@country = country.to_s.upcase
|
20
|
+
end
|
21
|
+
def current
|
22
|
+
at Time.now
|
23
|
+
end
|
24
|
+
def is_for? type, country
|
25
|
+
@type == type.to_s.downcase && @country == country.to_s.upcase
|
26
|
+
end
|
27
|
+
def method_missing *args, &block
|
28
|
+
current.send *args, &block
|
29
|
+
end
|
30
|
+
def to_f
|
31
|
+
current.to_f
|
32
|
+
end
|
33
|
+
def to_s
|
34
|
+
current.to_s
|
35
|
+
end
|
36
|
+
def type=(type)
|
37
|
+
@type = type.to_s.downcase
|
38
|
+
end
|
39
|
+
def value=(args)
|
40
|
+
money, valid_from, _ = args
|
41
|
+
if money.is_a?(Numeric)
|
42
|
+
money = Util::Money.new money.to_f
|
43
|
+
if valid_from.is_a?(Time)
|
44
|
+
money.valid_from = valid_from
|
45
|
+
end
|
46
|
+
elsif !money.is_a?(Util::Money)
|
47
|
+
raise ArgumentError,
|
48
|
+
"Cannot set the value of a Price to '#{money}'. Only Numeric or Money are allowed"
|
49
|
+
end
|
50
|
+
cur = at(money.valid_from)
|
51
|
+
return cur if cur == money
|
52
|
+
@values = @values.push(money).sort_by(&:valid_from).reverse
|
53
|
+
money
|
54
|
+
end
|
55
|
+
def <=>(other)
|
56
|
+
current <=> other
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/oddb/config.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# @config -- de.oddb.org -- 08.09.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'rclconf'
|
5
|
+
require 'oddb'
|
6
|
+
|
7
|
+
module ODDB
|
8
|
+
oddb_dir = File.expand_path('..', ENV['DOCUMENT_ROOT'] || './doc')
|
9
|
+
default_dir = File.expand_path('etc', oddb_dir)
|
10
|
+
default_config_files = [
|
11
|
+
File.join(default_dir, 'oddb.yml'),
|
12
|
+
'/etc/oddb/oddb.yml',
|
13
|
+
]
|
14
|
+
defaults = {
|
15
|
+
'admins' => [],
|
16
|
+
'auth_domain' => 'org.oddb.de',
|
17
|
+
'auth_server' => 'drbssl://localhost:9997',
|
18
|
+
'config' => default_config_files,
|
19
|
+
'country' => 'CH',
|
20
|
+
'credentials' => {},
|
21
|
+
'currency_rates' => 'druby://localhost:10999',
|
22
|
+
'data_dir' => File.expand_path('data', oddb_dir),
|
23
|
+
'db_name' => 'oddb',
|
24
|
+
'db_user' => 'oddb',
|
25
|
+
'db_auth' => 'oddb',
|
26
|
+
'db_backend' => :psql,
|
27
|
+
'debug_recipients' => [],
|
28
|
+
'dojo_debug' => false,
|
29
|
+
'default_dstype' => 'compare',
|
30
|
+
'export_hour' => 4,
|
31
|
+
'invoice_server' => 'druby://localhost:12375',
|
32
|
+
'pharmacy_percentage' => 3,
|
33
|
+
'pharmacy_premium' => 8.1,
|
34
|
+
'http_server' => 'http://localhost',
|
35
|
+
'log_file' => STDERR,
|
36
|
+
'log_file_export' => STDERR,
|
37
|
+
'log_level' => 'INFO',
|
38
|
+
'log_level_export' => 'INFO',
|
39
|
+
'mail_charset' => 'utf8',
|
40
|
+
'mail_from' => 'update@oddb.org',
|
41
|
+
'mail_invoice_from' => 'ch.ODDB.org" ipn@oddb.org',
|
42
|
+
'mail_invoice_smtp' => 'ipn@oddb.org',
|
43
|
+
'oddb_dir' => oddb_dir,
|
44
|
+
'query_limit' => 5,
|
45
|
+
'query_limit_phase' => 24 * 60 * 60,
|
46
|
+
'payment_period' => 30,
|
47
|
+
'paypal_server' => 'www.paypal.com',
|
48
|
+
'paypal_receiver' => nil,
|
49
|
+
'persistence' => 'odba',
|
50
|
+
'prices' => {
|
51
|
+
'org.oddb.de.export.cvs' => 0.16,
|
52
|
+
'org.oddb.de.view.365' => 400,
|
53
|
+
'org.oddb.de.view.30' => 50,
|
54
|
+
'org.oddb.de.view.1' => 5,
|
55
|
+
},
|
56
|
+
'remote_databases' => [],
|
57
|
+
'run_exporter' => true,
|
58
|
+
'run_updater' => true,
|
59
|
+
'server_name' => 'ch.oddb.org',
|
60
|
+
'server_url' => 'druby://localhost:11000',
|
61
|
+
'server_url_export' => 'druby://localhost:11001',
|
62
|
+
'session_timeout' => 3600,
|
63
|
+
'smtp_from' => 'update@oddb.org',
|
64
|
+
'smtp_server' => 'localhost',
|
65
|
+
'update_hour' => 2,
|
66
|
+
'var' => File.expand_path('var', oddb_dir),
|
67
|
+
'vat' => 19,
|
68
|
+
}
|
69
|
+
|
70
|
+
config = RCLConf::RCLConf.new(ARGV, defaults)
|
71
|
+
config.load(config.config)
|
72
|
+
@config = config
|
73
|
+
end
|
data/lib/oddb/drugs.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Drugs -- de.oddb.org -- 21.11.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require "oddb/drugs/active_agent"
|
5
|
+
require "oddb/drugs/atc"
|
6
|
+
require "oddb/drugs/composition"
|
7
|
+
require "oddb/drugs/ddd"
|
8
|
+
require "oddb/drugs/dose"
|
9
|
+
require "oddb/drugs/galenic_form"
|
10
|
+
require "oddb/drugs/package"
|
11
|
+
require "oddb/drugs/part"
|
12
|
+
require "oddb/drugs/product"
|
13
|
+
require "oddb/drugs/sequence"
|
14
|
+
require "oddb/drugs/substance"
|
15
|
+
require "oddb/drugs/substance_group"
|
16
|
+
require "oddb/drugs/unit"
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Drugs::ActiveAgent -- de.oddb.org -- 07.11.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'oddb/model'
|
5
|
+
require 'oddb/drugs/dose'
|
6
|
+
|
7
|
+
module ODDB
|
8
|
+
module Drugs
|
9
|
+
class ActiveAgent < Model
|
10
|
+
include Comparable
|
11
|
+
belongs_to :substance
|
12
|
+
belongs_to :composition, delegates(:packages)
|
13
|
+
attr_accessor :dose, :chemical_equivalence
|
14
|
+
def initialize(substance, dose, unit="mg")
|
15
|
+
@substance = substance
|
16
|
+
if(dose.is_a?(Dose))
|
17
|
+
@dose = dose
|
18
|
+
else
|
19
|
+
@dose = Dose.new(dose, unit)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
def to_s(language=:de)
|
23
|
+
[@substance.name.send(language), @dose].join(' ')
|
24
|
+
end
|
25
|
+
def <=>(other)
|
26
|
+
[@substance, @dose] <=> [other.substance, other.dose]
|
27
|
+
end
|
28
|
+
def ==(other)
|
29
|
+
other.is_a?(ActiveAgent) \
|
30
|
+
&& ([@substance, @dose] == [other.substance, other.dose] \
|
31
|
+
|| @chemical_equivalence == other \
|
32
|
+
|| ((other = other.chemical_equivalence) && self == other)) \
|
33
|
+
|| false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Drugs::Atc -- de.oddb.org -- 17.11.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'oddb/model'
|
5
|
+
|
6
|
+
module ODDB
|
7
|
+
module Drugs
|
8
|
+
class Atc < Model
|
9
|
+
has_many :ddds, on_delete(:cascade)
|
10
|
+
has_many :sequences, delegates(:packages)
|
11
|
+
attr_reader :code
|
12
|
+
multilingual :name
|
13
|
+
multilingual :guidelines
|
14
|
+
multilingual :ddd_guidelines
|
15
|
+
def initialize(code)
|
16
|
+
@code = code
|
17
|
+
end
|
18
|
+
def interesting?
|
19
|
+
!(ddds.empty? && guidelines.empty? && ddd_guidelines.empty?)
|
20
|
+
end
|
21
|
+
def level
|
22
|
+
case len = @code.length
|
23
|
+
when 7
|
24
|
+
5
|
25
|
+
when 1
|
26
|
+
len
|
27
|
+
else
|
28
|
+
len - 1
|
29
|
+
end
|
30
|
+
end
|
31
|
+
def parent
|
32
|
+
Atc.find_by_code(parent_code)
|
33
|
+
end
|
34
|
+
def parent_code
|
35
|
+
case level
|
36
|
+
when 2
|
37
|
+
@code[0,1]
|
38
|
+
when 3..5
|
39
|
+
@code[0,level]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
def products
|
43
|
+
sequences.collect { |sequence| sequence.product }.uniq
|
44
|
+
end
|
45
|
+
def to_s
|
46
|
+
@code.to_s
|
47
|
+
end
|
48
|
+
def <=>(other)
|
49
|
+
@code <=> other.code
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Drugs::Composition -- de.oddb.org -- 01.09.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'oddb/model'
|
5
|
+
require 'oddb/drugs/dose'
|
6
|
+
|
7
|
+
module ODDB
|
8
|
+
module Drugs
|
9
|
+
class Composition < Model
|
10
|
+
attr_accessor :galenic_form, :equivalence_factor
|
11
|
+
belongs_to :sequence, delegates(:packages)
|
12
|
+
has_many :active_agents, on_delete(:cascade)
|
13
|
+
has_many :parts
|
14
|
+
def active_agent(substance)
|
15
|
+
active_agents.find { |agent| agent.substance == substance }
|
16
|
+
end
|
17
|
+
def doses
|
18
|
+
active_agents.collect { |agent| agent.dose }
|
19
|
+
end
|
20
|
+
def include?(substance, dose, unit=nil)
|
21
|
+
unless(dose.is_a?(Drugs::Dose))
|
22
|
+
dose = Drugs::Dose.new(dose, unit)
|
23
|
+
end
|
24
|
+
active_agents.any? { |act|
|
25
|
+
act.substance == substance && act.dose == dose
|
26
|
+
}
|
27
|
+
end
|
28
|
+
def substances
|
29
|
+
active_agents.collect { |agent| agent.substance }
|
30
|
+
end
|
31
|
+
def to_s(language=:de)
|
32
|
+
active_agents.collect { |agent| agent.to_s(language) }.join(', ')
|
33
|
+
end
|
34
|
+
def ==(other)
|
35
|
+
other.is_a?(Composition) \
|
36
|
+
&& @galenic_form == other.galenic_form \
|
37
|
+
&& active_agents.sort == other.active_agents.sort
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|