Пример #1
0
 /**
  * 商品規格登録を行う.
  *
  * FIXME: 商品規格登録の実処理自体は、LC_Page_Admin_Products_Productと共通化して欲しい。
  *
  * @param  Query $objQuery         Queryインスタンス
  * @param  array    $arrList          商品規格情報配列
  * @param  integer  $product_id       商品ID
  * @param  integer  $product_class_id 商品規格ID
  * @return void
  */
 public function lfRegistProductClass($objQuery, $arrList, $product_id, $product_class_id)
 {
     /* @var $objProduct Product */
     $objProduct = Application::alias('eccube.product');
     // FIXME: dtb_csvテーブルの中で古いカラム名(右辺)が設定されている。sfArrayIntersectKeysでフィルタされてしまうので、名称を変更する必要がある
     if (array_key_exists('classcategory_id', $arrList) && $arrList['classcategory_id'] != '') {
         $arrList['classcategory_id1'] = $arrList['classcategory_id'];
     }
     if (array_key_exists('parent_classcategory_id', $arrList) && $arrList['classcategory_id'] != '') {
         $arrList['classcategory_id2'] = $arrList['parent_classcategory_id'];
     }
     // 商品規格登録情報を生成する。
     // 商品規格テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。
     $sqlval = Utils::sfArrayIntersectKeys($arrList, $this->arrProductClassColumn);
     if ($product_class_id == '') {
         // 新規登録
         // 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
         $sqlval = $this->lfSetProductClassDefaultData($sqlval);
         $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の実行
         // 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
         $sqlval = $this->lfSetProductClassDefaultData($sqlval, true);
         $where = 'product_class_id = ?';
         $objQuery->update('dtb_products_class', $sqlval, $where, array($product_class_id));
     }
 }
Пример #2
0
 /**
  * カテゴリ登録を行う.
  *
  * FIXME: 登録の実処理自体は、LC_Page_Admin_Products_Categoryと共通化して欲しい。
  *
  * @param  integer $line 処理中の行数
  * @param FormParam $objFormParam
  * @return integer        カテゴリID
  */
 public function lfRegisterCategory($line, FormParam &$objFormParam)
 {
     // 登録データ対象取得
     $arrList = $objFormParam->getDbArray();
     // 登録情報を生成する。
     // テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。
     $sqlval = Utils::sfArrayIntersectKeys($arrList, $this->arrRegistColumn);
     // 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
     $sqlval = $this->lfSetCategoryDefaultData($sqlval);
     /* @var $objCategory CategoryHelper */
     $objCategory = Application::alias('eccube.helper.category');
     $category_id = $objCategory->save($sqlval);
     return $category_id;
 }
Пример #3
0
 /**
  * 規格を設定していない商品を商品規格テーブルに登録
  *
  * @param  array $arrList
  * @return void
  */
 public function lfInsertDummyProductClass($arrList)
 {
     $objQuery = Application::alias('eccube.query');
     /* @var $objDb DbHelper */
     $objDb = Application::alias('eccube.helper.db');
     // 配列の添字を定義
     $checkArray = array('product_class_id', 'product_id', 'product_code', 'stock', 'stock_unlimited', 'price01', 'price02', 'sale_limit', 'deliv_fee', 'point_rate', 'product_type_id', 'down_filename', 'down_realfilename');
     $sqlval = Utils::sfArrayIntersectKeys($arrList, $checkArray);
     $sqlval = Utils::arrayDefineIndexes($sqlval, $checkArray);
     $sqlval['stock_unlimited'] = $sqlval['stock_unlimited'] ? UNLIMITED_FLG_UNLIMITED : UNLIMITED_FLG_LIMITED;
     $sqlval['creator_id'] = strlen($_SESSION['member_id']) >= 1 ? $_SESSION['member_id'] : '0';
     if (strlen($sqlval['product_class_id']) == 0) {
         $sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id');
         $sqlval['create_date'] = 'CURRENT_TIMESTAMP';
         $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
         // INSERTの実行
         $objQuery->insert('dtb_products_class', $sqlval);
     } else {
         $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
         // UPDATEの実行
         $objQuery->update('dtb_products_class', $sqlval, 'product_class_id = ?', array($sqlval['product_class_id']));
     }
     return $sqlval['product_class_id'];
 }
Пример #4
0
 /**
  * 配送情報のみ抜き出す。
  *
  * @param  string $arrSrc 元となる配列
  * @return void
  */
 public function extractShipping($arrSrc)
 {
     $arrKey = array();
     foreach ($this->arrShippingKey as $key) {
         $arrKey[] = 'shipping_' . $key;
     }
     return Utils::sfArrayIntersectKeys($arrSrc, $arrKey);
 }