#
#= supplier_groups モデル
# Authors:: Sumiyo Yamamoto
# Copyright:: Copyright (C) OrbusNeich Medical K.K.  2010.
#--
# date        name                   note
# 2010.11.5   Sumiyo Yamamoto        新規登録
#-------------------------------------------------------------------------------
#++
class SupplierGroup < Comm::BaseModel::PermanentMaster
  include Comm::Module::Model::UnifiedIF::Partners
  include Comm::Module::Model::UnifiedIF::Common
  has_many :suppliers,
           :foreign_key => "payto_supplier_group_id"
  
  has_many :payments,
           :class_name => "SupplierGroupPayment",
           :foreign_key => "supplier_group_id"
  
  def validate
    emsg = ''
    ars = SupplierGroup.disp_name_is(self.disp_name).valid.id_is_not(self.id)
    
    record_num = ars.length
    if record_num > 0
       ids = ars.collect{|ar| ar.id}
       emsg << EMJ0005
       emsg << "指定の得意先グループ名は既に登録されています。"
       emsg << "ID:"+ids.inspect
       raise UserOperationError, emsg
    end
  end
  
  # general override
  def create_exec(params)
    update_exec(params)
  end
  
  def update_exec(params)
    base_params = params[:supplier_group]
    payment_params = params[:supplier_group_payment]
    extract_shared_params(base_params, payment_params, SupplierGroupPayment) if payment_params
    
    fill_disp_sort(base_params)
    self.update_attributes!(base_params)
    
    logger.debug("params:::"+params.inspect)
    
    if params[:payment_conditions_cnt].to_i == 1
      if payment_params
        update_payment_condition(self, payment_params)
      end
    elsif params[:payment_conditions_cnt].to_i == 0
      destroy_payment_condition(self)
    end
    
    #支払い条件"なし"のときだけ設定
#    if params[:payment_condition_flag_code].to_i == 0 && payment_params
#      update_payment_condition(self, payment_params)
#    end
    
    save!
    true
  end
  
  # 削除は得意先だけ
  def destroy_exec
    destroy
    true
  end
end
