- Timestamp:
- 2007/07/20 15:58:59 (17 years ago)
- 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
-
Property
svn:ignore
set to
-
branches/feature-module-update/html/mobile/shopping/payment.php
r12157 r15078 17 17 $this->tpl_mainpage = 'shopping/payment.tpl'; 18 18 $this->tpl_onload = 'fnCheckInputPoint();'; 19 $this->tpl_title = " ¤ª»ÙʧÊýË¡¤Î»ØÄê";19 $this->tpl_title = "お支払方法の指定"; 20 20 /* 21 session_start »þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç22 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤Î͸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£23 private-no-expire: ¥¯¥é¥¤¥¢¥ó¥È¤Î¥¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£21 session_start時のno-cacheヘッダーを抑制することで 22 「戻る」ボタン使用時の有効期限切れ表示を抑制する。 23 private-no-expire:クライアントのキャッシュを許可する。 24 24 */ 25 25 session_cache_limiter('private-no-expire'); … … 35 35 $arrInfo = $objSiteInfo->data; 36 36 37 // ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹37 // パラメータ管理クラス 38 38 $objFormParam = new SC_FormParam(); 39 // ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½39 // パラメータ情報の初期化 40 40 lfInitParam(); 41 // POST ÃͤμèÆÀ41 // POST値の取得 42 42 $objFormParam->setParam($_POST); 43 43 44 // ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ¤ò¥Á¥§¥Ã¥¯44 // ユーザユニークIDの取得と購入状態の正当性をチェック 45 45 $uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess); 46 // ¥æ¥Ë¡¼¥¯ID¤ò°ú¤·Ñ¤°46 // ユニークIDを引き継ぐ 47 47 $objPage->tpl_uniqid = $uniqid; 48 48 49 // ²ñ°÷¥í¥°¥¤¥ó¥Á¥§¥Ã¥¯49 // 会員ログインチェック 50 50 if($objCustomer->isLoginSuccess()) { 51 51 $objPage->tpl_login = '1'; … … 53 53 } 54 54 55 // ¶â³Û¤Î¼èÆÀ (¹ØÆþÅÓÃæ¤ÇÇä¤êÀڤ줿¾ì¹ç¤Ë¤Ï¤³¤Î´Ø¿ôÆâ¤Ë¤Æ¤½¤Î¾¦ÉʤθĿô¤¬£°¤Ë¤Ê¤ë)55 // 金額の取得 (購入途中で売り切れた場合にはこの関数内にてその商品の個数が0になる) 56 56 $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo); 57 57 $objPage->arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo); 58 58 59 // ¥«¡¼ÅÔÆâ¤Î¾¦ÉʤÎÇä¤êÀÚ¤ì¥Á¥§¥Ã¥¯59 // カー都内の商品の売り切れチェック 60 60 $objCartSess->chkSoldOut($objCartSess->getCartList(), true); 61 61 62 // Ìá¤ë¥Ü¥¿¥ó¤Î½èÍý62 // 戻るボタンの処理 63 63 if (!empty($_POST['return'])) { 64 64 switch ($_POST['mode']) { … … 67 67 break; 68 68 default: 69 // Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµÏ¿¤·¤Æ¤ª¤¯69 // 正常な推移であることを記録しておく 70 70 $objSiteSess->setRegistFlag(); 71 71 header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_TOP)); … … 75 75 76 76 switch($_POST['mode']) { 77 // »Ùʧ¤¤ÊýË¡»ØÄê ¢ª ÇÛãÆü»þ»ØÄê77 // 支払い方法指定 → 配達日時指定 78 78 case 'deliv_date': 79 // ÆþÎÏÃͤÎÊÑ´¹79 // 入力値の変換 80 80 $objFormParam->convParam(); 81 81 $objPage->arrErr = lfCheckError($objPage->arrData); 82 82 if (!isset($objPage->arrErr['payment_id'])) { 83 // »Ùʧ¤¤ÊýË¡¤ÎÆþÎÏ¥¨¥é¡¼¤Ê¤·83 // 支払い方法の入力エラーなし 84 84 $objPage->tpl_mainpage = 'shopping/deliv_date.tpl'; 85 $objPage->tpl_title = " ÇÛãÆü»þ»ØÄê";85 $objPage->tpl_title = "配達日時指定"; 86 86 break; 87 87 } else { 88 // ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ88 // ユーザユニークIDの取得 89 89 $uniqid = $objSiteSess->getUniqId(); 90 // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊǼ90 // 受注一時テーブルからの情報を格納 91 91 lfSetOrderTempData($uniqid); 92 92 } 93 93 break; 94 94 case 'confirm': 95 // ÆþÎÏÃͤÎÊÑ´¹95 // 入力値の変換 96 96 $objFormParam->convParam(); 97 97 $objPage->arrErr = lfCheckError($objPage->arrData ); 98 // ÆþÎÏ¥¨¥é¡¼¤Ê¤·98 // 入力エラーなし 99 99 if(count($objPage->arrErr) == 0) { 100 // DB ¤Ø¤Î¥Ç¡¼¥¿ÅÐÏ¿100 // DBへのデータ登録 101 101 lfRegistData($uniqid); 102 // Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµÏ¿¤·¤Æ¤ª¤¯102 // 正常に登録されたことを記録しておく 103 103 $objSiteSess->setRegistFlag(); 104 // ³Îǧ¥Ú¡¼¥¸¤Ø°ÜÆ°104 // 確認ページへ移動 105 105 header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_CONFIRM)); 106 106 exit; 107 107 }else{ 108 // ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ108 // ユーザユニークIDの取得 109 109 $uniqid = $objSiteSess->getUniqId(); 110 // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊǼ110 // 受注一時テーブルからの情報を格納 111 111 lfSetOrderTempData($uniqid); 112 112 if (!isset($objPage->arrErr['payment_id'])) { 113 // »Ùʧ¤¤ÊýË¡¤ÎÆþÎÏ¥¨¥é¡¼¤Ê¤·113 // 支払い方法の入力エラーなし 114 114 $objPage->tpl_mainpage = 'shopping/deliv_date.tpl'; 115 $objPage->tpl_title = " ÇÛãÆü»þ»ØÄê";116 } 117 } 118 break; 119 // Á°¤Î¥Ú¡¼¥¸¤ËÌá¤ë115 $objPage->tpl_title = "配達日時指定"; 116 } 117 } 118 break; 119 // 前のページに戻る 120 120 case 'return': 121 // Èó²ñ°÷¤Î¾ì¹ç122 // Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµÏ¿¤·¤Æ¤ª¤¯121 // 非会員の場合 122 // 正常な推移であることを記録しておく 123 123 $objSiteSess->setRegistFlag(); 124 124 header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_TOP)); 125 125 exit; 126 126 break; 127 // »Ùʧ¤¤ÊýË¡¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç127 // 支払い方法が変更された場合 128 128 case 'payment': 129 // ¤³¤³¤Îbreak¤Ï¡¢°ÕÌ£¤¬¤¢¤ë¤Î¤Ç³°¤µ¤Ê¤¤¤Ç²¼¤µ¤¤¡£129 // ここのbreakは、意味があるので外さないで下さい。 130 130 break; 131 131 default: 132 // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊǼ132 // 受注一時テーブルからの情報を格納 133 133 lfSetOrderTempData($uniqid); 134 134 break; 135 135 } 136 136 137 // ŹÊÞ¾ðÊó¤Î¼èÆÀ137 // 店舗情報の取得 138 138 $arrInfo = $objSiteInfo->data; 139 // ¹ØÆþ¶â³Û¤Î¼èÆÀÆÀ139 // 購入金額の取得得 140 140 $total_pretax = $objCartSess->getAllProductsTotal($arrInfo); 141 // »Ùʧ¤¤ÊýË¡¤Î¼èÆÀ141 // 支払い方法の取得 142 142 $objPage->arrPayment = lfGetPayment($total_pretax); 143 // ÇÛÁ÷»þ´Ö¤Î¼èÆÀ143 // 配送時間の取得 144 144 $arrRet = sfGetDelivTime($objFormParam->getValue('payment_id')); 145 145 $objPage->arrDelivTime = sfArrKeyValue($arrRet, 'time_id', 'deliv_time'); 146 146 $objPage->objCustomer = $objCustomer; 147 // ¡¡ÇÛÁ÷Æü°ìÍ÷¤Î¼èÆÀ147 // 配送日一覧の取得 148 148 $objPage->arrDelivDate = lfGetDelivDate(); 149 149 … … 153 153 $objView->display(SITE_FRAME); 154 154 //-------------------------------------------------------------------------------------------------------------------------- 155 /* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½*/155 /* パラメータ情報の初期化 */ 156 156 function lfInitParam() { 157 157 global $objFormParam; 158 $objFormParam->addParam(" ¤ª»Ùʧ¤¤ÊýË¡", "payment_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));159 $objFormParam->addParam(" ¥Ý¥¤¥ó¥È", "use_point", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK", "ZERO_START"));160 $objFormParam->addParam(" ÇÛã»þ´Ö", "deliv_time_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));161 $objFormParam->addParam(" ¤´¼ÁÌä", "message", LTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));162 $objFormParam->addParam(" ¥Ý¥¤¥ó¥È¤ò»ÈÍѤ¹¤ë", "point_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), '2');163 $objFormParam->addParam(" ÇÛãÆü", "deliv_date", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"));158 $objFormParam->addParam("お支払い方法", "payment_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 159 $objFormParam->addParam("ポイント", "use_point", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK", "ZERO_START")); 160 $objFormParam->addParam("配達時間", "deliv_time_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 161 $objFormParam->addParam("ご質問", "message", LTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 162 $objFormParam->addParam("ポイントを使用する", "point_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), '2'); 163 $objFormParam->addParam("配達日", "deliv_date", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 164 164 } 165 165 … … 167 167 $objQuery = new SC_Query(); 168 168 $objQuery->setorder("rank DESC"); 169 // ºï½ü¤µ¤ì¤Æ¤¤¤Ê¤¤»ÙʧÊýË¡¤ò¼èÆÀ169 //削除されていない支払方法を取得 170 170 $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) "); 171 // ÍøÍѾò·ï¤«¤é»Ùʧ²ÄǽÊýË¡¤òȽÄê171 //利用条件から支払可能方法を判定 172 172 foreach($arrRet as $data) { 173 // ²¼¸Â¤È¾å¸Â¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë173 //下限と上限が設定されている 174 174 if($data['rule'] > 0 && $data['upper_rule'] > 0) { 175 175 if($data['rule'] <= $total_pretax && $data['upper_rule'] >= $total_pretax) { 176 176 $arrPayment[] = $data; 177 177 } 178 // ²¼¸Â¤Î¤ßÀßÄꤵ¤ì¤Æ¤¤¤ë178 //下限のみ設定されている 179 179 } elseif($data['rule'] > 0) { 180 180 if($data['rule'] <= $total_pretax) { 181 181 $arrPayment[] = $data; 182 182 } 183 // ¾å¸Â¤Î¤ßÀßÄꤵ¤ì¤Æ¤¤¤ë183 //上限のみ設定されている 184 184 } elseif($data['upper_rule'] > 0) { 185 185 if($data['upper_rule'] >= $total_pretax) { 186 186 $arrPayment[] = $data; 187 187 } 188 // ÀßÄê¤Ê¤·188 //設定なし 189 189 } else { 190 190 $arrPayment[] = $data; … … 194 194 } 195 195 196 /* ÆþÎÏÆâÍƤΥÁ¥§¥Ã¥¯*/196 /* 入力内容のチェック */ 197 197 function lfCheckError($arrData) { 198 198 global $objFormParam; 199 199 global $objCustomer; 200 // ÆþÎϥǡ¼¥¿¤òÅϤ¹¡£200 // 入力データを渡す。 201 201 $arrRet = $objFormParam->getHashArray(); 202 202 $objErr = new SC_CheckError($arrRet); … … 204 204 205 205 if($_POST['point_check'] == '1') { 206 $objErr->doFunc(array(" ¥Ý¥¤¥ó¥È¤ò»ÈÍѤ¹¤ë", "point_check"), array("EXIST_CHECK"));207 $objErr->doFunc(array(" ¥Ý¥¤¥ó¥È", "use_point"), array("EXIST_CHECK"));206 $objErr->doFunc(array("ポイントを使用する", "point_check"), array("EXIST_CHECK")); 207 $objErr->doFunc(array("ポイント", "use_point"), array("EXIST_CHECK")); 208 208 $max_point = $objCustomer->getValue('point'); 209 209 if($max_point == "") { … … 211 211 } 212 212 if($arrRet['use_point'] > $max_point) { 213 $objErr->arrErr['use_point'] = " ¢¨ ¤´ÍøÍѥݥ¤¥ó¥È¤¬½ê»ý¥Ý¥¤¥ó¥È¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£<br>";213 $objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br>"; 214 214 } 215 215 if(($arrRet['use_point'] * POINT_VALUE) > $arrData['subtotal']) { 216 $objErr->arrErr['use_point'] = " ¢¨ ¤´ÍøÍѥݥ¤¥ó¥È¤¬¤´¹ØÆþ¶â³Û¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£<br>";216 $objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br>"; 217 217 } 218 218 } … … 220 220 } 221 221 222 /* »Ùʧ¤¤Êýˡʸ»úÎó¤Î¼èÆÀ*/222 /* 支払い方法文字列の取得 */ 223 223 function lfGetPaymentInfo($payment_id) { 224 224 $objQuery = new SC_Query(); … … 228 228 } 229 229 230 /* ÇÛÁ÷»þ´Öʸ»úÎó¤Î¼èÆÀ*/230 /* 配送時間文字列の取得 */ 231 231 function lfGetDelivTimeInfo($time_id) { 232 232 $objQuery = new SC_Query(); … … 236 236 } 237 237 238 /* DB ¤Ø¥Ç¡¼¥¿¤ÎÅÐÏ¿*/238 /* DBへデータの登録 */ 239 239 function lfRegistData($uniqid) { 240 240 global $objFormParam; 241 241 $arrRet = $objFormParam->getHashArray(); 242 242 $sqlval = $objFormParam->getDbArray(); 243 // ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ®243 // 登録データの作成 244 244 $sqlval['order_temp_id'] = $uniqid; 245 245 $sqlval['update_date'] = 'Now()'; … … 260 260 } 261 261 262 // »ÈÍѥݥ¤¥ó¥È¤ÎÀßÄê262 // 使用ポイントの設定 263 263 if($sqlval['point_check'] != '1') { 264 264 $sqlval['use_point'] = 0; … … 268 268 } 269 269 270 /* ÇÛãÆü°ìÍ÷¤ò¼èÆÀ¤¹¤ë*/270 /* 配達日一覧を取得する */ 271 271 function lfGetDelivDate() { 272 272 $objCartSess = new SC_CartSession(); 273 273 $objQuery = new SC_Query(); 274 // ¾¦ÉÊID¤Î¼èÆÀ274 // 商品IDの取得 275 275 $max = $objCartSess->getMax(); 276 276 for($i = 1; $i <= $max; $i++) { … … 281 281 if(count($arrID['product_id']) > 0) { 282 282 $id = implode(",", $arrID['product_id']); 283 // ¾¦Éʤ«¤éȯÁ÷Ìܰ¤μèÆÀ283 //商品から発送目安の取得 284 284 $deliv_date = $objQuery->get("dtb_products", "MAX(deliv_date_id)", "product_id IN (".$id.")"); 285 // ȯÁ÷ÌÜ°Â285 //発送目安 286 286 switch($deliv_date) { 287 // ¨ÆüȯÁ÷287 //即日発送 288 288 case '1': 289 289 $start_day = 1; 290 290 break; 291 //1-2 Æü¸å291 //1-2日後 292 292 case '2': 293 293 $start_day = 3; 294 294 break; 295 //3-4 Æü¸å295 //3-4日後 296 296 case '3': 297 297 $start_day = 5; 298 298 break; 299 //1 ½µ´Ö°ÊÆâ299 //1週間以内 300 300 case '4': 301 301 $start_day = 8; 302 302 break; 303 //2 ½µ´Ö°ÊÆâ303 //2週間以内 304 304 case '5': 305 305 $start_day = 15; 306 306 break; 307 //3 ½µ´Ö°ÊÆâ307 //3週間以内 308 308 case '6': 309 309 $start_day = 22; 310 310 break; 311 //1 ¥ö·î°ÊÆâ311 //1ヶ月以内 312 312 case '7': 313 313 $start_day = 32; 314 314 break; 315 //2 ¥ö·î°Ê¹ß315 //2ヶ月以降 316 316 case '8': 317 317 $start_day = 62; 318 318 break; 319 // ¤ª¼è¤ê´ó¤»(¾¦ÉÊÆþ²Ù¸å)319 //お取り寄せ(商品入荷後) 320 320 case '9': 321 321 $start_day = ""; 322 322 break; 323 323 default: 324 // ¤ªÆϤ±Æü¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç324 //お届け日が設定されていない場合 325 325 $start_day = ""; 326 326 break; 327 327 } 328 // ÇÛã²ÄǽÆü¤Î¥¹¥¿¡¼¥ÈÃͤ«¤é¡¢ÇÛãÆü¤ÎÇÛÎó¤ò¼èÆÀ¤¹¤ë328 //配達可能日のスタート値から、配達日の配列を取得する 329 329 $arrDelivDate = lfGetDateArray($start_day, DELIV_DATE_END_MAX); 330 330 } … … 332 332 } 333 333 334 // ÇÛã²ÄǽÆü¤Î¥¹¥¿¡¼¥ÈÃͤ«¤é¡¢ÇÛãÆü¤ÎÇÛÎó¤ò¼èÆÀ¤¹¤ë334 //配達可能日のスタート値から、配達日の配列を取得する 335 335 function lfGetDateArray($start_day, $end_day) { 336 336 global $arrWDAY; 337 // ÇÛã²ÄǽÆü¤Î¥¹¥¿¡¼¥ÈÃͤ¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð337 //配達可能日のスタート値がセットされていれば 338 338 if($start_day >= 1) { 339 339 $now_time = time(); 340 340 $max_day = $start_day + $end_day; 341 // ½¸·×341 // 集計 342 342 for ($i = $start_day; $i < $max_day; $i++) { 343 // ´ðËÜ»þ´Ö¤«¤éÆü¿ô¤òÄɲ䷤Ƥ¤¤¯343 // 基本時間から日数を追加していく 344 344 $tmp_time = $now_time + ($i * 24 * 3600); 345 345 list($y, $m, $d, $w) = split(" ", date("y m d w", $tmp_time)); … … 353 353 } 354 354 355 // °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊǼ¤¹¤ë355 //一時受注テーブルからの情報を格納する 356 356 function lfSetOrderTempData($uniqid) { 357 357 global $objQuery; … … 363 363 $where = "order_temp_id = ?"; 364 364 $arrRet = $objQuery->select($col, $from, $where, array($uniqid)); 365 // DB ÃͤμèÆÀ365 // DB値の取得 366 366 $objFormParam->setParam($arrRet[0]); 367 367 return $objFormParam;
Note: See TracChangeset
for help on using the changeset viewer.