Changeset 20851


Ignore:
Timestamp:
2011/04/17 11:34:46 (10 years ago)
Author:
saiteisan
Message:

refs #1195 (カテゴリCSV登録もID指定でinsertできるように調整

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_11-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php

    r20764 r20851  
    372372 
    373373        if($sqlval['category_id'] != "") { 
    374             // UPDATEの実行 
     374            // 同じidが存在すればupdate存在しなければinsert 
    375375            $where = "category_id = ?"; 
    376             $objQuery->update("dtb_category", $sqlval, $where, array($sqlval['category_id'])); 
     376            $category_count = $objQuery->count("dtb_category", $where, array($sqlval['category_id'])); 
     377            if($category_count > 0){ 
     378                // UPDATEの実行 
     379                $where = "category_id = ?"; 
     380                $objQuery->update("dtb_category", $sqlval, $where, array($sqlval['category_id'])); 
     381            }else{ 
     382                $sqlval['create_date'] = $arrList['update_date']; 
     383                // 新規登録 
     384                $category_id = $this->registerCategory($sqlval['parent_category_id'], 
     385                                        $sqlval['category_name'], 
     386                                        $_SESSION['member_id'], 
     387                                        $sqlval['category_id']); 
     388            } 
    377389            $category_id = $sqlval['category_id']; 
    378390            // TODO: 削除時処理 
     
    436448    function lfCheckErrorDetail($item, $arrErr) { 
    437449        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     450        /* 
    438451        // カテゴリIDの存在チェック 
    439452        if(!$this->lfIsDbRecord('dtb_category', 'category_id', $item)) { 
    440453            $arrErr['category_id'] = "※ 指定のカテゴリIDは、登録されていません。"; 
    441454        } 
     455        */ 
    442456        // 親カテゴリIDの存在チェック 
    443457        if(array_search('parent_category_id', $this->arrFormKeyList) !== FALSE 
     
    495509     * @param string カテゴリ名 
    496510     * @param integer 作成者のID 
     511     * @param integer 指定カテゴリID 
    497512     * @return integer カテゴリID 
    498513     */ 
    499     function registerCategory($parent_category_id, $category_name, $creator_id) { 
     514    function registerCategory($parent_category_id, $category_name, $creator_id, $category_id = null) { 
    500515        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    501516 
     
    526541        $arrCategory['rank']        = $rank; 
    527542        $arrCategory['level']       = $level; 
    528         $arrCategory['category_id'] = $objQuery->nextVal('dtb_category_category_id'); 
     543        //カテゴリIDが指定されていればそれを利用する 
     544        if(isset($category_id)){ 
     545            $arrCategory['category_id'] = $category_id; 
     546            // シーケンスの調整 
     547            $seq_count = $objQuery->currVal('dtb_category_category_id'); 
     548            if($seq_count < $arrCategory['category_id']){ 
     549                $objQuery->setVal('dtb_category_category_id', $arrCategory['category_id'] + 1); 
     550            } 
     551        }else{ 
     552            $arrCategory['category_id'] = $objQuery->nextVal('dtb_category_category_id'); 
     553        } 
    529554        $objQuery->insert("dtb_category", $arrCategory); 
     555 
    530556        return $arrCategory['category_id']; 
    531557    } 
Note: See TracChangeset for help on using the changeset viewer.