Ignore:
Timestamp:
2009/11/06 21:29:47 (14 years ago)
Author:
kajiwara
Message:

#511 カテゴリーCSV ダウンロードとアップロードで初期項目が異なる不具合の対応

File:
1 edited

Legend:

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

    r17048 r18369  
    161161 
    162162                        if (!$err) { 
    163                             $this->lfRegistProduct($objQuery, $line); 
     163                            $this->lfRegistProduct($objQuery, $rec_count, $line); 
    164164                            $regist++; 
    165165                        } 
     
    225225        $this->objFormParam->addParam("親カテゴリID","parent_category_id",INT_LEN,"n",array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    226226    } 
    227      
     227 
    228228    /** 
    229229     * カテゴリ登録を行う. 
    230230     * 
    231231     * @param SC_Query $objQuery SC_Queryインスタンス 
    232      * @param string|integer $line 処理中の行数 
    233      * @return void 
    234      */ 
    235     function lfRegistProduct($objQuery, $line = "") { 
     232     * @param string|integer $rec_count 処理総数|integer $line 処理中の行数 
     233     * @return void 
     234     */ 
     235    function lfRegistProduct($objQuery, $rec_count, $line = "") { 
    236236        $objDb = new SC_Helper_DB_Ex(); 
    237237        $arrRet = $this->objFormParam->getHashArray(); 
    238          
     238 
    239239        //カテゴリID 
    240240        if ($arrRet['category_id'] == 0) { 
     
    246246            $update = true; 
    247247        } 
    248          
     248 
    249249        // カテゴリ名 
    250250        $sqlval['category_name'] = $arrRet['category_name']; 
     251        //表示ランク(上から順に表示順を自動割り当て) 
     252        $sqlval['rank'] = ($rec_count + 1) - $line ; 
    251253 
    252254        // 親カテゴリID、レベル 
     
    259261            $sqlval['level'] = $parent_level + 1; 
    260262        } 
    261          
     263 
    262264        // その他 
    263265        $time = date("Y-m-d H:i:s"); 
     
    268270        $sqlval['update_date'] = $time; 
    269271        $sqlval['creator_id'] = $_SESSION['member_id']; 
    270          
     272 
    271273        // 更新 
    272274        if ($update) { 
     
    274276            $where = "category_id = ?"; 
    275277            $objQuery->update("dtb_category", $sqlval, $where, array($sqlval['category_id'])); 
    276          
     278 
    277279        // 新規登録 
    278280        } else { 
    279281            echo "INSERT "; 
    280282            $sqlval['create_date'] = $time; 
    281             // ランク 
    282             if ($sqlval['parent_category_id'] == 0) { 
    283                 // ROOT階層で最大のランクを取得する。 
    284                 $where = "parent_category_id = ?"; 
    285                 $sqlval['rank'] = $objQuery->max("dtb_category", "rank", $where, array($sqlval['parent_category_id'])) + 1; 
    286             } else { 
    287                 // 親のランクを自分のランクとする。 
    288                 $where = "category_id = ?"; 
    289                 $sqlval['rank'] = $objQuery->get("dtb_category", "rank", $where, array($sqlval['parent_category_id'])); 
    290                 // 追加レコードのランク以上のレコードを一つあげる。 
    291                 $sqlup = "UPDATE dtb_category SET rank = (rank + 1) WHERE rank >= ?"; 
    292                 $objQuery->exec($sqlup, array($sqlval['rank'])); 
    293             } 
    294283            $objQuery->insert("dtb_category", $sqlval); 
    295284        } 
     
    306295        $objErr = new SC_CheckError($arrRet); 
    307296        $objErr->arrErr = $this->objFormParam->checkError(false); 
    308          
     297 
    309298        // 親カテゴリID設定 
    310299        if ($arrRet['parent_category_id'] == 0) { 
     
    313302            $parent_category_id = $arrRet['parent_category_id']; 
    314303        } 
    315          
     304 
    316305        // 存在する親カテゴリIDかチェック 
    317306        if (count($objErr->arrErr) == 0) { 
     
    323312            } 
    324313        } 
    325          
     314 
    326315        // 階層チェック 
    327316        if (!isset($objErr->arrErr['category_name']) && !isset($objErr->arrErr['parent_category_id'])) { 
     
    338327            if (empty($arrCat)) { 
    339328                $arrCat = array(array("category_id" => "", "category_name" => "")); 
    340             } 
    341329            // 編集中のレコード以外に同じ名称が存在する場合 
    342             if ($arrCat[0]['category_id'] != $arrRet['category_id'] && $arrCat[0]['category_name'] == $_POST['category_name']) { 
    343                 $objErr->arrErr['category_name'] = "※ 既に同じ内容の登録が存在します。<br>"; 
     330            }elseif ($arrCat[0]['category_id'] != $arrRet['category_id'] && $arrCat[0]['category_name'] == $arrRet['category_name']) { 
     331                $objErr->arrErr['category_name'] = "※ 既に同じ内容の登録が存在します。\n"; 
    344332            } 
    345333        } 
Note: See TracChangeset for help on using the changeset viewer.