Ignore:
Timestamp:
2010/09/22 13:23:00 (14 years ago)
Author:
eccuore
Message:

#792(ダウンロード販売機能) 入金日追加、規格対応(規格構成変更と並行で作業中なので、作業途中の部分有)

File:
1 edited

Legend:

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

    r18815 r18819  
    3636    // }}} 
    3737    // {{{ functions 
     38    /** ダウンロード用ファイル管理クラスのインスタンス */ 
     39    var $objDownFile; 
     40 
     41    /** hidden 項目の配列 */ 
     42    var $arrHidden; 
    3843 
    3944    /** 
     
    4954        $this->tpl_subno = 'product'; 
    5055        $this->tpl_subtitle = '商品登録(商品規格)'; 
     56        $masterData = new SC_DB_MasterData_Ex(); 
     57        $this->arrDown = $masterData->getMasterData("mtb_down"); 
     58    } 
     59 
     60    function lfInitDownFile() { 
     61        $i = 1; 
     62        while (isset($_POST['classcategory_id1:' . $i])) { 
     63            //ファイル系処理 
     64            $this->objDownFile->addFile("ダウンロード販売用ファイル". ":" . $i, 'down_realfilename'. ":" . $i, explode(",", DOWNLOAD_EXTENSION),DOWN_SIZE, true, 0, 0); 
     65            $i++; 
     66        } 
    5167    } 
    5268 
     
    5571 
    5672        $this->arrSearchHidden = $this->createSearchParams($_POST); 
     73 
     74        // FORMデータの引き継ぎ 
     75        $this->arrForm = $_POST; 
    5776 
    5877        $this->tpl_product_id = 
     
    6180        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
    6281 
     82        // Downファイル管理クラス 
     83        $this->objDownFile = new SC_UploadFile(DOWN_TEMP_DIR, DOWN_SAVE_DIR); 
     84 
    6385        switch ($_POST['mode']) { 
    6486        case 'edit': 
    6587            // 入力値の変換 
    6688            $this->arrForm = $this->lfConvertParam($_POST); 
    67  
    6889            // エラーチェック 
    6990            $this->arrErr = $this->lfProductClassError($this->arrForm); 
    70             if (SC_Utils_Ex::isBlank($this->arrErr)) { 
    71                 $this->tpl_mainpage = 'products/product_class_confirm.tpl'; 
     91            if ($this->arrErr == null){ 
     92            //if (SC_Utils_Ex::isBlank($this->arrErr)) { 
     93                $this->tpl_mainpage = 'products/product_class_confirm.tpl'; 
    7294                $this->lfProductConfirmPage(); // 確認ページ表示 
    73  
    7495            } else { 
    75                 $this->doPreEdit(false); 
     96                $this->doPreEdit(false,true); 
     97                // Hiddenからのデータを引き継ぐ 
     98                $this->objDownFile->setHiddenFileList($_POST); 
     99                // HIDDEN用に配列を渡す。 
     100                $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList()); 
     101                // Form用に配列を渡す。 
     102                $this->arrForm = array_merge((array)$this->arrForm, (array)$this->objDownFile->getFormKikakuDownFile()); 
    76103            } 
    77104            break; 
     
    83110        case 'pre_edit': 
    84111            $this->doPreEdit(); 
     112            // HIDDEN用に配列を渡す。 
     113            $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList()); 
    85114            break; 
    86115 
     
    88117            $this->doDisp(); 
    89118            break; 
    90  
     119        // ダウンロード商品ファイルアップロード 
     120        case 'upload_down': 
     121            $this->doPreEdit(); 
     122            // Hiddenからのデータを引き継ぐ 
     123            $this->objDownFile->setHiddenKikakuFileList($_POST); 
     124            // ファイル存在チェック 
     125            $this->arrErr = array_merge((array)$this->arrErr, (array)$this->objDownFile->checkEXISTS($_POST['down_key'])); 
     126            // ファイル保存処理 
     127            $this->arrErr[$_POST['down_key']] = $this->objDownFile->makeTempDownFile($_POST['down_key']); 
     128            // HIDDEN用に配列を渡す。 
     129            $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList()); 
     130            // Form用に配列を渡す。 
     131            $this->arrForm = array_merge((array)$this->arrForm, (array)$this->objDownFile->getFormKikakuDownFile()); 
     132            break; 
     133        // ダウンロードファイルの削除 
     134        case 'delete_down': 
     135            $this->doPreEdit(); 
     136            // Hiddenからのデータを引き継ぐ 
     137            $this->objDownFile->setHiddenKikakuFileList($_POST); 
     138            // ファイル削除処理 
     139            $this->objDownFile->deleteKikakuFile($_POST['down_key']); 
     140            // HIDDEN用に配列を渡す。 
     141            $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList()); 
     142            // Form用に配列を渡す。 
     143            $this->arrForm = array_merge((array)$this->arrForm, (array)$this->objDownFile->getFormKikakuDownFile()); 
     144            break; 
    91145        case 'confirm_return': 
    92146            // フォームパラメータの引き継ぎ 
     
    95149            $this->arrForm['select_class_id1'] = ""; 
    96150            $this->arrForm['select_class_id2'] = ""; 
    97             $this->doPreEdit(false); 
    98             break; 
    99  
     151            $this->doPreEdit(false,true); 
     152            // Hiddenからのデータを引き継ぐ 
     153            $this->objDownFile->setHiddenFileList($_POST); 
     154            // HIDDEN用に配列を渡す。 
     155            $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList()); 
     156            // Form用に配列を渡す。 
     157            $this->arrForm = array_merge((array)$this->arrForm, (array)$this->objDownFile->getFormKikakuDownFile()); 
     158            break; 
    100159        case 'complete': 
    101160            // 完了ページ設定 
    102161            $this->tpl_mainpage = 'products/product_class_complete.tpl'; 
     162            // ファイル情報の初期化 
     163            $this->lfInitDownFile(); 
     164            // Hiddenからのデータを引き継ぐ 
     165            $this->objDownFile->setHiddenFileList($_POST); 
    103166            // 商品規格の登録 
    104167            $this->registerProductClass($_POST, $_POST['product_id']); 
     168            // 一時ファイルを本番ディレクトリに移動する 
     169            $this->objDownFile->moveTempDownFile(); 
    105170            break; 
    106171 
    107172        default: 
    108173        } 
    109  
    110174        $this->arrClass = $this->getAllClass(); 
    111175        $this->arrForm['product_name'] = $this->getProductName($_POST['product_id']); 
     
    153217            $pVal['price01'] = $arrList['price01:'.$i]; 
    154218            $pVal['price02'] = $arrList['price02:'.$i]; 
     219            $pVal['down'] = $arrList['down:'.$i]; 
     220            $pVal['down_filename'] = $arrList['down_filename:'.$i]; 
     221            $pVal['down_realfilename'] = $arrList['down_realfilename:'.$i]; 
    155222            $pVal['creator_id'] = $_SESSION['member_id']; 
    156223            $pVal['update_date'] = "now()"; 
     
    276343                if($array["stock_unlimited:".$no] != '1') { 
    277344                    $objErr->doFunc(array("在庫数", "stock:".$no, AMOUNT_LEN), array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
     345                } 
     346 
     347                //ダウンロード商品チェック 
     348                if($array["down:".$no] == "2") { 
     349                    $objErr->doFunc(array("ダウンロードファイル名", "down_filename:".$no, STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     350                    if($array["down_realfilename:".$no] == "") { 
     351                        $objErr->arrErr["down_realfilename:".$no] = "※ ダウンロード商品の場合はダウンロード商品用ファイルをアップロードしてください。<br />"; 
     352                    } 
     353                } 
     354                //実商品チェック 
     355                else if($array["down:".$no] == "1") { 
     356                    if($array["down_filename:".$no] != "") { 
     357                        $objErr->arrErr["down_filename:".$no] = "※ 実商品の場合はダウンロードファイル名を設定できません。<br />"; 
     358                    } 
     359                    if($array["down_realfilename:".$no] != "") { 
     360                        $objErr->arrErr["down_realfilename:".$no] = "※ 実商品の場合はダウンロード商品用ファイルをアップロードできません。<br />ファイルを取り消してください。<br />"; 
     361                    } 
    278362                } 
    279363            } 
     
    338422     * 規格編集画面を表示する. 
    339423     */ 
    340     function doPreEdit($existsValue = true) { 
     424    function doPreEdit($existsValue = true,$usepostValue = false) { 
    341425        $existsProductsClass = $this->getProductsClassAndClasscategory($_POST['product_id']); 
    342426        $productsClass = $this->getProductsClass($_POST['product_id']); 
     
    347431 
    348432        $this->arrClassCat = $this->getAllClassCategory($this->arrForm["class_id1"], $this->arrForm["class_id2"]); 
     433 
    349434        $total = count($this->arrClassCat); 
    350435        for ($i = 1; $i <= $total; $i++) { 
    351436            if ($existsValue) { 
    352437                foreach ($productsClass as $key => $val) { 
    353                     $this->arrForm[$key . ":" . $i] = $val; 
     438                    if(!$usepostValue){ 
     439                        $this->arrForm[$key . ":" . $i] = $val; 
     440                    } 
    354441                } 
    355442            } 
    356443            foreach ($existsProductsClass[$i] as $key => $val) { 
    357                 $this->arrForm[$key . ":" . $i] = $val; 
     444                if(!$usepostValue){ 
     445                    $this->arrForm[$key . ":" . $i] = $val; 
     446                } 
    358447            } 
    359448            if (!SC_Utils_Ex::isBlank($this->arrForm['product_id:' . $i]) 
    360449                && $this->arrForm["del_flg:" . $i] == 0) { 
    361450                $line .= "'check:" . $i . "',"; 
     451            } 
     452        } 
     453        //直前のLoopが$existsProductsClassを1始まりで参照しているので最初の情報が抜ける? 
     454        for ($i = 0; $i < $total; $i++) { 
     455            foreach ($existsProductsClass[$i] as $key => $val) { 
     456                //ダウンロードファイル初期設定 
     457                if($key=="down"){ 
     458                    $this->objDownFile->addFile("ダウンロード販売用ファイル". ":" . ($i+1), 'down_realfilename'. ":" . ($i+1), explode(",", DOWNLOAD_EXTENSION),DOWN_SIZE, true, 0, 0); 
     459                } 
    362460            } 
    363461        } 
     
    367465        $color = DISABLED_RGB; 
    368466        $this->tpl_onload.= "fnListCheck(list); fnCheckAllStockLimit('$total', '$color');"; 
     467 
     468        // DBデータからダウンロードファイル名の読込 
     469        $this->objDownFile->setDBFileList($this->arrForm); 
     470        // PostデータからダウンロードTempファイル名の読込 
     471        $this->objDownFile->setPostFileList($_POST,$this->arrForm); 
    369472    } 
    370473 
Note: See TracChangeset for help on using the changeset viewer.