/**
  * 商品規格登録を行う.
  *
  * FIXME: 商品規格登録の実処理自体は、LC_Page_Admin_Products_Productと共通化して欲しい。
  *
  * @param SC_Query $objQuery SC_Queryインスタンス
  * @param array $arrList 商品規格情報配列
  * @param integer $product_id 商品ID
  * @param integer $product_class_id 商品規格ID
  * @return void
  */
 function lfRegistProductClass($objQuery, $arrList, $product_id, $product_class_id)
 {
     $objProduct = new SC_Product_Ex();
     // 商品規格登録情報を生成する。
     // 商品規格テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。
     $sqlval = SC_Utils_Ex::sfArrayIntersectKeys($arrList, $this->arrProductClassColumn);
     // 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
     $sqlval = $this->lfSetProductClassDefaultData($sqlval);
     if ($product_class_id == "") {
         // 新規登録
         $sqlval['product_id'] = $product_id;
         $sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id');
         $sqlval['create_date'] = $arrList['update_date'];
         // INSERTの実行
         $objQuery->insert("dtb_products_class", $sqlval);
         $product_class_id = $sqlval['product_class_id'];
     } else {
         // UPDATEの実行
         $where = "product_class_id = ?";
         $objQuery->update("dtb_products_class", $sqlval, $where, array($product_class_id));
     }
     // 支払い方法登録
     if ($arrList['product_payment_ids'] != "") {
         $arrPayment_id = explode(',', $arrList['product_payment_ids']);
         $objProduct->setPaymentOptions($product_class_id, $arrPayment_id);
     }
 }