#
#= 永久保存マスターコントローラー共通
# Authors:: Sumiyo Yamamoto
# Copyright:: Copyright (C) OrbusNeich Medical K.K.  2010.
#--
# date        name                   note
# 2010.2.19   Sumiyo Yamamoto        新規作成
#-------------------------------------------------------------------------------
#++
module Comm
  module BaseController
    #= 永久保存マスター基本コントローラークラス
    # 永久保存マスターモデル対応のコントローラーが継承するベースコントローラー。
    #------------------------------------------------------------------------#++
    class PermanentMaster < General
      include Comm::Const::MasterCode

      #== 登録
      #-----------------------------------------------------------------#++
      def create
        # 無効フラグの設定
        @table_params[:invalid_flag_code] = MCODE_FLAG_OFF
        
        ar = @mcls.new
        result = ar.create_mng(@table_params, params[:master_rev])
        render :json => Comm::Tool::Json.result_json(result, ar.errmsg, get_respons(ar))
      end

      #== 削除
      #-----------------------------------------------------------------#++
      def destroy
        ar = find_one
        # 無効→有効
        if ar.invalid_flag_code == MCODE_FLAG_ON
          result = ar.recover_mng
        else
        # 有効→無効
          result = ar.destroy_mng
        end
        
        render :json => Comm::Tool::Json.result_json(result, ar.errmsg, get_respons(ar))
      end

    protected
      def get_find_flag
        return (params[:with_invalid].blank?) ? MFIND_V : MFIND_A
      end

#      def count_all
#        return Comm::Tool::SqlSearch.new.count(@mcls)
#      end

      def find_all
        ss = get_sql_search
        return ss.search(FLAG_ON, @mcls, @join_mcls, params, get_find_flag)
      end
    end
  end
end
