Move setting availability to sync method

This commit is contained in:
wvengen 2019-03-24 22:14:10 +01:00
parent cd164bc3eb
commit 25deefced1
3 changed files with 25 additions and 9 deletions

View file

@ -181,13 +181,9 @@ class ArticlesController < ApplicationController
has_error = true
end
# Update articles
@updated_articles.map{|a| a.save or has_error=true }
@updated_articles.each {|a| a.save or has_error=true }
# Add new articles
@new_articles.each do |article|
article.availability = true if @supplier.shared_sync_method == 'all_available'
article.availability = false if @supplier.shared_sync_method == 'all_unavailable'
article.save or has_error=true
end
@new_articles.each {|a| a.save or has_error=true }
raise ActiveRecord::Rollback if has_error
end

View file

@ -52,11 +52,16 @@ class Supplier < ApplicationRecord
end
end
# Find any new articles, unless the import is manual
unless shared_sync_method == 'import'
if ['all_available', 'all_unavailable'].include?(shared_sync_method)
# build new articles
shared_supplier
.shared_articles
.where.not(id: existing_articles.to_a)
.find_each { |new_shared_article| new_articles << new_shared_article.build_new_article(self) }
# make them unavailable when desired
if shared_sync_method == 'all_unavailable'
new_articles.each {|new_article| new_article.availability = false }
end
end
return [updated_article_pairs, outlisted_articles, new_articles]
end