- Timestamp:
- 2010/03/11 10:35:11 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tmp/version-2_5-test/data/class/pages/shopping/LC_Page_Shopping_Complete.php
r18562 r18609 51 51 $this->arrCONVENIENCE = $masterData->getMasterData("mtb_convenience"); 52 52 $this->arrCONVENIMESSAGE = $masterData->getMasterData("mtb_conveni_message"); 53 54 $this->allowClientCache();55 53 } 56 54 … … 107 105 // URLの場合にはリンクつきで表示させる 108 106 if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $val["value"])) { 109 $arrOther[$key]["value"] = "<a href=' #' onClick=\"window.open('". $val["value"] . "'); \">" . $val["value"] ."</a>";107 $arrOther[$key]["value"] = "<a href='". $val["value"] . "' target=\"_blank\">" . $val["value"] ."</a>"; 110 108 } 111 109 } … … 177 175 178 176 // 前のページで正しく登録手続きが行われたか判定 179 SC_Utils_Ex::sfIsPrePage($this->objSiteSess , true);177 SC_Utils_Ex::sfIsPrePage($this->objSiteSess); 180 178 // ユーザユニークIDの取得と購入状態の正当性をチェック 181 179 $uniqid = SC_Utils_Ex::sfCheckNormalAccess($this->objSiteSess, $this->objCartSess); … … 300 298 $this->lfSetCustomerPurchase($this->objCustomer->getValue('customer_id'), $arrData, $objQuery); 301 299 } else { 302 //購入時強制会員登録 303 switch(PURCHASE_CUSTOMER_REGIST) { 304 //無効 305 case '0': 306 // 購入時会員登録 307 if(isset($arrData['member_check']) && $arrData['member_check'] == '1') { 308 // 会員登録 309 $customer_id = $this->lfRegistCustomer($arrData, $this->arrInfo); 310 // 購入集計を顧客テーブルに反映 311 $this->lfSetCustomerPurchase($customer_id, $arrData, $objQuery); 312 } 313 break; 314 //有効 315 case '1': 300 // 購入時強制会員登録が有効の場合 301 if (PURCHASE_CUSTOMER_REGIST == '1') { 316 302 // 会員登録 317 303 $customer_id = $this->lfRegistCustomer($arrData, $this->arrInfo); 318 304 // 購入集計を顧客テーブルに反映 319 305 $this->lfSetCustomerPurchase($customer_id, $arrData, $objQuery); 320 break; 321 } 322 306 } 323 307 } 324 308 // 一時テーブルを受注テーブルに格納する … … 377 361 378 362 // 仮会員登録の場合 379 if ($confirm_flg == true) {363 if ($confirm_flg == true) { 380 364 // 重複しない会員登録キーを発行する。 381 365 $count = 1; … … 397 381 398 382 // メルマガフラグ 399 switch ($arrData["mailmaga_flg"]) {400 case 1: 383 switch ($arrData["mailmaga_flg"]) { 384 case 1: // HTMLメール 401 385 $mail_flag = 4; 402 386 break; 403 case 2: 387 case 2: // TEXTメール 404 388 $mail_flag = 5; 405 389 break; … … 434 418 435 419 //仮会員メール 436 if ($confirm_flg == true) {437 $subject = $mailHelper->sfMakeSubject( $objQuery,$objMailView,$objMailPage,"会員登録のご確認");438 $body = $objMailView->fetch( "mail_templates/customer_mail.tpl");420 if ($confirm_flg == true) { 421 $subject = $mailHelper->sfMakeSubject('会員登録のご確認'); 422 $body = $objMailView->fetch('mail_templates/customer_mail.tpl'); 439 423 //本会員メール 440 } else{441 $subject = $mailHelper->sfMakeSubject( $objQuery,$objMailView,$objMailPage,'会員登録のご完了');442 $body = $objMailView->fetch( "mail_templates/customer_regist_mail.tpl");424 } else { 425 $subject = $mailHelper->sfMakeSubject('会員登録のご完了'); 426 $body = $objMailView->fetch('mail_templates/customer_regist_mail.tpl'); 443 427 // ログイン状態にする 444 428 $this->objCustomer->setLogin($arrData['order_email']); … … 465 449 } 466 450 467 // 受注テーブルへ登録 451 /** 452 * 受注テーブルへ登録 453 * 454 * @return integer 注文番号 455 */ 468 456 function lfRegistOrder($objQuery, $arrData, $objCampaignSess = null) { 469 457 $sqlval = $arrData; 470 458 471 459 // 受注テーブルに書き込まない列を除去 472 unset($sqlval['mailmaga_flg']); // メルマガチェック 473 unset($sqlval['deliv_check']); // 別のお届け先チェック 474 unset($sqlval['point_check']); // ポイント利用チェック 475 unset($sqlval['member_check']); // 購入時会員チェック 476 unset($sqlval['password']); // ログインパスワード 477 unset($sqlval['reminder']); // リマインダー質問 478 unset($sqlval['reminder_answer']); // リマインダー答え 479 unset($sqlval['mail_flag']); // メールフラグ 480 unset($sqlval['session']); // セッション情報 460 unset($sqlval['mailmaga_flg']); // メルマガチェック 461 unset($sqlval['deliv_check']); // 別のお届け先チェック 462 unset($sqlval['point_check']); // ポイント利用チェック 463 unset($sqlval['password']); // ログインパスワード 464 unset($sqlval['reminder']); // リマインダー質問 465 unset($sqlval['reminder_answer']); // リマインダー答え 466 unset($sqlval['mail_flag']); // メールフラグ 467 unset($sqlval['session']); // セッション情報 468 469 // ポイントは別登録 470 $addPoint = $sqlval['add_point']; 471 $usePoint = $sqlval['use_point']; 472 $sqlval['add_point'] = 0; 473 $sqlval['use_point'] = 0; 481 474 482 475 // 注文ステータス:指定が無ければ新規受付に設定 483 if ($sqlval["status"] == ""){484 $sqlval['status'] = '1';476 if (strlen($sqlval['status']) == 0) { 477 $sqlval['status'] = ORDER_NEW; 485 478 } 486 479 487 480 // 別のお届け先を指定していない場合、お届け先に登録住所をコピーする。 488 if ($arrData["deliv_check"] == "-1") {481 if ($arrData["deliv_check"] == "-1") { 489 482 $sqlval['deliv_name01'] = $arrData['order_name01']; 490 483 $sqlval['deliv_name02'] = $arrData['order_name02']; … … 501 494 } 502 495 503 $order_id = $arrData['order_id']; // 注文番号 504 $sqlval['create_date'] = 'now()'; // 受注日 496 $order_id = $arrData['order_id']; // 注文番号 497 $sqlval['create_date'] = 'Now()'; // 受注日 498 $sqlval['update_date'] = 'Now()'; // 更新日時 505 499 506 500 // キャンペーンID 507 501 if (!defined("MOBILE_SITE")) { 508 if ($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId();502 if ($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId(); 509 503 } 510 504 … … 512 506 //$sqlval = lfGetInsParam($sqlval); 513 507 514 // INSERTの実行508 // 受注テーブルの登録 515 509 $objQuery->insert("dtb_order", $sqlval); 510 511 // 受注.対応状況の更新 512 SC_Helper_DB_Ex::sfUpdateOrderStatus($order_id, null, $addPoint, $usePoint); 516 513 517 514 return $order_id; … … 554 551 $objQuery->insert("dtb_order_detail", $sqlval); 555 552 } else { 556 if (defined("MOBILE_SITE")) { 557 SC_Utils_Ex::sfDispSiteError(CART_NOT_FOUND, "", false, "", true); 558 } else { 559 SC_Utils_Ex::sfDispSiteError(CART_NOT_FOUND); 560 } 553 SC_Utils_Ex::sfDispSiteError(CART_NOT_FOUND); 561 554 } 562 555 } … … 577 570 578 571 $sqlval = $arrOrder[0]; 579 $sqlval['create_date'] = ' now()';572 $sqlval['create_date'] = 'Now()'; 580 573 581 574 // INSERTの実行 … … 649 642 /* 購入情報を会員テーブルに登録する */ 650 643 function lfSetCustomerPurchase($customer_id, $arrData, &$objQuery) { 651 $col = "first_buy_date, last_buy_date, buy_times, buy_total , point";644 $col = "first_buy_date, last_buy_date, buy_times, buy_total"; 652 645 $where = "customer_id = ?"; 653 646 $arrRet = $objQuery->select($col, "dtb_customer", $where, array($customer_id)); … … 660 653 $sqlval['buy_times']++; 661 654 $sqlval['buy_total']+= $arrData['total']; 662 if (USE_POINT === false) {663 $sqlval['point'] = $sqlval['point'];664 } else {665 //$sqlval['point'] = ($sqlval['point'] - $arrData['use_point']);666 $sqlval['point'] = ($sqlval['point'] + $arrData['add_point'] - $arrData['use_point']);667 }668 669 // ポイントが不足している場合670 if($sqlval['point'] < 0) {671 $objQuery->rollback();672 SC_Utils_Ex::sfDispSiteError(LACK_POINT);673 }674 655 675 656 $objQuery->update("dtb_customer", $sqlval, $where, array($customer_id)); … … 678 659 // 在庫を減らす処理 679 660 function lfReduceStock(&$objQuery, $arrID, $quantity) { 661 $objDb = new SC_Helper_DB_Ex(); 662 663 if (!SC_Utils_Ex::sfIsInt($quantity)) { 664 $objQuery->rollback(); 665 SC_Utils_Ex::sfDispException(); 666 } 667 680 668 $where = "product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?"; 681 669 $arrRet = $objQuery->select("stock, stock_unlimited", "dtb_products_class", $where, $arrID); 682 670 683 // 売り切れエラー684 if(($arrRet[0]['stock_unlimited'] != '1' && $arrRet[0]['stock'] < $quantity) || $quantity == 0) {671 if (($arrRet[0]['stock_unlimited'] != '1' && $arrRet[0]['stock'] < $quantity) || $quantity == 0) { 672 // 売り切れエラー 685 673 $objQuery->rollback(); 686 674 SC_Utils_Ex::sfDispSiteError(SOLD_OUT, "", true); 687 // 無制限の場合、在庫はNULL 688 } elseif($arrRet[0]['stock_unlimited'] == '1') { 689 $sqlval['stock'] = null; 690 $objQuery->update("dtb_products_class", $sqlval, $where, $arrID); 675 } 676 691 677 // 在庫を減らす 692 } else { 693 $sqlval['stock'] = ($arrRet[0]['stock'] - $quantity); 694 if($sqlval['stock'] == "") { 695 $sqlval['stock'] = '0'; 696 } 697 $objQuery->update("dtb_products_class", $sqlval, $where, $arrID); 698 } 678 $arrRawSql = array(); 679 $arrRawSql['stock'] = 'stock - ?'; 680 $arrRawSqlVal[] = $quantity; 681 $objQuery->update('dtb_products_class', array(), $where, $arrID, $arrRawSql, $arrRawSqlVal); 682 683 // 在庫無し商品の非表示対応 684 if (NOSTOCK_HIDDEN === true) { 685 // 件数カウントバッチ実行 686 $objDb->sfCategory_Count($objQuery); 687 } 688 699 689 } 700 690
Note: See TracChangeset
for help on using the changeset viewer.