Changed behaviour of acts_as_paraniod. Finder wrapper removed an replaced by simple named_scope 'without_deleted'.

This commit is contained in:
Benjamin Meichsner 2009-02-11 15:23:59 +01:00
parent cd9636a650
commit 325d47b22f
18 changed files with 218 additions and 136 deletions

View file

@ -26,7 +26,7 @@
#
class Article < ActiveRecord::Base
acts_as_paranoid # Avoid deleting the article for consistency of order-results
acts_as_paranoid # Avoid deleting the article for consistency of order-results
extend ActiveSupport::Memoizable # Ability to cache method results. Use memoize :expensive_method
# Associations
@ -46,7 +46,7 @@ class Article < ActiveRecord::Base
# Callbacks
before_save :update_price_history
before_destroy :check_article_in_use
# Custom attribute setter that accepts decimal numbers using localized decimal separator.
def price=(price)
self[:price] = String.delocalized_decimal(price)
@ -176,7 +176,7 @@ class Article < ActiveRecord::Base
# Checks if the article is in use before it will deleted
def check_article_in_use
raise self.name.to_s + _(" cannot be deleted. The article is used in a current order!") if self.in_open_order
raise self.name.to_s + " kann nicht gelöscht werden. Der Artikel befindet sich in einer laufenden Bestellung!" if self.in_open_order
end
# Create an ArticlePrice, when the price-attr are changed.

View file

@ -52,12 +52,12 @@ class Order < ActiveRecord::Base
def articles_for_ordering
if stockit?
StockArticle.available.all(:include => :article_category,
StockArticle.available.without_deleted(:include => :article_category,
:order => 'article_categories.name, articles.name').reject{ |a|
a.quantity_available == 0
}.group_by { |a| a.article_category.name }
else
supplier.articles.available.all.group_by { |a| a.article_category.name }
supplier.articles.available.without_deleted.group_by { |a| a.article_category.name }
end
end

View file

@ -30,6 +30,7 @@ class Supplier < ActiveRecord::Base
has_many :orders
has_many :deliveries
has_many :invoices
belongs_to :shared_supplier # for the sharedLists-App
attr_accessible :name, :address, :phone, :phone2, :fax, :email, :url, :contact_person, :customer_number, :delivery_days, :order_howto, :note, :shared_supplier_id, :min_order_quantity
@ -38,17 +39,14 @@ class Supplier < ActiveRecord::Base
validates_length_of :phone, :in => 8..20
validates_length_of :address, :in => 8..50
# for the sharedLists-App
belongs_to :shared_supplier
# sync all articles with the external database
# returns an array with articles(and prices), which should be updated (to use in a form)
# also returns an array with outlisted_articles, which should be deleted
def sync_all
updated_articles = Array.new
outlisted_articles = Array.new
for article in articles
for article in articles.without_deleted
# try to find the associated shared_article
shared_article = article.shared_article

View file

@ -20,6 +20,8 @@
require 'digest/sha1'
# specific user rights through memberships (see Group)
class User < ActiveRecord::Base
#TODO: acts_as_paraniod ??
has_many :memberships, :dependent => :destroy
has_many :groups, :through => :memberships
has_one :ordergroup, :through => :memberships, :source => :group, :class_name => "Ordergroup"