当前位置: 首页>>代码示例>>PHP>>正文


PHP SC_Product_Ex::setProductStatus方法代码示例

本文整理汇总了PHP中SC_Product_Ex::setProductStatus方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Product_Ex::setProductStatus方法的具体用法?PHP SC_Product_Ex::setProductStatus怎么用?PHP SC_Product_Ex::setProductStatus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SC_Product_Ex的用法示例。


在下文中一共展示了SC_Product_Ex::setProductStatus方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: lfRegistProduct

 /**
  * 商品登録を行う.
  *
  * FIXME: 商品登録の実処理自体は、LC_Page_Admin_Products_Productと共通化して欲しい。
  *
  * @param  SC_Query       $objQuery SC_Queryインスタンス
  * @param  string|integer $line     処理中の行数
  * @return void
  */
 public function lfRegistProduct($objQuery, $line = '', &$objFormParam)
 {
     $objProduct = new SC_Product_Ex();
     // 登録データ対象取得
     $arrList = $objFormParam->getDbArray();
     // 登録時間を生成(DBのCURRENT_TIMESTAMPだとcommitした際、全て同一の時間になってしまう)
     $arrList['update_date'] = $this->lfGetDbFormatTimeWithLine($line);
     // 商品登録情報を生成する。
     // 商品テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。
     $sqlval = SC_Utils_Ex::sfArrayIntersectKeys($arrList, $this->arrProductColumn);
     // 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
     $sqlval = $this->lfSetProductDefaultData($sqlval);
     if ($sqlval['product_id'] != '') {
         // 同じidが存在すればupdate存在しなければinsert
         $where = 'product_id = ?';
         $product_exists = $objQuery->exists('dtb_products', $where, array($sqlval['product_id']));
         if ($product_exists) {
             $objQuery->update('dtb_products', $sqlval, $where, array($sqlval['product_id']));
         } else {
             $sqlval['create_date'] = $arrList['update_date'];
             // INSERTの実行
             $objQuery->insert('dtb_products', $sqlval);
             // シーケンスの調整
             $seq_count = $objQuery->currVal('dtb_products_product_id');
             if ($seq_count < $sqlval['product_id']) {
                 $objQuery->setVal('dtb_products_product_id', $sqlval['product_id'] + 1);
             }
         }
         $product_id = $sqlval['product_id'];
     } else {
         // 新規登録
         $sqlval['product_id'] = $objQuery->nextVal('dtb_products_product_id');
         $product_id = $sqlval['product_id'];
         $sqlval['create_date'] = $arrList['update_date'];
         // INSERTの実行
         $objQuery->insert('dtb_products', $sqlval);
     }
     // カテゴリ登録
     if (isset($arrList['category_ids'])) {
         $arrCategory_id = explode(',', $arrList['category_ids']);
         $this->objDb->updateProductCategories($arrCategory_id, $product_id);
     }
     // 商品ステータス登録
     if (isset($arrList['product_statuses'])) {
         $arrStatus_id = explode(',', $arrList['product_statuses']);
         $objProduct->setProductStatus($product_id, $arrStatus_id);
     }
     // 商品規格情報を登録する
     $this->lfRegistProductClass($objQuery, $arrList, $product_id, $arrList['product_class_id']);
     // 関連商品登録
     $this->lfRegistReccomendProducts($objQuery, $arrList, $product_id);
 }
开发者ID:ryoogata,项目名称:eccube-SQLAzureSupport-plugin,代码行数:61,代码来源:LC_Page_Admin_Products_UploadCSV.php

示例2: lfRegistProduct


