Class | ProductService
In: | lib/design_api.rb
Parent: | DesignSubService

Design Web サービスで機能を扱う API を実装する。

### Methods

export import

### Public Instance methods

export(book)

book として与えられたデータで products テーブルの内容を置き換える。

[Source]

         # File lib/design_api.rb, line 936
    936:   def export(book)
    937:     domain_id = book.client_identifier_y
    938:     hash = Language.to_h
    939:     ids = []
    940:     book.main_sheet.product_items.each do |product_item|
    941:       product_id = product_item.product_id
    942:       proc = lambda do |product|
    943:         product.domain_id = domain_id
    944:         product.code = product_item.product_code
    945:         product.model_name = product_item.product_model
    946:         ProductStruct::ProductItem::REGULAR_MEMBER.each do |k,|
    947:           product.__send__("#{k}=", product_item.__send__(k))
    948:         end
    949:         product.save! if product.new_record?
    950:         product_item.product_names.each do |pn|
    951:           language_id = pn.language_id
    952:           product.__send__("name_#{hash[language_id]}=", pn.product_name)
    953:         end
    954:         product.save!
    955:         ids << product.id
    956:       end
    957:       if product_id && product_id != 0
    958:         # update the existing one
    959:         product = Product.find(product_id)
    960:         proc.call(product)
    961:       else
    962:         # add a new one
    963:         # TODO: other subclasses of Product should be available.
    964:         product = ProductSingle.new(:name_po => 0)
    965:         proc.call(product)
    966:       end
    967:     end
    968:     eids = Product.find(:all, :order => "id").map(&:id)
    969:     Product.delete(eids - ids)
    970:     return Product.to_product_book(domain_id).succeed
    971:   end

import(book)

products テーブルの内容を返す。

[Source]

         # File lib/design_api.rb, line 925
    925:   def import(book)
    926:     domain_id = book.client_identifier_y
    927:     unless Product.root
    928:       ProductRoot.create!(:domain_id => domain_id,
    929:                           :code => "product_root_#{domain_id}",
    930:                           :name_po => 0)
    931:     end
    932:     return Product.to_product_book(domain_id).succeed
    933:   end

[Validate]