Changeset 18369


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

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

Location:
branches/version-2_4
Files:
2 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        } 
  • branches/version-2_4/html/install/sql/insert_data.sql

    r18164 r18369  
    227227insert into dtb_csv(csv_id,col,disp_name,rank,status,create_date,update_date)values(5,'category_name','カテゴリ名',2,1,now(),now()); 
    228228insert into dtb_csv(csv_id,col,disp_name,rank,status,create_date,update_date)values(5,'parent_category_id',' 親カテゴリID',3,1,now(),now()); 
    229 insert into dtb_csv(csv_id,col,disp_name,rank,status,create_date,update_date)values(5,'level','階層',4,1,now(),now()); 
    230 insert into dtb_csv(csv_id,col,disp_name,rank,status,create_date,update_date)values(5,'rank','表示ランク',5,1,now(),now()); 
     229insert into dtb_csv(csv_id,col,disp_name,rank,status,create_date,update_date)values(5,'level','階層',4,2,now(),now()); 
     230insert into dtb_csv(csv_id,col,disp_name,rank,status,create_date,update_date)values(5,'rank','表示ランク',5,2,now(),now()); 
    231231 
    232232INSERT INTO dtb_templates (template_code, template_name, create_date, update_date) VALUES('default','デフォルト', now(), now()); 
Note: See TracChangeset for help on using the changeset viewer.