class SharedSupplier < ApplicationRecord # connect to database from sharedLists-Application SharedSupplier.establish_connection(FoodsoftConfig[:shared_lists]) # set correct table_name in external DB self.table_name = 'suppliers' has_many :suppliers, -> { undeleted } has_many :shared_articles, :foreign_key => :supplier_id def find_article_by_number(order_number) # note that `shared_articles` uses number instead order_number cached_articles.detect { |a| a.number == order_number } end def cached_articles @cached_articles ||= shared_articles.all end # These set of attributes are used to autofill attributes of new supplier, # when created by import from shared supplier feature. def autofill_attributes whitelist = %w(name address phone fax email url delivery_days note) attributes.select { |k, _v| whitelist.include?(k) } end # return list of synchronisation methods available for this supplier def shared_sync_methods methods = [] methods += %w(all_available all_unavailable) if shared_articles.count < FoodsoftConfig[:shared_supplier_article_sync_limit] methods += %w(import) methods end end