Changeset 20071
- Timestamp:
- 2011/02/02 20:55:36 (13 years ago)
- bzr:base-revision:
- ohkouchi@loop-az.jp-20110202090956-vnxxjstny3w860q3
- bzr:committer:
- Kentaro Ohkouchi <ohkouchi@loop-az.jp>
- bzr:file-ids:
data/class/pages/shopping/LC_Page_Shopping.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping.php- bzr:mapping-version:
- v4
- bzr:merge:
ohkouchi@loop-az.jp-20110202112734-ekyumnc7pcgigygi- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- ohkouchi@loop-az.jp-20110202115525-9evoy1y4rcpgsrr5
- bzr:revno:
- 2799
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:timestamp:
- 2011-02-02 20:55:25.065000057 +0900
- bzr:user-agent:
- bzr2.2.1+bzr-svn1.0.4
- svn:original-date:
- 2011-02-02T11:55:25.065000Z
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php
r20070 r20071 33 33 */ 34 34 class LC_Page_Shopping extends LC_Page { 35 36 // {{{ properties37 38 /** フォームパラメータ */39 var $objFormParam;40 41 /** 年 */42 var $year;43 35 44 36 // }}} … … 58 50 $this->arrJob = $masterData->getMasterData("mtb_job"); 59 51 $this->tpl_onload = 'fnCheckInputDeliv();'; 52 53 $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 54 $this->arrYear = $objDate->getYear('', 1950, ''); 55 $this->arrMonth = $objDate->getMonth(true); 56 $this->arrDay = $objDate->getDay(true); 57 60 58 $this->httpCacheControl('nocache'); 61 59 } … … 83 81 $objCookie = new SC_Cookie(); 84 82 $objPurchase = new SC_Helper_Purchase_Ex(); 85 $this->objFormParam = new SC_FormParam(); // フォーム用 86 $this->lfInitParam(); // パラメータ情報の初期化 87 $this->objFormParam->setParam($_POST); // POST値の取得 88 89 $uniqid = $objSiteSess->getUniqId(); 90 $objPurchase->verifyChangeCart($uniqid, $objCartSess); 91 92 $this->tpl_uniqid = $uniqid; 83 $objFormParam = new SC_FormParam(); 84 85 $this->lfInitParam($objFormParam); 86 $objFormParam->setParam($_POST); 87 88 $this->tpl_uniqid = $objSiteSess->getUniqId(); 89 $objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess); 93 90 94 91 $this->cartKey = $objCartSess->getKey(); 95 92 96 // ログインチェック 97 if($objCustomer->isLoginSuccess(true)) { 98 99 switch ($this->cartKey) { 100 // ダウンロード商品の場合は支払方法設定画面に転送 101 case PRODUCT_TYPE_DOWNLOAD: 102 // 会員情報の住所を受注一時テーブルに書き込む 103 $objPurchase->saveOrderTemp($uniqid, array(), $objCustomer); 104 // 正常に登録されたことを記録しておく 105 $objSiteSess->setRegistFlag(); 106 SC_Response_Ex::sendRedirect('payment.php'); 107 exit; 108 break; 109 110 case PRODUCT_TYPE_NORMAL: 111 default: 112 // お届け先設定画面に転送 113 SC_Response_Ex::sendRedirect('deliv.php'); 93 // ログイン済みの場合は次画面に遷移 94 if ($objCustomer->isLoginSuccess(true)) { 95 SC_Response_Ex::sendRedirect( 96 $this->getNextLocation($this->cartKey, $this->tpl_uniqid, 97 $objCustomer)); 98 exit; 99 } 100 // 非会員かつ, ダウンロード商品の場合はエラー表示 101 else { 102 if ($this->cartKey == PRODUCT_TYPE_DOWNLOAD) { 103 SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, 104 "ダウンロード商品を含むお買い物は、会員登録が必要です。<br/>" 105 . "お手数ですが、会員登録をお願いします。"); 114 106 exit; 115 107 } … … 119 111 if (!SC_Helper_Session_Ex::isValidToken()) { 120 112 SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); 121 } 122 } 123 124 switch($this->getMode()) { 113 exit; 114 } 115 } 116 117 switch ($this->getMode()) { 118 // 登録 125 119 case 'nonmember_confirm': 126 120 $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 127 121 $this->tpl_title = 'お客様情報入力'; 128 //非会員のダウンロード商品を含んだ買い物はNG 129 if ($this->cartKey == PRODUCT_TYPE_DOWNLOAD) { 130 SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, 131 "ダウンロード商品を含むお買い物は、会員登録が必要です。<br/>お手数ですが、会員登録をお願いします。"); 132 } 133 // ※breakなし 134 case 'confirm': 135 $this->arrErr = $this->lfCheckError(); 136 137 // 入力エラーなし 138 if(count($this->arrErr) == 0) { 139 // DBへのデータ登録 140 $this->lfRegistData($uniqid, $objPurchase, $objCustomer, $this->cartKey); 141 // 正常に登録されたことを記録しておく 122 123 $this->arrErr = $this->lfCheckError($objFormParam); 124 125 if (SC_Utils_Ex::isBlank($this->arrErr)) { 126 127 $this->lfRegistData($this->tpl_uniqid, $objPurchase, 128 $objCustomer, $objFormParam); 129 142 130 $objSiteSess->setRegistFlag(); 143 // お支払い方法選択ページへ移動144 131 SC_Response_Ex::sendRedirect(SHOPPING_PAYMENT_URLPATH); 145 132 exit; 146 133 } 147 148 134 break; 135 149 136 // 前のページに戻る 150 137 case 'return': 151 // 確認ページへ移動152 138 SC_Response_Ex::sendRedirect(CART_URLPATH); 153 139 exit; 154 140 break; 155 141 142 // 複数配送 156 143 case 'multiple': 157 $this->arrErr = $this->lfCheckError(); 158 159 // 入力エラーなし 160 if(count($this->arrErr) == 0) { 161 // DBへのデータ登録 162 $this->lfRegistData($uniqid, $objPurchase, $objCustomer, $this->cartKey, true); 163 // 正常に登録されたことを記録しておく 144 $this->arrErr = $this->lfCheckError($objFormParam); 145 146 if (SC_Utils_Ex::isBlank($this->arrErr)) { 147 $this->lfRegistData($this->tpl_uniqid, $objPurchase, 148 $objCustomer, $objFormParam, true); 149 164 150 $objSiteSess->setRegistFlag(); 165 166 151 SC_Response_Ex::sendRedirect(MULTIPLE_URLPATH); 167 152 exit; 168 153 } 169 // breakなし 170 154 // ※breakなし 155 156 // 入力 171 157 case 'nonmember': 172 158 $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 173 159 $this->tpl_title = 'お客様情報入力'; 174 //非会員のダウンロード商品を含んだ買い物はNG 175 if ($this->cartKey == PRODUCT_TYPE_DOWNLOAD) { 176 SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, 177 "ダウンロード商品を含むお買い物は、会員登録が必要です。<br/>お手数ですが、会員登録をお願いします。"); 178 } 160 179 161 // ※breakなし 162 180 163 default: 181 if(isset($_GET['from']) && $_GET['from'] == 'nonmember') { 164 // 前のページから戻ってきた場合 165 if (isset($_GET['from']) && $_GET['from'] == 'nonmember') { 182 166 $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 183 167 $this->tpl_title = 'お客様情報入力'; 184 168 } 185 $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); 186 if (empty($arrOrderTemp)) $arrOrderTemp = array('order_email' => "", 187 'order_birth' => ""); 188 $arrShippingTemp = $objPurchase->getShippingTemp(); 189 // DB値の取得 190 $this->objFormParam->setParam($arrOrderTemp); 191 /* 192 * count($arrShippingTemp) > 1 は複数配送であり, 193 * $arrShippingTemp[0] は注文者が格納されている 194 */ 195 if (count($arrShippingTemp) > 1) { 196 $this->objFormParam->setParam($arrShippingTemp[1]); 197 } else { 198 $this->objFormParam->setParam($arrShippingTemp[0]); 199 } 200 $this->objFormParam->setValue('order_email02', $arrOrderTemp['order_email']); 201 $this->objFormParam->setDBDate($arrOrderTemp['order_birth']); 169 170 $this->setFormParams($objFormParam, $objPurchase, $this->tpl_uniqid); 202 171 $objPurchase->unsetShippingTemp(); 203 172 } 204 173 205 // クッキー判定174 // 記憶したメールアドレスを取得 206 175 $this->tpl_login_email = $objCookie->getCookie('login_email'); 207 if ($this->tpl_login_email != "") {176 if (!SC_Utils_Ex::isBlank($this->tpl_login_email)) { 208 177 $this->tpl_login_memory = "1"; 209 178 } 210 179 211 // 生年月日選択肢の取得212 $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now")));213 $this->arrYear = $objDate->getYear('', 1950, '');214 $this->arrMonth = $objDate->getMonth(true);215 $this->arrDay = $objDate->getDay(true);216 217 180 // 入力値の取得 218 $this->arrForm = $ this->objFormParam->getFormParamList();181 $this->arrForm = $objFormParam->getFormParamList(); 219 182 220 183 $this->transactionid = SC_Helper_Session_Ex::getToken(); 221 184 222 185 // 携帯端末IDが一致する会員が存在するかどうかをチェックする。 223 if (Net_UserAgent_Mobile::isMobile() === true) {186 if (SC_Display::detectDevice() === DEVICE_TYPE_MOBILE) { 224 187 $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId(); 225 188 } … … 235 198 } 236 199 237 /* パラメータ情報の初期化 */ 238 function lfInitParam() { 239 $this->objFormParam->addParam("お名前(姓)", "order_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 240 $this->objFormParam->addParam("お名前(名)", "order_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 241 $this->objFormParam->addParam("お名前(フリガナ・姓)", "order_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "KANA_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 242 $this->objFormParam->addParam("お名前(フリガナ・名)", "order_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "KANA_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 243 $this->objFormParam->addParam("郵便番号1", "order_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 244 $this->objFormParam->addParam("郵便番号2", "order_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 245 $this->objFormParam->addParam("都道府県", "order_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 246 $this->objFormParam->addParam("住所1", "order_addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 247 $this->objFormParam->addParam("住所2", "order_addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 248 $this->objFormParam->addParam("電話番号1", "order_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 249 $this->objFormParam->addParam("電話番号2", "order_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 250 $this->objFormParam->addParam("電話番号3", "order_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 251 $this->objFormParam->addParam("FAX番号1", "order_fax01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 252 $this->objFormParam->addParam("FAX番号2", "order_fax02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 253 $this->objFormParam->addParam("FAX番号3", "order_fax03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 254 $this->objFormParam->addParam("メールアドレス", "order_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK")); 255 $this->objFormParam->addParam("メールアドレス(確認)", "order_email02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK"), "", false); 256 $this->objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 257 $this->objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 258 $this->objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 259 $this->objFormParam->addParam("性別", "order_sex", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 260 $this->objFormParam->addParam("職業", "order_job", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 261 $this->objFormParam->addParam("別のお届け先", "deliv_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 262 $this->objFormParam->addParam("お名前(姓)", "shipping_name01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 263 $this->objFormParam->addParam("お名前(名)", "shipping_name02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 264 $this->objFormParam->addParam("お名前(フリガナ・姓)", "shipping_kana01", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 265 $this->objFormParam->addParam("お名前(フリガナ・名)", "shipping_kana02", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 266 $this->objFormParam->addParam("郵便番号1", "shipping_zip01", ZIP01_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 267 $this->objFormParam->addParam("郵便番号2", "shipping_zip02", ZIP02_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 268 $this->objFormParam->addParam("都道府県", "shipping_pref", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 269 $this->objFormParam->addParam("住所1", "shipping_addr01", MTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 270 $this->objFormParam->addParam("住所2", "shipping_addr02", MTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 271 $this->objFormParam->addParam("電話番号1", "shipping_tel01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 272 $this->objFormParam->addParam("電話番号2", "shipping_tel02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 273 $this->objFormParam->addParam("電話番号3", "shipping_tel03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 274 $this->objFormParam->addParam("メールマガジン", "mail_flag", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), 1); 275 } 276 277 /* DBへデータの登録 */ 278 function lfRegistData($uniqid, &$objPurchase, &$objCustomer, $productTypeId, $isMultiple = false) { 279 $params = $this->objFormParam->getHashArray(); 280 $sqlval = $this->objFormParam->getDbArray(); 200 /** 201 * パラメータ情報の初期化を行う. 202 * 203 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 204 * @return void 205 */ 206 function lfInitParam(&$objFormParam) { 207 $objFormParam->addParam("お名前(姓)", "order_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 208 $objFormParam->addParam("お名前(名)", "order_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 209 $objFormParam->addParam("お名前(フリガナ・姓)", "order_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "KANA_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 210 $objFormParam->addParam("お名前(フリガナ・名)", "order_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "KANA_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 211 $objFormParam->addParam("郵便番号1", "order_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 212 $objFormParam->addParam("郵便番号2", "order_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 213 $objFormParam->addParam("都道府県", "order_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 214 $objFormParam->addParam("住所1", "order_addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 215 $objFormParam->addParam("住所2", "order_addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 216 $objFormParam->addParam("電話番号1", "order_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 217 $objFormParam->addParam("電話番号2", "order_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 218 $objFormParam->addParam("電話番号3", "order_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 219 $objFormParam->addParam("FAX番号1", "order_fax01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 220 $objFormParam->addParam("FAX番号2", "order_fax02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 221 $objFormParam->addParam("FAX番号3", "order_fax03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 222 $objFormParam->addParam("メールアドレス", "order_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK")); 223 $objFormParam->addParam("メールアドレス(確認)", "order_email02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK"), "", false); 224 $objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 225 $objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 226 $objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 227 $objFormParam->addParam("性別", "order_sex", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 228 $objFormParam->addParam("職業", "order_job", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 229 $objFormParam->addParam("別のお届け先", "deliv_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 230 $objFormParam->addParam("お名前(姓)", "shipping_name01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 231 $objFormParam->addParam("お名前(名)", "shipping_name02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 232 $objFormParam->addParam("お名前(フリガナ・姓)", "shipping_kana01", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 233 $objFormParam->addParam("お名前(フリガナ・名)", "shipping_kana02", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 234 $objFormParam->addParam("郵便番号1", "shipping_zip01", ZIP01_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 235 $objFormParam->addParam("郵便番号2", "shipping_zip02", ZIP02_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 236 $objFormParam->addParam("都道府県", "shipping_pref", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 237 $objFormParam->addParam("住所1", "shipping_addr01", MTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 238 $objFormParam->addParam("住所2", "shipping_addr02", MTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 239 $objFormParam->addParam("電話番号1", "shipping_tel01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 240 $objFormParam->addParam("電話番号2", "shipping_tel02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 241 $objFormParam->addParam("電話番号3", "shipping_tel03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 242 $objFormParam->addParam("メールマガジン", "mail_flag", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), 1); 243 } 244 245 /** 246 * ログイン済みの場合の遷移先を取得する. 247 * 248 * 商品種別IDが, ダウンロード商品の場合は, 会員情報を受注一時情報に保存し, 249 * 支払方法選択画面のパスを返す. 250 * それ以外は, お届け先選択画面のパスを返す. 251 * 252 * @param integer $product_type_id 商品種別ID 253 * @return string 遷移先のパス 254 */ 255 function getNextLocation($product_type_id, $uniqid, &$objCustomer) { 256 switch ($product_type_id) { 257 case PRODUCT_TYPE_DOWNLOAD: 258 $objPurchase->saveOrderTemp($uniqid, array(), $objCustomer); 259 $objSiteSess->setRegistFlag(); 260 return 'payment.php'; 261 break; 262 263 case PRODUCT_TYPE_NORMAL: 264 default: 265 return 'deliv.php'; 266 } 267 } 268 269 /** 270 * データの一時登録を行う. 271 * 272 * @param integer $uniqid 受注一時テーブルのユニークID 273 * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス 274 * @param SC_Customer $objCustomer SC_Customer インスタンス 275 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 276 * @param boolean $isMultiple 複数配送の場合 true 277 */ 278 function lfRegistData($uniqid, &$objPurchase, &$objCustomer, &$objFormParam, 279 $isMultiple = false) { 280 $arrParams = $objFormParam->getHashArray(); 281 $arrValues = $objFormParam->getDbArray(); 281 282 // 登録データの作成 282 $ sqlval['order_birth'] = SC_Utils_Ex::sfGetTimestamp($params['year'], $params['month'], $params['day']);283 $ sqlval['update_date'] = 'Now()';284 $ sqlval['customer_id'] = '0';283 $arrValues['order_birth'] = SC_Utils_Ex::sfGetTimestamp($arrParams['year'], $arrParams['month'], $arrParams['day']); 284 $arrValues['update_date'] = 'Now()'; 285 $arrValues['customer_id'] = '0'; 285 286 286 287 // お届け先を指定しない場合、 287 if ($ params['deliv_check'] != '1') {288 if ($arrParams['deliv_check'] != '1') { 288 289 // order_* を shipping_* へコピー 289 $objPurchase->copyFromOrder($sqlval, $params); 290 } 291 292 $arrDeliv = $objPurchase->getDeliv($productTypeId); 293 $order_val = array('deliv_id' => $arrDeliv[0]['deliv_id']); 294 $shipping_val = array('deliv_id' => $arrDeliv[0]['deliv_id']); 290 $objPurchase->copyFromOrder($arrValues, $arrParams); 291 } 295 292 296 293 /* … … 298 295 * に, shipping_* というキーで保存 299 296 */ 300 foreach ($ sqlvalas $key => $val) {297 foreach ($arrValues as $key => $val) { 301 298 if (preg_match('/^order_/', $key)) { 302 $ order_val['shipping_' . str_replace('order_', '', $key)] = $val;299 $arrOrder['shipping_' . str_replace('order_', '', $key)] = $val; 303 300 } elseif (preg_match('/^shipping_/', $key)) { 304 $ shipping_val[$key] = $val;301 $arrShipping[$key] = $val; 305 302 } 306 303 } 307 304 308 305 if ($isMultiple) { 309 $objPurchase->saveShippingTemp($ order_val, 0);310 if ($ params['deliv_check'] == '1') {311 $objPurchase->saveShippingTemp($ shipping_val, 1);306 $objPurchase->saveShippingTemp($arrOrder, 0); 307 if ($arrParams['deliv_check'] == '1') { 308 $objPurchase->saveShippingTemp($arrShipping, 1); 312 309 } 313 310 } else { 314 if ($ params['deliv_check'] == '1') {315 $objPurchase->saveShippingTemp($ shipping_val, 0);311 if ($arrParams['deliv_check'] == '1') { 312 $objPurchase->saveShippingTemp($arrShipping, 0); 316 313 } else { 317 $objPurchase->saveShippingTemp($order_val, 0); 318 } 319 } 320 $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 321 } 322 323 /* 入力内容のチェック */ 324 function lfCheckError() { 314 $objPurchase->saveShippingTemp($arrOrder, 0); 315 } 316 } 317 $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); 318 } 319 320 /** 321 * 入力内容のチェックを行う. 322 * 323 * 追加の必須チェック, 相関チェックを行うため, SC_CheckError を使用する. 324 * 325 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 326 * @return array エラー情報の配 327 */ 328 function lfCheckError($objFormParam) { 325 329 // 入力値の変換 326 $this->objFormParam->convParam(); 327 $this->objFormParam->toLower('order_mail'); 328 $this->objFormParam->toLower('order_mail_check'); 329 330 // 入力データを渡す。 331 $arrRet = $this->objFormParam->getHashArray(); 332 $objErr = new SC_CheckError($arrRet); 333 $objErr->arrErr = $this->objFormParam->checkError(); 330 $objFormParam->convParam(); 331 $objFormParam->toLower('order_mail'); 332 $objFormParam->toLower('order_mail_check'); 333 334 $arrParams = $objFormParam->getHashArray(); 335 $objErr = new SC_CheckError($arrParams); 336 $objErr->arrErr = $objFormParam->checkError(); 334 337 335 338 // 別のお届け先チェック 336 if (isset($_POST['deliv_check']) && $_POST['deliv_check'] == "1") {339 if (isset($arrParams['deliv_check']) && $arrParams['deliv_check'] == "1") { 337 340 $objErr->doFunc(array("お名前(姓)", "shipping_name01"), array("EXIST_CHECK")); 338 341 $objErr->doFunc(array("お名前(名)", "shipping_name02"), array("EXIST_CHECK")); … … 360 363 return $objErr->arrErr; 361 364 } 365 366 /** 367 * 入力済みの購入情報をフォームに設定する. 368 * 369 * 受注一時テーブル, セッションの配送情報から入力済みの購入情報を取得し, 370 * フォームに設定する. 371 * 372 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 373 * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス 374 * @param integer $uniqid 購入一時情報のユニークID 375 * @return void 376 */ 377 function setFormParams(&$objFormParam, &$objPurchase, $uniqid) { 378 $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); 379 if (SC_Utils_Ex::isBlank($arrOrderTemp)) { 380 $arrOrderTemp = array('order_email' => "", 381 'order_birth' => ""); 382 } 383 $arrShippingTemp = $objPurchase->getShippingTemp(); 384 385 $objFormParam->setParam($arrOrderTemp); 386 /* 387 * count($arrShippingTemp) > 1 は複数配送であり, 388 * $arrShippingTemp[0] は注文者が格納されている 389 */ 390 if (count($arrShippingTemp) > 1) { 391 $objFormParam->setParam($arrShippingTemp[1]); 392 } else { 393 $objFormParam->setParam($arrShippingTemp[0]); 394 } 395 $objFormParam->setValue('order_email02', $arrOrderTemp['order_email']); 396 $objFormParam->setDBDate($arrOrderTemp['order_birth']); 397 } 362 398 } 363 399 ?>
Note: See TracChangeset
for help on using the changeset viewer.