/**
  * クエリを構築する.
  *
  * 検索条件のキーに応じた WHERE 句と, クエリパラメーターを構築する.
  * クエリパラメーターは, SC_FormParam の入力値から取得する.
  *
  * 構築内容は, 引数の $where 及び $arrValues にそれぞれ追加される.
  *
  * @param  string       $key          検索条件のキー
  * @param  string       $where        構築する WHERE 句
  * @param  array        $arrValues    構築するクエリパラメーター
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 public function buildQuery($key, &$where, &$arrValues, &$objFormParam)
 {
     switch ($key) {
         case "search_year":
         case "search_month":
         case "search_day":
             if ($key != "search_year") {
                 break;
             }
             $y = $objFormParam->getValue('search_year');
             $m = $objFormParam->getValue('search_month');
             $d = $objFormParam->getValue('search_day');
             $where .= ' AND create_date BETWEEN ? AND ? ';
             $arrValues[] = SC_Utils_Ex::sfGetTimestamp($y, $m, $d);
             $arrValues[] = SC_Utils_Ex::sfGetTimestamp($y, $m, $d, true);
             break;
         case 'search_order_id':
             $where .= ' AND order_id = ?';
             $arrValues[] = sprintf('%d', $objFormParam->getValue($key));
             break;
         case 'search_customer_id':
             $where .= ' AND customer_id = ?';
             $arrValues[] = sprintf('%d', $objFormParam->getValue($key));
             break;
         case 'search_product_id':
             $where .= ' AND EXISTS (SELECT 1 FROM dtb_order_detail od WHERE od.order_id = dtb_order.order_id AND od.product_id = ?)';
             $arrValues[] = sprintf('%d', $objFormParam->getValue($key));
             break;
         default:
             parent::buildQuery($key, $where, $arrValues, $objFormParam);
             break;
     }
 }
 /**
  * Page のプロセス.
  *
  * @return void
  */
 function process()
 {
     parent::process();
 }
 /**
  * デストラクタ.
  *
  * @return void
  */
 function destroy()
 {
     parent::destroy();
 }