#
#= sql発行モジュール
# Copyright:: Copyright (C) OrbusNeich Medical K.K.  2010.
#
# 生SQL文記述の集積をめざす
#-------------------------------------------------------------------------------
module Comm::Module
  module ToSql
    # 以下の要素からconditionセンテンスを得る
    # table...テーブル名
    # colname.カラム
    # value...値またはhash
    #         valueは以下のようにして渡されたものを想定
    #           params {カラム名:...}
    #                  範囲指定 {カラム名:{from:...},{to:...}}
    #                  複数指定 {カラム名:{list:...}}
    def create_condition(tablename, colname, value)
      sentence = ""
      if value.kind_of?(Hash)
        #リスト
        if value.include?(:list)
          list = value[:list].strip
          if value[:list] != ""
            sentence = "#{tablename}.#{colname} IN (#{list})"
          end
        #範囲
        elsif value.include?(:from) and value.include?(:to)
          from = value[:from].strip
          to = value[:to].strip
          if from != "" and to != ""
            sentence = "#{tablename}.#{colname} BETWEEN \'#{from}\' AND \'#{to}\'"
          elsif from != "" and to == ""
            sentence = "#{tablename}.#{colname} >= \'#{from}\'"
          elsif from == "" and to != ""
            sentence = "#{tablename}.#{colname} <= \'#{to}\'"
          end
        end
      elsif value.kind_of?(String)
        #文字列
        str = value.strip
        if str != ""
          sentence = "#{tablename}.#{colname} like \'%#{value}%\'"
        end
      end
      return sentence
    end
  end
end
