#
#= suppliersコントローラー
# Authors:: Sumiyo Yamamoto
# Copyright:: Copyright (C) OrbusNeich Medical K.K.  2010.
#--
# date        name                   note
# 2010.11.5   Sumiyo Yamamoto        新規作成
#-------------------------------------------------------------------------------
#++
class SuppliersController < Comm::BaseController::PermanentMaster
  #include Comm::Module::Controller::UnifiedIF
  #== コンストラクタ
  #-----------------------------------------------------------------#++
  def initialize
    @mcls = Supplier
    @search_cls = SupplierSearch
    @multiple_id_cols = {'cutoff_day_code'=>true}
  end
  
  def find_all
    ss = SupplierSearch.new
    ss.table_alias = {'suppliers' => 'a'}
    return ss.search(FLAG_ON, Supplier, [], params)
  end
  
  class SupplierSearch < Comm::Tool::SqlSearch
    def get_columns_and_tables(tab, join_lists, params, str_vals)
      invalid_vals = (!params || params[:with_invalid]==STR_TRUE) ? '0,1' : '0'
      str_cols = ' * '
      str_tab =  " FROM ( SELECT c.*,
                          CONCAT(
                            CASE 
                              WHEN c.payment_condition_2_duty_type_code=#{MCODE_PRICE_DUTY_TYPE_EXC} THEN '税抜'
                              WHEN c.payment_condition_2_duty_type_code=#{MCODE_PRICE_DUTY_TYPE_INC} THEN '税込'
                              ELSE ''
                            END,
                            CAST(FORMAT(c.payment_condition_2_price,0) AS CHAR), '円', 
                            CASE 
                              WHEN c.payment_condition_2_code=#{MCODE_PAYMENT_COND_EQUAL_MORE} THEN '以上'
                              WHEN c.payment_condition_2_code=#{MCODE_PAYMENT_COND_MORE} THEN '超え'
                              ELSE ''
                            END
                           ) AS cnd2map,
                          payment_condition_2_price + IF(payment_condition_2_code=#{MCODE_PAYMENT_COND_EQUAL_MORE}, 0, 0.1) AS cnd2name,
                          CONCAT(
                            CASE 
                              WHEN c.payment_condition_3_duty_type_code=#{MCODE_PRICE_DUTY_TYPE_EXC} THEN '税抜'
                              WHEN c.payment_condition_3_duty_type_code=#{MCODE_PRICE_DUTY_TYPE_INC} THEN '税込'
                              ELSE ''
                            END,
                            CAST(FORMAT(c.payment_condition_3_price,0) AS CHAR), '円', 
                            CASE 
                              WHEN c.payment_condition_3_code=#{MCODE_PAYMENT_COND_EQUAL_MORE} THEN '以上'
                              WHEN c.payment_condition_3_code=#{MCODE_PAYMENT_COND_MORE} THEN '超え'
                              ELSE ''
                            END
                           ) AS cnd3map,
                          payment_condition_3_price + IF(payment_condition_3_code=#{MCODE_PAYMENT_COND_EQUAL_MORE}, 0, 0.1) AS cnd3name
                          FROM master_app_production.suppliers AS c 
                          WHERE c.invalid_flag_code in (#{invalid_vals})) AS a"
      return str_cols, str_tab, str_vals
    end
  end
  # override 
  # 付加情報（モデルのテーブル以外のテーブルの情報）がparamsにあるので
  # 継承先で分解しつつ保存などしないとダメです
  def get_table_params
    @table_params = params
  end
  
  # show 関連
#  def add_to_extra_table_columns(merge_h, result)
#    arrange_result(merge_h, result, SupplierGroup)
#    arrange_result(merge_h, result, SupplierGroupPayment)
#    merge_h['payment_conditions_cnt'] = result['payment_conditions_cnt']
#  end
#  
#  def get_show_where_clause
#    int_id = params[:id].to_i
#    case int_id
#    when -1
#      condition = " (SELECT min(id) FROM suppliers) "
#    when -2
#      condition = " (SELECT max(id) FROM suppliers) "
#    else
#      condition = int_id.to_s
#    end
#    return "WHERE a.id = "+condition
#  end
end