//.........这里部分代码省略.........
     $arrRet = $objUpFile->getDBFileList();
     $sqlval = array_merge($sqlval, $arrRet);
     for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) {
         $sqlval['sub_title' . $cnt] = $arrList['sub_title' . $cnt];
         $sqlval['sub_comment' . $cnt] = $arrList['sub_comment' . $cnt];
     }
     $objQuery->begin();
     // 新規登録(複製時を含む)
     if ($arrList['product_id'] == '') {
         $product_id = $objQuery->nextVal('dtb_products_product_id');
         $sqlval['product_id'] = $product_id;
         // INSERTの実行
         $sqlval['create_date'] = 'CURRENT_TIMESTAMP';
         $objQuery->insert('dtb_products', $sqlval);
         $arrList['product_id'] = $product_id;
         // カテゴリを更新
         $objDb->updateProductCategories($arrList['category_id'], $product_id);
         // 複製商品の場合には規格も複製する
         if ($arrList['copy_product_id'] != '' && SC_Utils_Ex::sfIsInt($arrList['copy_product_id'])) {
             if (!$arrList['has_product_class']) {
                 //規格なしの場合、複製は価格等の入力が発生しているため、その内容で追加登録を行う
                 $this->lfCopyProductClass($arrList, $objQuery);
             } else {
                 //規格がある場合の複製は複製元の内容で追加登録を行う
                 // dtb_products_class のカラムを取得
                 $dbFactory = SC_DB_DBFactory_Ex::getInstance();
                 $arrColList = $objQuery->listTableFields('dtb_products_class');
                 $arrColList_tmp = array_flip($arrColList);
                 // 複製しない列
                 unset($arrColList[$arrColList_tmp['product_class_id']]);
                 //規格ID
                 unset($arrColList[$arrColList_tmp['product_id']]);
                 //商品ID
                 unset($arrColList[$arrColList_tmp['create_date']]);
                 // 複製元商品の規格データ取得
                 $col = SC_Utils_Ex::sfGetCommaList($arrColList);
                 $table = 'dtb_products_class';
                 $where = 'product_id = ?';
                 $objQuery->setOrder('product_class_id');
                 $arrProductsClass = $objQuery->select($col, $table, $where, array($arrList['copy_product_id']));
                 // 規格データ登録
                 $objQuery =& SC_Query_Ex::getSingletonInstance();
                 foreach ($arrProductsClass as $arrData) {
                     $sqlval = $arrData;
                     $sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id');
                     $sqlval['deliv_fee'] = $arrList['deliv_fee'];
                     $sqlval['point_rate'] = $arrList['point_rate'];
                     $sqlval['sale_limit'] = $arrList['sale_limit'];
                     $sqlval['product_id'] = $product_id;
                     $sqlval['create_date'] = 'CURRENT_TIMESTAMP';
                     $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
                     $objQuery->insert($table, $sqlval);
                 }
             }
         }
         // 更新
     } else {
         $product_id = $arrList['product_id'];
         // 削除要求のあった既存ファイルの削除
         $arrRet = $this->lfGetProductData_FromDB($arrList['product_id']);
         // TODO: SC_UploadFile::deleteDBFileの画像削除条件見直し要
         $objImage = new SC_Image_Ex($objUpFile->temp_dir);
         $arrKeyName = $objUpFile->keyname;
         $arrSaveFile = $objUpFile->save_file;
         $arrImageKey = array();
         foreach ($arrKeyName as $key => $keyname) {
             if ($arrRet[$keyname] && !$arrSaveFile[$key]) {
                 $arrImageKey[] = $keyname;
                 $has_same_image = $this->lfHasSameProductImage($arrList['product_id'], $arrImageKey, $arrRet[$keyname]);
                 if (!$has_same_image) {
                     $objImage->deleteImage($arrRet[$keyname], $objUpFile->save_dir);
                 }
             }
         }
         $objDownFile->deleteDBDownFile($arrRet);
         // UPDATEの実行
         $where = 'product_id = ?';
         $objQuery->update('dtb_products', $sqlval, $where, array($product_id));
         // カテゴリを更新
         $objDb->updateProductCategories($arrList['category_id'], $product_id);
     }
     // 商品登録の時は規格を生成する。複製の場合は規格も複製されるのでこの処理は不要。
     if ($arrList['copy_product_id'] == '') {
         // 規格登録
         if ($objDb->sfHasProductClass($product_id)) {
             // 規格あり商品(商品規格テーブルのうち、商品登録フォームで設定するパラメーターのみ更新)
             $this->lfUpdateProductClass($arrList);
         } else {
             // 規格なし商品(商品規格テーブルの更新)
             $this->lfInsertDummyProductClass($arrList);
         }
     }
     // 商品ステータス設定
     $objProduct = new SC_Product_Ex();
     $objProduct->setProductStatus($product_id, $arrList['product_status']);
     // 関連商品登録
     $this->lfInsertRecommendProducts($objQuery, $arrList, $product_id);
     $objQuery->commit();
     return $product_id;
 }
开发者ID:Rise-Up-Cambodia,项目名称:Rise-Up,代码行数:101,代码来源:LC_Page_Admin_Products_Product.php


注:本文中的SC_Product_Ex::setProductStatus方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。