Ignore:
Timestamp:
2010/08/06 14:52:59 (16 years ago)
Author:
eccuore
Message:

#792(ダウンロード販売機能) 機能追加

Location:
branches/version-2_5-dev/data/class/pages
Files:
1 added
8 edited

Legend:

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

    r18776 r18777  
    105105                    break; 
    106106                } 
    107                 $this->tpl_onload = "window.alert('SHOPマスタの登録が完了しました。');"; 
     107                $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "'); window.alert('SHOPマスタの登録が完了しました。');"; 
    108108            } 
    109109            if( empty($this->arrForm['regular_holiday_ids']) ) { 
     
    120120            $regular_holiday_ids = explode('|', $this->arrForm['regular_holiday_ids']); 
    121121            $this->arrForm['regular_holiday_ids'] = $regular_holiday_ids; 
     122            $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "');"; 
    122123        } 
    123124 
     
    166167            "regular_holiday_ids", 
    167168            "latitude", 
    168             "longitude" 
     169            "longitude", 
     170            "downloadable_days", 
     171            "downloadable_days_unlimited" 
    169172        ); 
    170173        return $arrCol; 
     
    235238        $arrConvList['good_traded'] = ""; 
    236239        $arrConvList['message'] = ""; 
     240        $arrConvList['downloadable_days'] = "n"; 
     241        $arrConvList['downloadable_days_unlimited'] = "n"; 
    237242 
    238243        return SC_Utils_Ex::mbConvertKanaWithArray($array, $arrConvList); 
     
    271276        $objErr->doFunc(array("取扱商品", "good_traded", LLTEXT_LEN), array("MAX_LENGTH_CHECK")); 
    272277        $objErr->doFunc(array("メッセージ", "message", LLTEXT_LEN), array("MAX_LENGTH_CHECK")); 
    273  
     278        if(!isset($array['downloadable_days_unlimited']) && $array['downloadable_days_unlimited'] != "1") { 
     279            $objErr->doFunc(array("ダウンロード可能日数", "downloadable_days", DOWNLOAD_DAYS_LEN), array("EXIST_CHECK", "ZERO_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
     280        } 
    274281        $objErr->doFunc(array("緯度", "latitude", STEXT_LEN), array("NUM_POINT_CHECK", "MAX_LENGTH_CHECK")); 
    275282        $objErr->doFunc(array("経度", "longitude", STEXT_LEN), array("NUM_POINT_CHECK", "MAX_LENGTH_CHECK")); 
  • branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php

    r18701 r18777  
    3939    var $objUpFile; 
    4040 
     41    /** ダウンロード用ファイル管理クラスのインスタンス */ 
     42    var $objDownFile; 
     43 
    4144    /** hidden 項目の配列 */ 
    4245    var $arrHidden; 
     
    7174        $this->arrAllowedTag = $masterData->getMasterData("mtb_allowed_tag"); 
    7275        $this->arrMaker = SC_Helper_DB_Ex::sfGetIDValueList("dtb_maker", "maker_id", "name"); 
     76        $this->arrDown = $masterData->getMasterData("mtb_down"); 
    7377        $this->tpl_nonclass = true; 
    7478    } 
     
    8993        SC_Utils_Ex::sfIsSuccess($objSess); 
    9094 
     95        // Downファイル管理クラス 
     96        $this->objDownFile = new SC_UploadFile(DOWN_TEMP_DIR, DOWN_SAVE_DIR); 
     97        // Downファイル情報の初期化 
     98        $this->lfInitDownFile(); 
     99        // Hiddenからのデータを引き継ぐ 
     100        $this->objDownFile->setHiddenFileList($_POST); 
     101 
    91102        // ファイル管理クラス 
    92103        $this->objUpFile = new SC_UploadFile(IMAGE_TEMP_DIR, IMAGE_SAVE_DIR); 
     
    124135                // DBデータから画像ファイル名の読込 
    125136                $this->objUpFile->setDBFileList($this->arrForm); 
     137                // DBデータからダウンロードファイル名の読込 
     138                $this->objDownFile->setDBDownFile($this->arrForm); 
    126139 
    127140                // 商品ステータスの変換 
     
    175188                // 一時ファイルを本番ディレクトリに移動する 
    176189                $this->objUpFile->moveTempFile(); 
     190                $this->objDownFile->moveTempDownFile(); 
    177191 
    178192                break; 
     
    192206            case 'delete_image': 
    193207                $this->objUpFile->deleteFile($_POST['image_key']); 
     208                $this->lfProductPage(); // 商品登録ページ 
     209                break; 
     210            // ダウンロード商品ファイルアップロード 
     211            case 'upload_down': 
     212                // ファイル存在チェック 
     213                $this->arrErr = array_merge((array)$this->arrErr, (array)$this->objDownFile->checkEXISTS($_POST['down_key'])); 
     214                // 画像保存処理 
     215                $this->arrErr[$_POST['down_key']] = $this->objDownFile->makeTempDownFile(); 
     216 
     217                $this->lfProductPage(); // 商品登録ページ 
     218                break; 
     219            // ダウンロードファイルの削除 
     220            case 'delete_down': 
     221                $this->objDownFile->deleteFile($_POST['down_key']); 
    194222                $this->lfProductPage(); // 商品登録ページ 
    195223                break; 
     
    232260            } 
    233261        } 
     262 
    234263        // サブ情報表示・非表示のチェックに使用する。 
    235264        $this->sub_find = $sub_find; 
     
    353382            $this->arrForm['status'] = DEFAULT_PRODUCT_DISP; 
    354383        } 
     384        if($this->arrForm['down'] == "") { 
     385            $this->arrForm['down'] = DEFAULT_PRODUCT_DOWN; 
     386        } 
    355387 
    356388        if(isset($this->arrForm['product_flag']) && !is_array($this->arrForm['product_flag'])) { 
     
    361393        // HIDDEN用に配列を渡す。 
    362394        $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objUpFile->getHiddenFileList()); 
     395        $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList()); 
    363396        // Form用配列を渡す。 
    364397        $this->arrFile = $this->objUpFile->getFormFileList(IMAGE_TEMP_URL, IMAGE_SAVE_URL); 
    365398 
     399        $this->arrForm['down_realfilename'] = $this->objDownFile->getFormDownFile(); 
    366400 
    367401        // アンカーを設定 
     
    401435                            "deliv_fee", "comment1", "comment2", "comment3", 
    402436                            "comment4", "comment5", "comment6", "main_list_comment", 
    403                             "sale_limit", "deliv_date_id", "maker_id", "note"); 
     437                            "sale_limit", "deliv_date_id", "maker_id", "note", "down", "down_filename", "down_realfilename"); 
    404438        $arrList = SC_Utils_Ex::arrayDefineIndexes($arrList, $checkArray); 
    405439 
     
    423457        $sqlval['maker_id'] = $arrList['maker_id']; 
    424458        $sqlval['note'] = $arrList['note']; 
     459        $sqlval['down'] = $arrList['down']; 
     460        $sqlval['down_filename'] = $arrList['down_filename']; 
     461        $sqlval['down_realfilename'] = $arrList['down_realfilename']; 
    425462        $sqlval['update_date'] = "Now()"; 
    426463        $sqlval['creator_id'] = $_SESSION['member_id']; 
     
    490527            $arrRet = $this->lfGetProduct($arrList['product_id']); 
    491528            $this->objUpFile->deleteDBFile($arrRet); 
     529            $this->objDownFile->deleteDBDownFile($arrRet); 
    492530 
    493531            // UPDATEの実行 
     
    580618        $objErr->doFunc(array("メーカー", 'maker_id', INT_LEN), array("NUM_CHECK")); 
    581619 
     620        //ダウンロード商品チェック 
     621        if($array['down'] == "2") { 
     622            $objErr->doFunc(array("ダウンロードファイル名", "down_filename", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     623            if($array['down_realfilename'] == "") { 
     624                $objErr->arrErr['down_realfilename'] = "※ ダウンロード商品の場合はダウンロード商品用ファイルをアップロードしてください。<br />"; 
     625            } 
     626        } 
     627        //実商品チェック 
     628        if($array['down'] == "1") { 
     629            if($array['down_filename'] != "") { 
     630                $objErr->arrErr['down_filename'] = "※ 実商品の場合はダウンロードファイル名を設定できません。<br />"; 
     631            } 
     632            if($array['down_realfilename'] != "") { 
     633                $objErr->arrErr['down_realfilename'] = "※ 実商品の場合はダウンロード商品用ファイルをアップロードできません。<br />ファイルを取り消してください。<br />"; 
     634            } 
     635        } 
     636 
    582637        if($this->tpl_nonclass) { 
    583638            $objErr->doFunc(array("商品コード", "product_code", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     
    649704        // Form用配列を渡す。 
    650705        $this->arrFile = $this->objUpFile->getFormFileList(IMAGE_TEMP_URL, IMAGE_SAVE_URL); 
     706        $this->arrForm['down_realfilename'] = $this->objDownFile->getFormDownFile(); 
    651707    } 
    652708 
     
    815871        $objQuery->insert('dtb_products_class', $sqlval); 
    816872    } 
     873    /* ダウンロードファイル情報の初期化 */ 
     874    function lfInitDownFile() { 
     875        $this->objDownFile->addFile("ダウンロード販売用ファイル", 'down_file', array('zip', 'jpg', 'mp3', 'gif', 'png'),DOWN_SIZE, true, 0, 0); 
     876    } 
    817877} 
    818878?> 
  • branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php

    r18772 r18777  
    165165                    } 
    166166 
     167                    //販売方法チェックを行う 
     168                    $this->checkSalesKind( $this->objFormParam->keyname ,$arrCSV , $arrCSVErr ); 
     169 
    167170                    // 入力エラーチェック 
    168171                    if(count($arrCSVErr) > 0) { 
     
    241244     */ 
    242245    function lfInitParam() { 
    243          
     246 
    244247        // 商品ステータスの上限文字数の算出 
    245248        $masterData = new SC_DB_MasterData_Ex(); 
     
    306309            $this->objFormParam->addParam("関連商品コメント($cnt)", "recommend_comment$cnt", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    307310        } 
     311 
     312        $this->objFormParam->addParam("実商品・ダウンロード(1:実商品 2:ダウンロード)", "down", INT_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
     313        $this->objFormParam->addParam("ダウンロードファイル名", "down_filename", STEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     314        $this->objFormParam->addParam("ダウンロード商品用ファイル", "down_realfilename", LTEXT_LEN, "KVa", array("DOWN_FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    308315 
    309316        $this->objFormParam->addParam("商品カテゴリ", "category_id", STEXT_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK")); 
     
    372379            $where = "product_id = ?"; 
    373380            $objQuery->update("dtb_products", $sqlval, $where, array($sqlval['product_id'])); 
    374              
     381 
    375382            $product_id = $sqlval['product_id']; 
    376383        } else { 
     
    379386            unset($sqlval['product_id']); 
    380387            $sqlval['create_date'] = $time; 
    381              
     388 
    382389            // INSERTの実行 
    383390            $objQuery->insert("dtb_products", $sqlval); 
    384              
     391 
    385392            $product_id = $objQuery->currval("dtb_products","product_id"); 
    386393        } 
     
    535542             . "</font></br>\n"; 
    536543    } 
     544 
     545    /** 
     546     * 実商品・ダウンロード判定チェック処理 
     547     * 
     548     * @param $p_keyname    csv項目番号配列 
     549     * @param $p_arrCSV     csv入力データ配列 
     550     * @param $p_arrCSVErr  エラー格納配列 
     551     */ 
     552    function checkSalesKind( $p_keyname , $p_arrCSV , &$p_arrCSVErr ){ 
     553 
     554        //実商品・ダウンロードカラムの値を取得する 
     555        $sDownFlg_Key = array_search('down', $p_keyname ); 
     556        if( $sDownFlg_Key != '' ){ 
     557            //実商品・ダウンロードカラムが存在する場合 
     558            //実商品・ダウンロードカラムの値を取得する 
     559            $sDownFlg = $p_arrCSV[$sDownFlg_Key]; 
     560 
     561            //ダウンロードファイル名を取得する 
     562            $sFilename_Key = array_search('down_filename', $p_keyname ); 
     563            $sFilename = $p_arrCSV[$sFilename_Key]; 
     564 
     565            //ダウンロード商品用ファイルアップロードを取得する 
     566            $sRealdown_filename_Key = array_search('down_realfilename', $p_keyname ); 
     567            $sRealdown_filename = $p_arrCSV[$sRealdown_filename_Key]; 
     568 
     569            if( $sDownFlg == 1 ){ 
     570                //実商品の場合 
     571                if( mb_strlen($sFilename) > 0 ){ 
     572                    $p_arrCSVErr["down_filename"] = "※ 実商品の場合はダウンロードファイル名は入力できません。\n"; 
     573                } 
     574                if( mb_strlen($sRealdown_filename) > 0 ){ 
     575                    $p_arrCSVErr["down_realfilename"] = "※ 実商品の場合はダウンロード商品用ファイルアップロードは入力できません。\n"; 
     576                } 
     577            }else if( $sDownFlg == 2 ){ 
     578                //ダウンロード商品の場合 
     579                if( mb_strlen($sFilename) <= 0 ){ 
     580                    $p_arrCSVErr["down_filename"] = "※ ダウンロード商品の場合はダウンロードファイル名は必須です。\n"; 
     581                } 
     582                if( mb_strlen($sRealdown_filename) <=  0 ){ 
     583                    $p_arrCSVErr["down_realfilename"] = "※ ダウンロード商品の場合はダウンロード商品用ファイルアップロードは必須です。\n"; 
     584                } 
     585            }else{ 
     586                //その他 
     587                $p_arrCSVErr["down"] = "※ 実商品・ダウンロード(1:実商品 2:ダウンロード)の設定が不正です。\n"; 
     588            } 
     589        } 
     590    } 
    537591} 
    538592?> 
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_History.php

    r18701 r18777  
    222222    function lfGetOrderDetail($orderId) { 
    223223        $objQuery = new SC_Query(); 
    224         $col = "product_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate"; 
    225         $col .= ",CASE WHEN EXISTS(SELECT * FROM dtb_products WHERE product_id = dtb_order_detail.product_id AND del_flg = 0 AND status = 1) THEN '1' ELSE '0' END AS enable"; 
    226         $where = "order_id = ?"; 
     224        if (DB_TYPE == "mysql"){ 
     225            $col = "od.product_id AS product_id, od.product_code AS product_code, od.product_name AS product_name, od.classcategory_name1 AS classcategory_name1,"; 
     226            $col .= "od.classcategory_name2 AS classcategory_name2, od.price AS price, od.quantity AS quantity, od.point_rate AS point_rate"; 
     227            $col .= ",CASE WHEN EXISTS(SELECT * FROM dtb_products WHERE product_id = od.product_id AND del_flg = 0 AND status = 1) THEN '1' ELSE '0' END AS enable"; 
     228            $col .= ",o.status AS status, p.down AS down, (SELECT IF((SELECT d1.downloadable_days_unlimited FROM dtb_baseinfo d1)=1, 1, DATE(NOW()),"; 
     229            $col .= "<= DATE(DATE_ADD(o.commit_date, INTERVAL (SELECT downloadable_days FROM dtb_baseinfo) DAY)))) AS effective"; 
     230        }else{ 
     231            $baseinfo = SC_Helper_DB_Ex::sf_getBasisData(); 
     232            $col = "od.product_id AS product_id, od.product_code AS product_code, od.product_name AS product_name, od.classcategory_name1 AS classcategory_name1,"; 
     233            $col .= "od.classcategory_name2 AS classcategory_name2, od.price AS price, od.quantity AS quantity, od.point_rate AS point_rate"; 
     234            $col .= ",CASE WHEN EXISTS(SELECT * FROM dtb_products WHERE product_id = od.product_id AND del_flg = 0 AND status = 1) THEN '1' ELSE '0' END AS enable"; 
     235            $col .= ",o.status AS status, p.down AS down, (SELECT CASE WHEN (SELECT d1.downloadable_days_unlimited FROM dtb_baseinfo d1) = 1 THEN 1 WHEN DATE(NOW())"; 
     236            $col .= "<= DATE(o.commit_date + '". $baseinfo['downloadable_days'] ." days') THEN 1 ELSE 0 END) AS effective"; 
     237        } 
     238        $where = "p.product_id = od.product_id AND od.order_id = o.order_id AND od.order_id = ?"; 
    227239        $objQuery->setOrder("classcategory_id1, classcategory_id2"); 
    228         $arrRet = $objQuery->select($col, "dtb_order_detail", $where, array($orderId)); 
     240        $arrRet = $objQuery->select($col, "dtb_products p, dtb_order_detail od, dtb_order o", $where, array($orderId)); 
    229241        return $arrRet; 
    230242    } 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php

    r18772 r18777  
    7777        $objCustomer = new SC_Customer(); 
    7878        $objCookie = new SC_Cookie(); 
     79        $objDb = new SC_Helper_DB_Ex(); 
    7980        $this->objFormParam = new SC_FormParam();            // フォーム用 
    8081        $this->lfInitParam();                                // パラメータ情報の初期化 
     
    8586        $this->tpl_uniqid = $uniqid; 
    8687 
     88        //ダウンロード商品判定 
     89        $this->cartdown = $objDb->chkCartDown($objCartSess); 
     90 
    8791        // ログインチェック 
    8892        if($objCustomer->isLoginSuccess()) { 
    89             // すでにログインされている場合は、お届け先設定画面に転送 
    90             $this->sendRedirect($this->getLocation("./deliv.php"), array()); 
     93            // すでにログインされている場合 
     94            if ($this->cartdown == 2) { 
     95                // 会員情報の住所を受注一時テーブルに書き込む 
     96                $objDb->sfRegistDelivData($uniqid, $objCustomer); 
     97                // 正常に登録されたことを記録しておく 
     98                $objSiteSess->setRegistFlag(); 
     99                //カート内が全てダウンロード商品の場合は支払方法設定画面に転送 
     100                $this->sendRedirect($this->getLocation("./payment.php"), array()); 
     101            } else { 
     102                // お届け先設定画面に転送 
     103                $this->sendRedirect($this->getLocation("./deliv.php"), array()); 
     104            } 
    91105            exit; 
    92106        } 
     
    103117        case 'nonmember_confirm': 
    104118            $this->lfSetNonMember($this); 
     119            //非会員のダウンロード商品を含んだ買い物はNG 
     120            if($this->cartdown != 0){ 
     121                SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, "ダウンロード商品を含むお買い物は、会員登録が必要です。<br/>お手数ですが、会員登録をお願いします。"); 
     122            } 
    105123            // ※breakなし 
    106124        case 'confirm': 
     
    133151        case 'nonmember': 
    134152            $this->lfSetNonMember($this); 
     153            //非会員のダウンロード商品を含んだ買い物はNG 
     154            if($this->cartdown != 0){ 
     155                SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, "ダウンロード商品を含むお買い物は、会員登録が必要です。<br/>お手数ですが、会員登録をお願いします。"); 
     156            } 
    135157            // ※breakなし 
    136158        default: 
     
    198220        $this->objFormParam = new SC_FormParam();            // フォーム用 
    199221        $helperMobile = new SC_Helper_Mobile_Ex(); 
     222        $objDb = new SC_Helper_DB_Ex(); 
    200223        $this->lfInitParam();                                // パラメータ情報の初期化 
    201224        $this->objFormParam->setParam($_POST);            // POST値の取得 
     
    206229        $this->tpl_uniqid = $uniqid; 
    207230 
     231        //ダウンロード商品判定 
     232        $this->cartdown = $objDb->chkCartDown($objCartSess); 
     233 
    208234        // ログインチェック 
    209235        if($objCustomer->isLoginSuccess(true)) { 
    210             // すでにログインされている場合は、お届け先設定画面に転送 
    211             $this->sendRedirect($this->getLocation('./deliv.php'), true); 
     236            // すでにログインされている場合 
     237            if ($this->cartdown == 2) { 
     238                // 会員情報の住所を受注一時テーブルに書き込む 
     239                $objDb->sfRegistDelivData($uniqid, $objCustomer); 
     240                // 正常に登録されたことを記録しておく 
     241                $objSiteSess->setRegistFlag(); 
     242                //カート内が全てダウンロード商品の場合は支払方法設定画面に転送 
     243                $this->sendRedirect($this->getLocation("./payment.php"), array()); 
     244            } else { 
     245                // お届け先設定画面に転送 
     246                $this->sendRedirect($this->getLocation("./deliv.php"), array()); 
     247            } 
    212248            exit; 
    213249        } 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php

    r18701 r18777  
    8080        $this->tpl_uniqid = $uniqid; 
    8181 
     82        //ダウンロード商品判定 
     83        $this->cartdown = $objDb->chkCartDown($objCartSess); 
     84 
    8285        // カート集計処理 
    8386        $objDb->sfTotalCart($this, $objCartSess); 
     
    194197        $this->tpl_uniqid = $uniqid; 
    195198 
     199        //ダウンロード商品判定 
     200        $this->cartdown = $objDb->chkCartDown($objCartSess); 
     201 
    196202        // カート集計処理 
    197203        $objDb->sfTotalCart($this, $objCartSess); 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php

    r18701 r18777  
    7474        $objCampaignSess = new SC_CampaignSession(); 
    7575        $objCustomer = new SC_Customer(); 
     76        $objDb = new SC_Helper_DB_Ex(); 
    7677        // クッキー管理クラス 
    7778        $objCookie = new SC_Cookie(COOKIE_EXPIRE); 
     
    9394        $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); 
    9495        $this->tpl_uniqid = $uniqid; 
     96 
     97        //ダウンロード商品判定 
     98        $this->cartdown = $objDb->chkCartDown($objCartSess); 
    9599 
    96100        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
     
    127131                        SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); 
    128132                    } 
     133                } 
     134                //ダウンロード商品判定 
     135                if($this->cartdown==2){ 
     136                    // 会員情報の住所を受注一時テーブルに書き込む 
     137                    $objDb->sfRegistDelivData($uniqid, $objCustomer); 
     138                    // 正常に登録されたことを記録しておく 
     139                    $objSiteSess->setRegistFlag(); 
     140                    // ダウンロード商品有りの場合は、支払方法画面に転送 
     141                    $this->sendRedirect($this->getLocation("./payment.php"), array()); 
     142                    exit; 
    129143                } 
    130144            } else { 
     
    239253        $objCartSess = new SC_CartSession(); 
    240254        $objCustomer = new SC_Customer(); 
     255        $objDb = new SC_Helper_DB_Ex(); 
    241256        // クッキー管理クラス 
    242257        $objCookie = new SC_Cookie(COOKIE_EXPIRE); 
     
    258273        $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); 
    259274        $this->tpl_uniqid = $uniqid; 
     275 
     276        //ダウンロード商品判定 
     277        $this->cartdown = $objDb->chkCartDown($objCartSess); 
    260278 
    261279        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
     
    293311                        SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); 
    294312                    } 
     313                } 
     314                //ダウンロード商品判定 
     315                if($this->cartdown==2){ 
     316                    // 会員情報の住所を受注一時テーブルに書き込む 
     317                    $objDb->sfRegistDelivData($uniqid, $objCustomer); 
     318                    // 正常に登録されたことを記録しておく 
     319                    $objSiteSess->setRegistFlag(); 
     320                    // ダウンロード商品有りの場合は、支払方法画面に転送 
     321                    $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), array()); 
     322                    exit; 
    295323                } 
    296324            } else { 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r18701 r18777  
    8686        $this->tpl_uniqid = $uniqid; 
    8787 
     88        //ダウンロード商品判定 
     89        $this->cartdown = $objDb->chkCartDown($objCartSess); 
     90 
    8891        // 会員ログインチェック 
    8992        if($this->objCustomer->isLoginSuccess()) { 
     
    9194            $this->tpl_user_point = $this->objCustomer->getValue('point'); 
    9295            //戻り先URL 
    93             $this->tpl_back_url = URL_DELIV_TOP; 
     96            if ($this->cartdown == 2) { 
     97                // ダウンロード商品のみの場合はカート画面へ戻る 
     98                $this->tpl_back_url = URL_CART_TOP; 
     99            } else { 
     100                $this->tpl_back_url = URL_DELIV_TOP; 
     101            } 
    94102        } else { 
    95103            $this->tpl_back_url = URL_SHOP_TOP . "?from=nonmember"; 
     
    203211        $this->tpl_uniqid = $uniqid; 
    204212 
     213        //ダウンロード商品判定 
     214        $this->cartdown = $objDb->chkCartDown($objCartSess); 
     215 
    205216        // 会員ログインチェック 
    206217        if($this->objCustomer->isLoginSuccess(true)) { 
     
    236247                // 正常な推移であることを記録しておく 
    237248                $objSiteSess->setRegistFlag(); 
    238                 $this->sendRedirect(MOBILE_URL_SHOP_TOP, true); 
     249                if ($this->cartdown == 2) { 
     250                    // ダウンロード商品のみの場合はカート画面へ戻る 
     251                    $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP), true); 
     252                } else { 
     253                    $this->sendRedirect(MOBILE_URL_SHOP_TOP, true); 
     254                } 
    239255                exit; 
    240256            } 
     257        } 
     258 
     259        // ダウンロード商品のみで、モードがお届け日時指定の場合はモードを変更 
     260        if ($this->cartdown == 2 && $_POST['mode'] == 'deliv_date') { 
     261            $_POST['mode'] = 'confirm'; 
    241262        } 
    242263 
     
    341362        $objQuery = new SC_Query(); 
    342363        $objQuery->setOrder("rank DESC"); 
     364 
     365        //削除されていない支払方法を取得 
     366        $where = "del_flg = 0 AND deliv_id IN (SELECT deliv_id FROM dtb_deliv WHERE del_flg = 0) "; 
     367        //ダウンロード商品の有無判定 
     368        if($this->cartdown != 0){ 
     369            //ダウンロード商品を含む場合は、クレジット決済以外は選択できない。 
     370            $where .= "AND payment_id =  " . CREDIT_PAYMENT; 
     371        } 
     372 
    343373        // 削除されていない支払方法を取得 
    344         $arrRet = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image", "dtb_payment", "del_flg = 0 AND deliv_id IN (SELECT deliv_id FROM dtb_deliv WHERE del_flg = 0) "); 
     374        $arrRet = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image", "dtb_payment", $where); 
     375 
    345376        // 配列初期化 
    346377        $data = array(); 
    347378        // 選択可能な支払方法を判定 
    348379        foreach($arrRet as $data) { 
     380            //ダウンロード販売に対する注意追加 
     381            if($this->cartdown != 0){ 
     382                $data['payment_method'] = $data['payment_method'] . "  (ダウンロード商品を含む場合、クレジット決済のみ選択可能です)"; 
     383            } 
    349384            // 下限と上限が設定されている 
    350385            if (strlen($data['rule']) != 0 && strlen($data['upper_rule']) != 0) { 
Note: See TracChangeset for help on using the changeset viewer.