#
# InvalidFlagでcreate/destroyする
#
module Comm::Module::Model::InvalidFlagCd
  include Comm::Const::MasterCode
  def self.included(base)
    base.class_eval do
      named_scope :set, lambda {|param|
        case param
        when MFIND_V
          {:conditions => "invalid_flag_code = #{MCODE_FLAG_OFF}"}
        when MFIND_I
          {:conditions => "invalid_flag_code = #{MCODE_FLAG_ON}"}
        else
          {}
        end
      }
      
      named_scope :dsort, :order => 'disp_sort'
      
      named_scope :dlist, lambda {|req_cols| {
        :select => (['id', 'disp_name', 'invalid_flag_code as ivf'] + req_cols).join(','),
        #:conditions => "invalid_flag_code = #{MCODE_FLAG_OFF}",
        :order => 'disp_sort'
      }}
    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
    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
