- Timestamp:
- 2011/02/15 16:43:52 (15 years ago)
- bzr:base-revision:
- svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:20166
- bzr:committer:
- Kentaro Ohkouchi <[email protected]>
- bzr:file-ids:
data/class/SC_Query.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_Query.php
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2Fdbfactory%2FSC_DB_DBFactory_MYSQL.php
data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2Fdbfactory%2FSC_DB_DBFactory_PGSQL.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/mypage/LC_Page_Mypage_History.php 16102@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fmypage%2FLC_Page_Mypage_History.php
data/plugin/bingo/SC_Plugin_bingo.php 19521@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcamp%2Fcamp-2_5-E%2Fdata%2Fplugin%2Fbingo%2FSC_Plugin_bingo.php- bzr:mapping-version:
- v4
- bzr:merge:
[email protected]- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- [email protected]
- bzr:revno:
- 2895
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:text-revisions:
data/class/SC_Query.php [email protected]
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php [email protected]
data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php [email protected]
data/class/helper/SC_Helper_DB.php [email protected]
data/class/helper/SC_Helper_Purchase.php [email protected]
data/class/pages/mypage/LC_Page_Mypage_History.php [email protected]
data/plugin/bingo/SC_Plugin_bingo.php [email protected]- bzr:timestamp:
- 2011-02-15 16:43:39.124000072 +0900
- bzr:user-agent:
- bzr2.2.1+bzr-svn1.0.4
- svn:original-date:
- 2011-02-15T07:43:39.124000Z
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php
r20116 r20167 107 107 if (SC_Utils_Ex::isBlank($cartKeys)) { 108 108 SC_Response_Ex::sendRedirect(CART_URLPATH); 109 exit; 109 110 } 110 111 … … 119 120 if(!SC_SiteSession::checkUniqId()) { 120 121 SC_Utils_Ex::sfDispSiteError(CANCEL_PURCHASE); 122 exit; 121 123 } 122 124 … … 190 192 /** 191 193 * 配送商品を設定する. 192 */ 193 function setShipmentItemTemp($otherDelivId, $productClassId, $quantity) { 194 $_SESSION['shipping'][$otherDelivId]['shipment_item'][$productClassId]['shipping_id'] = $otherDelivId; 195 $_SESSION['shipping'][$otherDelivId]['shipment_item'][$productClassId]['product_class_id'] = $productClassId; 196 $_SESSION['shipping'][$otherDelivId]['shipment_item'][$productClassId]['quantity'] += $quantity; 194 * 195 * @param integer $shipping_id 配送先ID 196 * @param integer $product_class_id 商品規格ID 197 * @param integer $quantity 数量 198 * @return void 199 */ 200 function setShipmentItemTemp($shipping_id, $product_class_id, $quantity) { 201 // 配列が長くなるので, リファレンスを使用する 202 $arrItems =& $_SESSION['shipping'][$shipping_id]['shipment_item']; 203 204 $arrItems[$product_class_id]['shipping_id'] = $shipping_id; 205 $arrItems[$product_class_id]['product_class_id'] = $product_class_id; 206 $arrItems[$product_class_id]['quantity'] += $quantity; 197 207 198 208 $objProduct = new SC_Product(); 199 if (empty($ _SESSION['shipping'][$otherDelivId]['shipment_item'][$productClassId]['productsClass'])) {200 $product =& $objProduct->getDetailAndProductsClass($product ClassId);201 $ _SESSION['shipping'][$otherDelivId]['shipment_item'][$productClassId]['productsClass'] = $product;202 } 203 $incTax = SC_Helper_DB_Ex::sfCalcIncTax($ _SESSION['shipping'][$otherDelivId]['shipment_item'][$productClassId]['productsClass']['price02']);204 $ _SESSION['shipping'][$otherDelivId]['shipment_item'][$productClassId]['total_inctax'] = $incTax * $_SESSION['shipping'][$otherDelivId]['shipment_item'][$productClassId]['quantity'];209 if (empty($arrItems[$product_class_id]['productsClass'])) { 210 $product =& $objProduct->getDetailAndProductsClass($product_class_id); 211 $arrItems[$product_class_id]['productsClass'] = $product; 212 } 213 $incTax = SC_Helper_DB_Ex::sfCalcIncTax($arrItems[$product_class_id]['productsClass']['price02']); 214 $arrItems[$product_class_id]['total_inctax'] = $incTax * $arrItems[$product_class_id]['quantity']; 205 215 } 206 216 207 217 /** 208 218 * 配送商品の情報でカートを更新する. 219 * 220 * @param SC_CartSession $objCartSession SC_CartSession インスタンス 209 221 */ 210 222 function shippingItemTempToCart(&$objCartSession) { 211 $ shipmentItems = array();212 213 foreach (array_keys($_SESSION['shipping']) as $ otherDelivId) {214 foreach (array_keys($_SESSION['shipping'][$ otherDelivId]['shipment_item']) as $productClassId) {215 $ shipmentItems[$productClassId] += $_SESSION['shipping'][$otherDelivId]['shipment_item'][$productClassId]['quantity'];223 $arrShipmentItems = array(); 224 225 foreach (array_keys($_SESSION['shipping']) as $shipping_id) { 226 foreach (array_keys($_SESSION['shipping'][$shipping_id]['shipment_item']) as $product_class_id) { 227 $arrShipmentItems[$product_class_id] += $_SESSION['shipping'][$shipping_id]['shipment_item'][$product_class_id]['quantity']; 216 228 } 217 229 } 218 foreach ($ shipmentItems as $productClassId => $quantity) {219 $objCartSession->setProductValue($product ClassId, 'quantity',230 foreach ($arrShipmentItems as $product_class_id => $quantity) { 231 $objCartSession->setProductValue($product_class_id, 'quantity', 220 232 $quantity,$objCartSession->getKey()); 221 233 } … … 244 256 /** 245 257 * 配送情報をセッションに保存する. 246 */ 247 function saveShippingTemp(&$src, $otherDelivId = 0) { 248 if (empty($_SESSION['shipping'][$otherDelivId])) { 249 $_SESSION['shipping'][$otherDelivId] = $src; 258 * 259 * @param array $arrSrc 配送情報の連想配列 260 * @param integer $shipping_id 配送先ID 261 * @return void 262 */ 263 function saveShippingTemp(&$arrSrc, $shipping_id = 0) { 264 if (empty($_SESSION['shipping'][$shipping_id])) { 265 $_SESSION['shipping'][$shipping_id] = $arrSrc; 266 $_SESSION['shipping'][$shipping_id]['shipping_id'] = $shipping_id; 250 267 } else { 251 $_SESSION['shipping'][$otherDelivId] = array_merge($_SESSION['shipping'][$otherDelivId], $src); 268 $_SESSION['shipping'][$shipping_id] = array_merge($_SESSION['shipping'][$shipping_id], $arrSrc); 269 $_SESSION['shipping'][$shipping_id]['shipping_id'] = $shipping_id; 252 270 } 253 271 } … … 507 525 508 526 /** 509 * 配送情報を登録する. 510 */ 511 function registerShipping($orderId, $params) { 512 $objQuery =& SC_Query::getSingletonInstance(); 513 514 $cols = $objQuery->listTableFields('dtb_shipping'); 515 516 foreach ($params as $shipping_id => $shipping_val) { 517 // 存在するカラムのみ INSERT 518 foreach ($shipping_val as $key => $val) { 519 if (in_array($key, $cols)) { 520 $sqlval[$key] = $val; 521 } 522 } 527 * 配送情報の登録を行う. 528 * 529 * $arrParam のうち, dtb_shipping テーブルに存在するカラムのみを登録する. 530 * 531 * @param integer $order_id 受注ID 532 * @param array $arrParams 配送情報の連想配列 533 * @return void 534 */ 535 function registerShipping($order_id, $arrParams) { 536 $objQuery =& SC_Query::getSingletonInstance(); 537 $table = 'dtb_shipping'; 538 539 foreach ($arrParams as $arrShipping) { 540 541 $arrValues = $objQuery->extractOnlyColsOf($table, $arrShipping); 523 542 524 543 // 配送日付を timestamp に変換 525 if (!SC_Utils_Ex::isBlank($ sqlval['shipping_date'])) {526 $d = mb_strcut($ sqlval["shipping_date"], 0, 10);544 if (!SC_Utils_Ex::isBlank($arrValues['shipping_date'])) { 545 $d = mb_strcut($arrValues["shipping_date"], 0, 10); 527 546 $arrDate = split("/", $d); 528 547 $ts = mktime(0, 0, 0, $arrDate[1], $arrDate[2], $arrDate[0]); 529 $sqlval['shipping_date'] = date("Y-m-d", $ts); 530 } 531 532 $sqlval['order_id'] = $orderId; 533 $sqlval['shipping_id'] = $shipping_id; 534 $sqlval['create_date'] = 'Now()'; 535 $sqlval['update_date'] = 'Now()'; 536 $objQuery->insert("dtb_shipping", $sqlval); 548 $arrValues['shipping_date'] = date("Y-m-d", $ts); 549 } 550 551 $arrValues['order_id'] = $order_id; 552 $arrValues['create_date'] = 'Now()'; 553 $arrValues['update_date'] = 'Now()'; 554 $objQuery->insert($table, $arrValues); 537 555 } 538 556 } … … 540 558 /** 541 559 * 配送商品を登録する. 560 * 561 * @param integer $order_id 受注ID 562 * @param integer $shipping_id 配送先ID 563 * @param array $arrParams 配送商品の配列 564 * @return void 542 565 */ 543 566 function registerShipmentItem($orderId, $shippingId, $params) { … … 641 664 642 665 /** 666 * 受注情報を取得する. 667 * 668 * @param integer $order_id 受注ID 669 * @param integer $customer_id 顧客ID 670 * @return array 受注情報の配列 671 */ 672 function getOrder($order_id, $customer_id = null) { 673 $objQuery =& SC_Query::getSingletonInstance(); 674 $where = 'order_id = ?'; 675 $arrValues = array($order_id); 676 if (!SC_Utils_Ex::isBlank($customer_id)) { 677 $where .= ' AND customer_id = ?'; 678 $arrValues[] = $customer_id; 679 } 680 return $objQuery->getRow('*', 'dtb_order', $where, $arrValues); 681 } 682 683 /** 684 * 受注詳細を取得する. 685 * 686 * @param integer $order_id 受注ID 687 * @return array 受注詳細の配列 688 */ 689 function getOrderDetail($order_id) { 690 $objQuery =& SC_Query::getSingletonInstance(); 691 $dbFactory = SC_DB_DBFactory_Ex::getInstance(); 692 $col = <<< __EOS__ 693 T3.product_id, 694 T3.product_class_id as product_class_id, 695 T3.product_type_id AS product_type_id, 696 T2.product_code, 697 T2.product_name, 698 T2.classcategory_name1 AS classcategory_name1, 699 T2.classcategory_name2 AS classcategory_name2, 700 T2.price, 701 T2.quantity, 702 T2.point_rate, 703 T1.status AS status, 704 T1.payment_date AS payment_date, 705 CASE WHEN EXISTS( 706 SELECT 1 FROM dtb_products 707 WHERE product_id = T3.product_id 708 AND del_flg = 0 709 AND status = 1) 710 THEN '1' ELSE '0' 711 END AS enable, 712 __EOS__; 713 $col .= $dbFactory->getDownloadableDaysWhereSql('T1') . ' AS effective'; 714 $from = <<< __EOS__ 715 dtb_order T1 716 JOIN dtb_order_detail T2 717 ON T1.order_id = T2.order_id 718 JOIN dtb_products_class T3 719 ON T2.product_class_id = T3.product_class_id 720 __EOS__; 721 return $objQuery->select($col, $from, 'T1.order_id = ?', array($order_id)); 722 } 723 724 /** 725 * 配送情報を取得する. 726 * 727 * @param integer $order_id 受注ID 728 * @param boolean $has_items 結果に配送商品も含める場合 true 729 * @return array 配送情報の配列 730 */ 731 function getShippings($order_id, $has_items = true) { 732 $objQuery =& SC_Query::getSingletonInstance(); 733 $arrResults = array(); 734 $objQuery->setOrder('shipping_id'); 735 $arrShippings = $objQuery->select("*", "dtb_shipping", "order_id = ?", 736 array($order_id)); 737 // shipping_id ごとの配列を生成する 738 foreach ($arrShippings as $shipping) { 739 foreach ($shipping as $key => $val) { 740 $arrResults[$shipping['shipping_id']][$key] = $val; 741 } 742 } 743 744 if ($has_items) { 745 $objProduct = new SC_Product(); 746 foreach (array_keys($arrResults) as $shipping_id) { 747 $arrResults[$shipping_id]['shipment_item'] 748 =& $this->getShipmentItems($order_id, $shipping_id); 749 } 750 } 751 return $arrResults; 752 } 753 754 /** 755 * 配送商品を取得する. 756 * 757 * @param integer $order_id 受注ID 758 * @param integer $shipping_id 配送先ID 759 * @param boolean $has_detail 商品詳細も取得する場合 true 760 * @return array 商品規格IDをキーにした配送商品の配列 761 */ 762 function getShipmentItems($order_id, $shipping_id, $has_detail = true) { 763 $objQuery =& SC_Query::getSingletonInstance(); 764 $objProduct = new SC_Product(); 765 $arrResults = array(); 766 $arrItems = $objQuery->select("*", "dtb_shipment_item", 767 "order_id = ? AND shipping_id = ?", 768 array($order_id, $shipping_id)); 769 770 foreach ($arrItems as $key => $arrItem) { 771 $product_class_id = $arrItem['product_class_id']; 772 773 foreach ($arrItem as $detailKey => $detailVal) { 774 $arrResults[$product_class_id][$detailKey] = $detailVal; 775 } 776 // 商品詳細を関連づける 777 if ($has_detail) { 778 $arrResults[$product_class_id]['productsClass'] 779 =& $objProduct->getDetailAndProductsClass($product_class_id); 780 } 781 } 782 return $arrResults; 783 } 784 785 /** 643 786 * 受注完了メールを送信する. 644 787 *
Note: See TracChangeset
for help on using the changeset viewer.
