Ignore:
Timestamp:
2007/07/20 15:58:59 (17 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Location:
branches/feature-module-update
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update

    • Property svn:ignore set to
      .cache

      .settings

      .projectOptions
  • branches/feature-module-update/html/shopping/payment.php

    r13538 r15078  
    1515        $this->tpl_mainpage = 'shopping/payment.tpl'; 
    1616        $this->tpl_onload = 'fnCheckInputPoint();'; 
    17         $this->tpl_title = "¤ª»ÙʧÊýË¡¡¦¤ªÆϤ±»þ´ÖÅù¤Î»ØÄê"; 
     17        $this->tpl_title = "お支払方法・お届け時間等の指定"; 
    1818        /* 
    19          session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç 
    20          ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£ 
    21          private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£ 
     19         session_start時のno-cacheヘッダーを抑制することで 
     20         「戻る」ボタン使用時の有効期限切れ表示を抑制する。 
     21         private-no-expire:クライアントのキャッシュを許可する。 
    2222        */ 
    2323        session_cache_limiter('private-no-expire');      
     
    3434$arrInfo = $objSiteInfo->data; 
    3535 
    36 // ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹ 
     36// パラメータ管理クラス 
    3737$objFormParam = new SC_FormParam(); 
    38 // ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ 
     38// パラメータ情報の初期化 
    3939lfInitParam(); 
    40 // POSTÃͤμèÆÀ 
     40// POST値の取得 
    4141$objFormParam->setParam($_POST); 
    4242 
    43 // ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ­¤ò¥Á¥§¥Ã¥¯ 
     43// ユーザユニークIDの取得と購入状態の正当性をチェック 
    4444$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess); 
    45 // ¥æ¥Ë¡¼¥¯ID¤ò°ú¤­·Ñ¤° 
     45// ユニークIDを引き継ぐ 
    4646$objPage->tpl_uniqid = $uniqid; 
    4747 
    48 // ²ñ°÷¥í¥°¥¤¥ó¥Á¥§¥Ã¥¯ 
     48// 会員ログインチェック 
    4949if($objCustomer->isLoginSuccess()) { 
    5050    $objPage->tpl_login = '1'; 
    5151    $objPage->tpl_user_point = $objCustomer->getValue('point'); 
    52     //Ìá¤êÀèURL 
     52    //戻り先URL 
    5353    $objPage->tpl_back_url = URL_DELIV_TOP; 
    5454} else { 
     
    5656} 
    5757 
    58 // ¶â³Û¤Î¼èÆÀ (¹ØÆþÅÓÃæ¤ÇÇä¤êÀڤ줿¾ì¹ç¤Ë¤Ï¤³¤Î´Ø¿ôÆâ¤Ë¤Æ¤½¤Î¾¦ÉʤθĿô¤¬£°¤Ë¤Ê¤ë) 
     58// 金額の取得 (購入途中で売り切れた場合にはこの関数内にてその商品の個数が0になる) 
    5959$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo); 
    6060$objPage->arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo); 
    6161 
    62 // ¥«¡¼ÅÔÆâ¤Î¾¦ÉʤÎÇä¤êÀÚ¤ì¥Á¥§¥Ã¥¯ 
     62// カー都内の商品の売り切れチェック 
    6363$objCartSess->chkSoldOut($objCartSess->getCartList()); 
    6464 
    6565switch($_POST['mode']) { 
    6666case 'confirm': 
    67     // ÆþÎÏÃͤÎÊÑ´¹ 
     67    // 入力値の変換 
    6868    $objFormParam->convParam(); 
    6969    $objPage->arrErr = lfCheckError($objPage->arrData ); 
    70     // ÆþÎÏ¥¨¥é¡¼¤Ê¤· 
     70    // 入力エラーなし 
    7171    if(count($objPage->arrErr) == 0) { 
    72         // DB¤Ø¤Î¥Ç¡¼¥¿ÅÐÏ¿ 
     72        // DBへのデータ登録 
    7373        lfRegistData($uniqid); 
    74         // Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯ 
     74        // 正常に登録されたことを記録しておく 
    7575        $objSiteSess->setRegistFlag(); 
    76         // ³Îǧ¥Ú¡¼¥¸¤Ø°ÜÆ° 
     76        // 確認ページへ移動 
    7777        header("Location: " . URL_SHOP_CONFIRM); 
    7878        exit; 
    7979    }else{ 
    80         // ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ 
     80        // ユーザユニークIDの取得 
    8181        $uniqid = $objSiteSess->getUniqId(); 
    82         // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊǼ 
     82        // 受注一時テーブルからの情報を格納 
    8383        lfSetOrderTempData($uniqid); 
    8484    } 
    8585    break; 
    86 // Á°¤Î¥Ú¡¼¥¸¤ËÌá¤ë 
     86// 前のページに戻る 
    8787case 'return': 
    88     // Èó²ñ°÷¤Î¾ì¹ç 
    89     // Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯ 
     88    // 非会員の場合 
     89    // 正常な推移であることを記録しておく 
    9090    $objSiteSess->setRegistFlag(); 
    9191    header("Location: " . URL_SHOP_TOP); 
    9292    exit; 
    9393    break; 
    94 // »Ùʧ¤¤ÊýË¡¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç 
     94// 支払い方法が変更された場合 
    9595case 'payment': 
    96     // ¤³¤³¤Îbreak¤Ï¡¢°ÕÌ£¤¬¤¢¤ë¤Î¤Ç³°¤µ¤Ê¤¤¤Ç²¼¤µ¤¤¡£ 
     96    // ここのbreakは、意味があるので外さないで下さい。 
    9797    break; 
    9898default: 
    99     // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊǼ 
     99    // 受注一時テーブルからの情報を格納 
    100100    lfSetOrderTempData($uniqid); 
    101101    break; 
    102102} 
    103103 
    104 // ŹÊÞ¾ðÊó¤Î¼èÆÀ 
     104// 店舗情報の取得 
    105105$arrInfo = $objSiteInfo->data; 
    106 // ¹ØÆþ¶â³Û¤Î¼èÆÀÆÀ 
     106// 購入金額の取得得 
    107107$total_pretax = $objCartSess->getAllProductsTotal($arrInfo); 
    108 // »Ùʧ¤¤ÊýË¡¤Î¼èÆÀ 
     108// 支払い方法の取得 
    109109$objPage->arrPayment = lfGetPayment($total_pretax); 
    110 // ÇÛÁ÷»þ´Ö¤Î¼èÆÀ 
     110// 配送時間の取得 
    111111$arrRet = sfGetDelivTime($objFormParam->getValue('payment_id')); 
    112112$objPage->arrDelivTime = sfArrKeyValue($arrRet, 'time_id', 'deliv_time'); 
    113113$objPage->objCustomer = $objCustomer; 
    114 //¡¡ÇÛÁ÷Æü°ìÍ÷¤Î¼èÆÀ 
     114// 配送日一覧の取得 
    115115$objPage->arrDelivDate = lfGetDelivDate(); 
    116116 
     
    118118 
    119119$objView->assignobj($objPage); 
    120 // ¥Õ¥ì¡¼¥à¤òÁªÂò(¥­¥ã¥ó¥Ú¡¼¥ó¥Ú¡¼¥¸¤«¤éÁ«°Ü¤Ê¤éÊѹ¹) 
     120// フレームを選択(キャンペーンページから遷移なら変更) 
    121121$objCampaignSess->pageView($objView); 
    122122//-------------------------------------------------------------------------------------------------------------------------- 
    123 /* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */ 
     123/* パラメータ情報の初期化 */ 
    124124function lfInitParam() { 
    125125    global $objFormParam; 
    126     $objFormParam->addParam("¤ª»Ùʧ¤¤ÊýË¡", "payment_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    127     $objFormParam->addParam("¥Ý¥¤¥ó¥È", "use_point", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK", "ZERO_START")); 
    128     $objFormParam->addParam("ÇÛã»þ´Ö", "deliv_time_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    129     $objFormParam->addParam("¤´¼ÁÌä", "message", LTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    130     $objFormParam->addParam("¥Ý¥¤¥ó¥È¤ò»ÈÍѤ¹¤ë", "point_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), '2'); 
    131     $objFormParam->addParam("ÇÛãÆü", "deliv_date", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
     126    $objFormParam->addParam("お支払い方法", "payment_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     127    $objFormParam->addParam("ポイント", "use_point", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK", "ZERO_START")); 
     128    $objFormParam->addParam("配達時間", "deliv_time_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
     129    $objFormParam->addParam("ご質問", "message", LTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     130    $objFormParam->addParam("ポイントを使用する", "point_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), '2'); 
     131    $objFormParam->addParam("配達日", "deliv_date", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
    132132} 
    133133 
     
    135135    $objQuery = new SC_Query(); 
    136136    $objQuery->setorder("rank DESC"); 
    137     //ºï½ü¤µ¤ì¤Æ¤¤¤Ê¤¤»ÙʧÊýË¡¤ò¼èÆÀ 
     137    //削除されていない支払方法を取得 
    138138    $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) "); 
    139     //ÍøÍѾò·ï¤«¤é»Ùʧ²ÄǽÊýË¡¤òȽÄê 
     139    //利用条件から支払可能方法を判定 
    140140    foreach($arrRet as $data) { 
    141         //²¼¸Â¤È¾å¸Â¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë 
     141        //下限と上限が設定されている 
    142142        if($data['rule'] > 0 && $data['upper_rule'] > 0) { 
    143143            if($data['rule'] <= $total_pretax && $data['upper_rule'] >= $total_pretax) { 
    144144                $arrPayment[] = $data; 
    145145            } 
    146         //²¼¸Â¤Î¤ßÀßÄꤵ¤ì¤Æ¤¤¤ë 
     146        //下限のみ設定されている 
    147147        } elseif($data['rule'] > 0) {    
    148148            if($data['rule'] <= $total_pretax) { 
    149149                $arrPayment[] = $data; 
    150150            } 
    151         //¾å¸Â¤Î¤ßÀßÄꤵ¤ì¤Æ¤¤¤ë 
     151        //上限のみ設定されている 
    152152        } elseif($data['upper_rule'] > 0) { 
    153153            if($data['upper_rule'] >= $total_pretax) { 
    154154                $arrPayment[] = $data; 
    155155            } 
    156         //ÀßÄê¤Ê¤· 
     156        //設定なし 
    157157        } else { 
    158158            $arrPayment[] = $data; 
     
    162162} 
    163163 
    164 /* ÆþÎÏÆâÍƤΥÁ¥§¥Ã¥¯ */ 
     164/* 入力内容のチェック */ 
    165165function lfCheckError($arrData) { 
    166166    global $objFormParam; 
    167167    global $objCustomer; 
    168     // ÆþÎϥǡ¼¥¿¤òÅϤ¹¡£ 
     168    // 入力データを渡す。 
    169169    $arrRet =  $objFormParam->getHashArray(); 
    170170    $objErr = new SC_CheckError($arrRet); 
     
    172172     
    173173    if($_POST['point_check'] == '1') { 
    174         $objErr->doFunc(array("¥Ý¥¤¥ó¥È¤ò»ÈÍѤ¹¤ë", "point_check"), array("EXIST_CHECK")); 
    175         $objErr->doFunc(array("¥Ý¥¤¥ó¥È", "use_point"), array("EXIST_CHECK")); 
     174        $objErr->doFunc(array("ポイントを使用する", "point_check"), array("EXIST_CHECK")); 
     175        $objErr->doFunc(array("ポイント", "use_point"), array("EXIST_CHECK")); 
    176176        $max_point = $objCustomer->getValue('point'); 
    177177        if($max_point == "") { 
     
    179179        } 
    180180        if($arrRet['use_point'] > $max_point) { 
    181             $objErr->arrErr['use_point'] = "¢¨ ¤´ÍøÍѥݥ¤¥ó¥È¤¬½ê»ý¥Ý¥¤¥ó¥È¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£<br />"; 
     181            $objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br />"; 
    182182        } 
    183183        if(($arrRet['use_point'] * POINT_VALUE) > $arrData['subtotal']) { 
    184             $objErr->arrErr['use_point'] = "¢¨ ¤´ÍøÍѥݥ¤¥ó¥È¤¬¤´¹ØÆþ¶â³Û¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£<br />"; 
     184            $objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br />"; 
    185185        } 
    186186    } 
     
    188188} 
    189189 
    190 /* »Ùʧ¤¤Êýˡʸ»úÎó¤Î¼èÆÀ */ 
     190/* 支払い方法文字列の取得 */ 
    191191function lfGetPaymentInfo($payment_id) { 
    192192    $objQuery = new SC_Query(); 
     
    196196} 
    197197 
    198 /* ÇÛÁ÷»þ´Öʸ»úÎó¤Î¼èÆÀ */ 
     198/* 配送時間文字列の取得 */ 
    199199function lfGetDelivTimeInfo($time_id) { 
    200200    $objQuery = new SC_Query(); 
     
    204204} 
    205205 
    206 /* DB¤Ø¥Ç¡¼¥¿¤ÎÅÐÏ¿ */ 
     206/* DBへデータの登録 */ 
    207207function lfRegistData($uniqid) { 
    208208    global $objFormParam; 
    209209    $arrRet = $objFormParam->getHashArray(); 
    210210    $sqlval = $objFormParam->getDbArray(); 
    211     // ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ® 
     211    // 登録データの作成 
    212212    $sqlval['order_temp_id'] = $uniqid; 
    213213    $sqlval['update_date'] = 'Now()'; 
     
    228228    } 
    229229     
    230     // »ÈÍѥݥ¤¥ó¥È¤ÎÀßÄê 
     230    // 使用ポイントの設定 
    231231    if($sqlval['point_check'] != '1') { 
    232232        $sqlval['use_point'] = 0; 
     
    236236} 
    237237 
    238 /* ÇÛãÆü°ìÍ÷¤ò¼èÆÀ¤¹¤ë */ 
     238/* 配達日一覧を取得する */ 
    239239function lfGetDelivDate() { 
    240240    $objCartSess = new SC_CartSession(); 
    241241    $objQuery = new SC_Query(); 
    242     // ¾¦ÉÊID¤Î¼èÆÀ 
     242    // 商品IDの取得 
    243243    $max = $objCartSess->getMax(); 
    244244    for($i = 1; $i <= $max; $i++) { 
     
    249249    if(count($arrID['product_id']) > 0) { 
    250250        $id = implode(",", $arrID['product_id']); 
    251         //¾¦Éʤ«¤éȯÁ÷Ìܰ¤μèÆÀ 
     251        //商品から発送目安の取得 
    252252        $deliv_date = $objQuery->get("dtb_products", "MAX(deliv_date_id)", "product_id IN (".$id.")"); 
    253         //ȯÁ÷Ìܰ 
     253        //発送目安 
    254254        switch($deliv_date) { 
    255         //¨ÆüȯÁ÷ 
     255        //即日発送 
    256256        case '1': 
    257257            $start_day = 1; 
    258258            break; 
    259         //1-2Æü¸å 
     259        //1-2日後 
    260260        case '2': 
    261261            $start_day = 3; 
    262262            break; 
    263         //3-4Æü¸å 
     263        //3-4日後 
    264264        case '3': 
    265265            $start_day = 5; 
    266266            break; 
    267         //1½µ´Ö°ÊÆâ 
     267        //1週間以内 
    268268        case '4': 
    269269            $start_day = 8; 
    270270            break; 
    271         //2½µ´Ö°ÊÆâ 
     271        //2週間以内 
    272272        case '5': 
    273273            $start_day = 15; 
    274274            break; 
    275         //3½µ´Ö°ÊÆâ 
     275        //3週間以内 
    276276        case '6': 
    277277            $start_day = 22; 
    278278            break; 
    279         //1¥ö·î°ÊÆâ 
     279        //1ヶ月以内 
    280280        case '7': 
    281281            $start_day = 32; 
    282282            break; 
    283         //2¥ö·î°Ê¹ß 
     283        //2ヶ月以降 
    284284        case '8': 
    285285            $start_day = 62;             
    286286            break; 
    287         //¤ª¼è¤ê´ó¤»(¾¦ÉÊÆþ²Ù¸å) 
     287        //お取り寄せ(商品入荷後) 
    288288        case '9': 
    289289            $start_day = ""; 
    290290            break; 
    291291        default: 
    292             //¤ªÆϤ±Æü¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç 
     292            //お届け日が設定されていない場合 
    293293            $start_day = ""; 
    294294            break; 
    295295        } 
    296         //ÇÛã²ÄǽÆü¤Î¥¹¥¿¡¼¥ÈÃͤ«¤é¡¢ÇÛãÆü¤ÎÇÛÎó¤ò¼èÆÀ¤¹¤ë 
     296        //配達可能日のスタート値から、配達日の配列を取得する 
    297297        $arrDelivDate = lfGetDateArray($start_day, DELIV_DATE_END_MAX); 
    298298    } 
     
    300300} 
    301301 
    302 //ÇÛã²ÄǽÆü¤Î¥¹¥¿¡¼¥ÈÃͤ«¤é¡¢ÇÛãÆü¤ÎÇÛÎó¤ò¼èÆÀ¤¹¤ë 
     302//配達可能日のスタート値から、配達日の配列を取得する 
    303303function lfGetDateArray($start_day, $end_day) { 
    304304    global $arrWDAY; 
    305     //ÇÛã²ÄǽÆü¤Î¥¹¥¿¡¼¥ÈÃͤ¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð 
     305    //配達可能日のスタート値がセットされていれば 
    306306    if($start_day >= 1) { 
    307307        $now_time = time(); 
    308308        $max_day = $start_day + $end_day; 
    309         // ½¸·× 
     309        // 集計 
    310310        for ($i = $start_day; $i < $max_day; $i++) { 
    311             // ´ðËÜ»þ´Ö¤«¤éÆü¿ô¤òÄɲ䷤Ƥ¤¤¯ 
     311            // 基本時間から日数を追加していく 
    312312            $tmp_time = $now_time + ($i * 24 * 3600); 
    313313            list($y, $m, $d, $w) = split(" ", date("y m d w", $tmp_time));   
     
    321321} 
    322322 
    323 //°ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊǼ¤¹¤ë 
     323//一時受注テーブルからの情報を格納する 
    324324function lfSetOrderTempData($uniqid) { 
    325325    global $objQuery; 
     
    331331    $where = "order_temp_id = ?"; 
    332332    $arrRet = $objQuery->select($col, $from, $where, array($uniqid)); 
    333     // DBÃͤμèÆÀ 
     333    // DB値の取得 
    334334    $objFormParam->setParam($arrRet[0]); 
    335335    return $objFormParam; 
Note: See TracChangeset for help on using the changeset viewer.