- Timestamp:
- 2011/01/10 13:59:23 (13 years ago)
- bzr:base-revision:
- svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:19859
- bzr:committer:
- Kentaro Ohkouchi <nanasess@fsm.ne.jp>
- bzr:file-ids:
data/Smarty/templates/default/shopping/deliv.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fshopping%2Fdeliv.tpl
data/Smarty/templates/default/shopping/multiple.tpl multiple.tpl-20110109122547-u3fq5xmi1b4jn5n4-1
data/Smarty/templates/default/shopping/nonmember_input.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fshopping%2Fnonmember_input.tpl
data/Smarty/templates/default/shopping/payment.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fshopping%2Fpayment.tpl
data/class/SC_CartSession.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_CartSession.php
data/class/SC_Customer.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_Customer.php
data/class/helper/SC_Helper_DB.php 15176@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fhelper%2FSC_Helper_DB.php
data/class/helper/SC_Helper_Purchase.php sc_helper_purchase.p-20101020100530-jyaoa7ch9pdfjqzp-1
data/class/pages/error/LC_Page_Error.php 15141@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Ferror%2FLC_Page_Error.php
data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php 16093@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fmypage%2FLC_Page_Mypage_DeliveryAddr.php
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
data/class/pages/shopping/LC_Page_Shopping_Confirm.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Confirm.php
data/class/pages/shopping/LC_Page_Shopping_Deliv.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Deliv.php
data/class/pages/shopping/LC_Page_Shopping_Multiple.php lc_page_shopping_mul-20110109122547-u3fq5xmi1b4jn5n4-2
data/class/pages/shopping/LC_Page_Shopping_Payment.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Payment.php
data/class/util/SC_Utils.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Futil%2FSC_Utils.php
data/class_extends/page_extends/shopping/LC_Page_Shopping_Multiple_Ex.php lc_page_shopping_mul-20110109122547-u3fq5xmi1b4jn5n4-3
data/install.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Finstall.php
html/install/sql/create_table_mysql.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fcreate_table_mysql.sql
html/install/sql/create_table_pgsql.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fcreate_table_pgsql.sql
html/install/sql/drop_table.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fdrop_table.sql
html/install/sql/insert_data.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Finsert_data.sql
html/js/site.js site.js-20101208110316-7ungq6kj49bhw4d1-7
html/shopping/multiple.php multiple.php-20110109122547-u3fq5xmi1b4jn5n4-4
html/user_data/packages/default/css/under02.css 16708@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Fuser_data%2Fpackages%2Fdefault%2Fcss%2Funder02.css- bzr:mapping-version:
- v4
- bzr:merge:
nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- nanasess@fsm.ne.jp-20110110045915-6b02oxleldtyw7ee
- bzr:revno:
- 2589
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:text-revisions:
data/Smarty/templates/default/shopping/deliv.tpl nanasess@fsm.ne.jp-20110109122851-7ox5o3sn0yp5rjpn
data/Smarty/templates/default/shopping/multiple.tpl nanasess@fsm.ne.jp-20110109122851-7ox5o3sn0yp5rjpn
data/Smarty/templates/default/shopping/nonmember_input.tpl nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/Smarty/templates/default/shopping/payment.tpl nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class/SC_CartSession.php nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class/SC_Customer.php nanasess@fsm.ne.jp-20110109122851-7ox5o3sn0yp5rjpn
data/class/helper/SC_Helper_DB.php nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class/helper/SC_Helper_Purchase.php nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class/pages/error/LC_Page_Error.php nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php nanasess@fsm.ne.jp-20110109122851-7ox5o3sn0yp5rjpn
data/class/pages/shopping/LC_Page_Shopping.php nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class/pages/shopping/LC_Page_Shopping_Confirm.php nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class/pages/shopping/LC_Page_Shopping_Deliv.php nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class/pages/shopping/LC_Page_Shopping_Multiple.php nanasess@fsm.ne.jp-20110109122851-7ox5o3sn0yp5rjpn
data/class/pages/shopping/LC_Page_Shopping_Payment.php nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class/util/SC_Utils.php nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
data/class_extends/page_extends/shopping/LC_Page_Shopping_Multiple_Ex.php nanasess@fsm.ne.jp-20110109122604-8059rgcurt250q06
html/install/sql/create_table_mysql.sql nanasess@fsm.ne.jp-20110109121902-2oqes35heyjm5nlc
html/install/sql/create_table_pgsql.sql nanasess@fsm.ne.jp-20110109121902-2oqes35heyjm5nlc
html/install/sql/drop_table.sql nanasess@fsm.ne.jp-20110109121902-2oqes35heyjm5nlc
html/install/sql/insert_data.sql nanasess@fsm.ne.jp-20110109122604-8059rgcurt250q06
html/js/site.js nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18
html/shopping/multiple.php nanasess@fsm.ne.jp-20110109122604-8059rgcurt250q06
html/user_data/packages/default/css/under02.css nanasess@fsm.ne.jp-20110110045555-wppbrefvyq7ccz18- bzr:timestamp:
- 2011-01-10 13:59:15.388999939 +0900
- bzr:user-agent:
- bzr2.2.2+bzr-svn1.0.4
- svn:original-date:
- 2011-01-10T04:59:15.389000Z
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php
r19763 r19860 63 63 $objQuery->begin(); 64 64 SC_Utils_Ex::sfIsPrePage($objSiteSession); 65 $uniqId = SC_Utils_Ex::sfCheckNormalAccess($objSiteSession, 66 $objCartSession); 65 66 $uniqId = $objSiteSession->getUniqId(); 67 $this->verifyChangeCart($uniqId, $objCartSession); 68 67 69 $orderTemp = $this->getOrderTemp($uniqId); 68 70 … … 75 77 76 78 /** 79 * カートに変化が無いか検証する. 80 * 81 * ユニークIDとセッションのユニークIDを比較し, 異なる場合は 82 * エラー画面を表示する. 83 * 84 * カートが空の場合, 購入ボタン押下後にカートが変更された場合は 85 * カート画面へ遷移する. 86 * 87 * @param string $uniqId ユニークID 88 * @param SC_CartSession $objCartSession 89 * @return void 90 */ 91 function verifyChangeCart($uniqId, &$objCartSession) { 92 $cartkeys = $objCartSession->getKeys(); 93 94 foreach ($cartKeys as $cartKey) { 95 // 初回のみカートの内容を保存 96 $objCartSess->saveCurrentCart($uniqid, $cartKey); 97 /* 98 * POSTのユニークIDとセッションのユニークIDを比較 99 *(ユニークIDがPOSTされていない場合はスルー) 100 */ 101 if(!SC_SiteSession::checkUniqId()) { 102 // エラーページの表示 103 // XXX $objSiteSess インスタンスは未使用? 104 SC_Utils_Ex::sfDispSiteError(CANCEL_PURCHASE, $objSiteSess); 105 } 106 107 // カート内が空でないか || 購入ボタンを押してから変化がないか 108 $quantity = $objCartSess->getTotalQuantity($cartKey); 109 if($objCartSess->checkChangeCart($cartKey) || !($quantity > 0)) { 110 // カート情報表示に強制移動する 111 if (Net_UserAgent_Mobile::isMobile()) { 112 header("Location: ". MOBILE_CART_URL_PATH 113 . "?" . session_name() . "=" . session_id()); 114 } else { 115 header("Location: ".CART_URL_PATH); 116 } 117 exit; 118 } 119 } 120 } 121 122 /** 77 123 * 受注一時情報を取得する. 78 124 * … … 84 130 return $objQuery->getRow("*", "dtb_order_temp", "order_temp_id = ?", 85 131 array($uniqId)); 132 } 133 134 /** 135 * 受注一時情報を保存する. 136 * 137 * 既存のデータが存在しない場合は新規保存. 存在する場合は更新する. 138 * 既存のデータが存在せず, ユーザーがログインしている場合は, 139 * 会員情報をコピーする. 140 * 141 * @param integer $uniqId 受注一時情報ID 142 * @param array $params 登録する受注情報の配列 143 * @param SC_Customer $objCustomer SC_Customer インスタンス 144 * @return array void 145 */ 146 function saveOrderTemp($uniqId, $params, &$objCustomer) { 147 if (SC_Utils_Ex::isBlank($uniqId)) { 148 return; 149 } 150 151 $objQuery =& SC_Query::getSingletonInstance(); 152 // 存在するカラムのみを対象とする 153 $cols = $objQuery->listTableFields('dtb_order_temp'); 154 foreach ($params as $key => $val) { 155 if (in_array($key, $cols)) { 156 $sqlval[$key] = $val; 157 } 158 } 159 160 $sqlval['session'] = serialize($_SESSION); 161 $exists = $this->getOrderTemp($uniqId); 162 if (SC_Utils_Ex::isBlank($exists)) { 163 $this->copyFromCustomer($sqlval, $objCustomer); 164 $sqlval['order_temp_id'] = $uniqId; 165 $sqlval['create_date'] = "now()"; 166 $objQuery->insert("dtb_order_temp", $sqlval); 167 } else { 168 $objQuery->update("dtb_order_temp", $sqlval, 'order_temp_id = ?', 169 array($uniqId)); 170 } 171 } 172 173 /** 174 * 配送情報をセッションに保存する. 175 */ 176 function saveShippingTemp(&$src, $other_deliv_id = 0, 177 $keys = array('name01', 'name02', 'kana01', 'kana02', 178 'sex', 'zip01', 'zip02', 'pref', 179 'addr01', 'addr02', 180 'tel01', 'tel02', 'tel03'), 181 $prefix = 'shipping') { 182 $dest = array(); 183 foreach ($keys as $key) { 184 $dest[$prefix . '_' . $key] = $src[$prefix . '_' . $key]; 185 } 186 $_SESSION['shipping'][$other_deliv_id] = $src; 187 } 188 189 /** 190 * 会員情報を受注情報にコピーする. 191 * 192 * ユーザーがログインしていない場合は何もしない. 193 * 会員情報を $dest の order_* へコピーする. 194 * customer_id は強制的にコピーされる. 195 * 196 * @param array $dest コピー先の配列 197 * @param SC_Customer $objCustomer SC_Customer インスタンス 198 * @param array $keys コピー対象のキー 199 * @param string $prefix コピー先の接頭辞. デフォルト order 200 * @return void 201 */ 202 function copyFromCustomer(&$dest, &$objCustomer, 203 $keys = array('name01', 'name02', 'kana01', 'kana02', 204 'sex', 'zip01', 'zip02', 'pref', 205 'addr01', 'addr02', 206 'tel01', 'tel02', 'tel03', 'job', 207 'birth', 'email'), 208 $prefix = 'order') { 209 if ($objCustomer->isLoginSuccess(true)) { 210 211 foreach ($keys as $key) { 212 if (in_array($key, $keys)) { 213 $dest[$prefix . '_' . $key] = $objCustomer->getValue($key); 214 } 215 } 216 217 if (Net_UserAgent_Mobile::isMobile() 218 && in_array('email', $keys)) { 219 $email_mobile = $objCustomer->getValue('email_mobile'); 220 if (empty($email_mobile)) { 221 $dest[$prefix . '_email'] = $objCustomer->getValue('email'); 222 } else { 223 $dest[$prefix . '_email'] = $email_mobile; 224 } 225 } 226 227 $dest['customer_id'] = $objCustomer->getValue('customer_id'); 228 $dest['update_date'] = 'Now()'; 229 } 230 } 231 232 /** 233 * 受注情報を配送情報にコピーする. 234 * 235 * 受注情報($src)を $dest の order_* へコピーする. 236 * 237 * @param array $dest コピー先の配列 238 * @param array $src コピー元の配列 239 * @param array $keys コピー対象のキー 240 * @param string $prefix コピー先の接頭辞. デフォルト shipping 241 * @param string $src_prefix コピー元の接頭辞. デフォルト order 242 * @return void 243 */ 244 function copyFromOrder(&$dest, $src, 245 $keys = array('name01', 'name02', 'kana01', 'kana02', 246 'sex', 'zip01', 'zip02', 'pref', 247 'addr01', 'addr02', 248 'tel01', 'tel02', 'tel03'), 249 $prefix = 'shipping', $src_prefix = 'order') { 250 foreach ($keys as $key) { 251 if (in_array($key, $keys)) { 252 $dest[$prefix . '_' . $key] = $src[$src_prefix . '_' . $key]; 253 } 254 } 255 } 256 257 /** 258 * 購入金額に応じた支払方法を取得する. 259 * 260 * @param integer $total 購入金額 261 * @param array $productClassIds 購入する商品規格IDの配列 262 * @return array 購入金額に応じた支払方法の配列 263 */ 264 function getPayment($total, $productClassIds) { 265 // 有効な支払方法を取得 266 $objProduct = new SC_Product(); 267 $paymentIds = $objProduct->getEnablePaymentIds($productClassIds); 268 269 $objQuery =& SC_Query::getSingletonInstance(); 270 271 // 削除されていない支払方法を取得 272 $where = 'del_flg = 0 AND payment_id IN (' . implode(', ', array_pad(array(), count($paymentIds), '?')) . ')'; 273 $objQuery->setOrder("rank DESC"); 274 $payments = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image", "dtb_payment", $where, $paymentIds); 275 276 foreach ($payments as $data) { 277 // 下限と上限が設定されている 278 if (strlen($data['rule']) != 0 && strlen($data['upper_rule']) != 0) { 279 if ($data['rule'] <= $total_inctax && $data['upper_rule'] >= $total_inctax) { 280 $arrPayment[] = $data; 281 } 282 } 283 // 下限のみ設定されている 284 elseif (strlen($data['rule']) != 0) { 285 if($data['rule'] <= $total_inctax) { 286 $arrPayment[] = $data; 287 } 288 } 289 // 上限のみ設定されている 290 elseif (strlen($data['upper_rule']) != 0) { 291 if($data['upper_rule'] >= $total_inctax) { 292 $arrPayment[] = $data; 293 } 294 } 295 // いずれも設定なし 296 else { 297 $arrPayment[] = $data; 298 } 299 } 300 return $arrPayment; 301 } 302 303 /** 304 * 商品規格IDの配列からお届け予定日の配列を取得する. 305 * 306 * @param array $productClassIds 商品規格IDの配列 307 */ 308 function getDelivDate($productClassIds) { 309 // TODO 310 } 311 312 /** 313 * 商品種別ID からお届け時間の配列を取得する. 314 */ 315 function getDelivTime($productTypeId) { 316 $objQuery =& SC_Query::getSingletonInstance(); 317 $from = <<< __EOS__ 318 dtb_deliv T1 319 JOIN dtb_delivtime T2 320 ON T1.deliv_id = T2. deliv_id 321 __EOS__; 322 $objQuery->setOrder("time_id"); 323 $where = "deliv_id = ?"; 324 $results = $objQuery->select("time_id, deliv_time", $from, 325 "product_type_id = ?", array($productTypeId)); 326 $arrDelivTime = array(); 327 foreach ($results as $val) { 328 $arrDelivTime[$val['time_id']] = $val['deliv_time']; 329 } 330 return $arrDelivTime; 86 331 } 87 332 … … 103 348 104 349 // 別のお届け先を指定が無ければ, お届け先に登録住所をコピー 350 /* FIXME 105 351 if ($orderParams['deliv_check'] == "-1") { 106 352 $keys = array('name01', 'name02', 'kana01', 'kana02', 'pref', 'zip01', … … 110 356 } 111 357 } 112 358 */ 113 359 // 不要な変数を unset 114 360 $unsets = array('mailmaga_flg', 'deliv_check', 'point_check', 'password',
Note: See TracChangeset
for help on using the changeset viewer.