#
#= consumers モデル
# Authors:: Kazunori Shimizu
# Copyright:: Copyright (C) OrbusNeich Medical K.K.  2013.
#--
# date        name                   note
# 2013.6.5   Kazunori Shimizu        新規登録
#-------------------------------------------------------------------------------
#++
#受注で登録する際に、master revisionが上がってしまうのがうざいので。。
class Consumer < Comm::BaseModel::General
  # DB接続先設定
  establish_connection 'master'
  include Comm::Const::MasterCode
  
  named_scope :valid, :conditions => {:invalid_flag_code => Comm::Const::MasterCode::MCODE_FLAG_OFF}
  named_scope :email_is, lambda{ |mail| {
     :conditions => ["email = ?", mail]
   }}
  named_scope :id_is_not, lambda{ |id| {
    :conditions => ["id != ?", id.to_i]
  }}
   
  def validate
    emsg = ''
    ars = Consumer.email_is(self.email).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
  
  #== 削除
  #-----------------------------------------------------------------#++
  def destroy
    result = true
    
    p = {:invalid_flag_code => MCODE_FLAG_ON, :updated_at => Time.now}
    ret = self.update_attributes(p)
    unless ret
      errors.add_to_base(EMJ0006 + EMD0004 + "(#{self.class.to_s})")
    end
    
    return result
  end
  
  def recover_mng
    @result = recover
    return @result
  end

  #== 復旧
  #-----------------------------------------------------------------#++
  def recover
    result = true
    
    p = {:invalid_flag_code => MCODE_FLAG_OFF, :updated_at => nil}
    ret = self.update_attributes(p)
    unless ret
      errors.add_to_base(EMJ0007 + EMD0004 + "(#{self.class.to_s})")
    end
    
    return result
  end
  
end
