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