[Svn-src-all:1255] [version-2_5-dev 20144] LC_Page_Mypage_History リファクタリング

kimoto admin @ mail.ec-cube.net
2011年 2月 11日 (金) 18:57:37 JST


Subversion committed to /home/svn/open 20144
http://svn.ec-cube.net/open_trac/changeset/20144
┌────────────────────────────┐
│更新者 :  kimoto                                       │
│更新日時:  2011-02-11 18:57:37 +0900 (金, 11  2月 2011)│
└────────────────────────────┘

Log:
--------------------------------------------------------
LC_Page_Mypage_History リファクタリング
*lfGetShippingDataをSC_Helper_DBへ移動
*lfGetOrderDetailもSC_Helper_DBへ移動して管理側とsqlを統一すべき


Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
U   branches/version-2_5-dev/data/Smarty/templates/default/mypage/history.tpl
U   branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/history.tpl
U   branches/version-2_5-dev/data/Smarty/templates/sphone/mypage/history.tpl
U   branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php
U   branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_History.php

変更: branches/version-2_5-dev/data/Smarty/templates/default/mypage/history.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/default/mypage/history.tpl	2011-02-11 09:57:29 UTC (rev 20143)
+++ branches/version-2_5-dev/data/Smarty/templates/default/mypage/history.tpl	2011-02-11 09:57:37 UTC (rev 20144)
@@ -28,19 +28,19 @@
     <div id="mycontentsarea">
         <h3><!--{$tpl_subtitle|h}--></h3>
         <p class="myconditionarea">
-        <strong>購入日時:&nbsp;</strong><!--{$arrDisp.create_date|sfDispDBDate}--><br />
-        <strong>注文番号:&nbsp;</strong><!--{$arrDisp.order_id}--><br />
-        <strong>お支払い方法:&nbsp;</strong><!--{$arrPayment[$arrDisp.payment_id]|h}-->
-        <!--{if $arrDisp.deliv_time_id != ""}--><br />
-        <strong>お届け時間:&nbsp;</strong><!--{$arrDelivTime[$arrDisp.deliv_time_id]|h}-->
+        <strong>購入日時:&nbsp;</strong><!--{$tpl_arrOrderData.create_date|sfDispDBDate}--><br />
+        <strong>注文番号:&nbsp;</strong><!--{$tpl_arrOrderData.order_id}--><br />
+        <strong>お支払い方法:&nbsp;</strong><!--{$arrPayment[$tpl_arrOrderData.payment_id]|h}-->
+        <!--{if $tpl_arrOrderData.deliv_time_id != ""}--><br />
+        <strong>お届け時間:&nbsp;</strong><!--{$arrDelivTime[$tpl_arrOrderData.deliv_time_id]|h}-->
         <!--{/if}-->
-        <!--{if $arrDisp.deliv_date != ""}--><br />
-        <strong>お届け日:&nbsp;</strong><!--{$arrDisp.deliv_date|h}-->
+        <!--{if $tpl_arrOrderData.deliv_date != ""}--><br />
+        <strong>お届け日:&nbsp;</strong><!--{$tpl_arrOrderData.deliv_date|h}-->
         <!--{/if}-->
         </p>
 
         <form action="order.php" method="post">
-            <input type="hidden" name="order_id" value="<!--{$arrDisp.order_id}-->">
+            <input type="hidden" name="order_id" value="<!--{$tpl_arrOrderData.order_id}-->">
             <input type="submit" name="submit" value="再注文">
         </form>
 
@@ -60,7 +60,7 @@
                     <td>
                     <!--{if $orderDetail.product_type_id == PRODUCT_TYPE_DOWNLOAD}-->
                         <!--{if $orderDetail.price == "0" || ( $orderDetail.status >= "4" && $orderDetail.effective == "1" )}-->
-                            <a target="_self" href="<!--{$smarty.const.ROOT_URLPATH}-->mypage/download.php?order_id=<!--{$arrDisp.order_id}-->&product_id=<!--{$orderDetail.product_id}-->&product_class_id=<!--{$orderDetail.product_class_id}-->">ダウンロード</a>
+                            <a target="_self" href="<!--{$smarty.const.ROOT_URLPATH}-->mypage/download.php?order_id=<!--{$tpl_arrOrderData.order_id}-->&product_id=<!--{$orderDetail.product_id}-->&product_class_id=<!--{$orderDetail.product_class_id}-->">ダウンロード</a>
                         <!--{elseif $orderDetail.payment_date == "" || $orderDetail.status < "4"}-->
                             ダウンロード商品<BR />(入金確認中)
                         <!--{elseif $orderDetail.effective != "1"}-->
@@ -79,9 +79,9 @@
             <!--{/foreach}-->
             <tr>
                 <th colspan="5" class="resulttd">小計</th>
-                <td class="pricetd"><!--{$arrDisp.subtotal|number_format}-->円</td>
+                <td class="pricetd"><!--{$tpl_arrOrderData.subtotal|number_format}-->円</td>
             </tr>
-            <!--{assign var=point_discount value="`$arrDisp.use_point*$smarty.const.POINT_VALUE`"}-->
+            <!--{assign var=point_discount value="`$tpl_arrOrderData.use_point*$smarty.const.POINT_VALUE`"}-->
             <!--{if $point_discount > 0}-->
             <tr>
                 <th colspan="5" class="resulttd">ポイント値引き</th>
@@ -89,24 +89,24 @@
             </tr>
             <!--{/if}-->
             <!--{assign var=key value="discount"}-->
-            <!--{if $arrDisp[$key] != "" && $arrDisp[$key] > 0}-->
+            <!--{if $tpl_arrOrderData[$key] != "" && $tpl_arrOrderData[$key] > 0}-->
             <tr>
                 <th colspan="5" class="resulttd">値引き</th>
-                <td class="pricetd"><!--{$arrDisp[$key]|number_format}-->円</td>
+                <td class="pricetd"><!--{$tpl_arrOrderData[$key]|number_format}-->円</td>
             </tr>
             <!--{/if}-->
             <tr>
                 <th colspan="5" class="resulttd">送料</th>
-                <td class="pricetd"><!--{assign var=key value="deliv_fee"}--><!--{$arrDisp[$key]|number_format|h}-->円</td>
+                <td class="pricetd"><!--{assign var=key value="deliv_fee"}--><!--{$tpl_arrOrderData[$key]|number_format|h}-->円</td>
             </tr>
             <tr>
                 <th colspan="5" class="resulttd">手数料</th>
                 <!--{assign var=key value="charge"}-->
-                <td class="pricetd"><!--{$arrDisp[$key]|number_format|h}-->円</td>
+                <td class="pricetd"><!--{$tpl_arrOrderData[$key]|number_format|h}-->円</td>
             </tr>
             <tr>
                 <th colspan="5" class="resulttd">合計</th>
-                <td class="pricetd"><em><!--{$arrDisp.payment_total|number_format}-->円</em></td>
+                <td class="pricetd"><em><!--{$tpl_arrOrderData.payment_total|number_format}-->円</em></td>
             </tr>
         </table>
 
@@ -115,11 +115,11 @@
             <table summary="使用ポイント">
                 <tr>
                     <th>ご使用ポイント</th>
-                    <td class="pricetd"><!--{assign var=key value="use_point"}--><!--{$arrDisp[$key]|number_format|default:0}--> pt</td>
+                    <td class="pricetd"><!--{assign var=key value="use_point"}--><!--{$tpl_arrOrderData[$key]|number_format|default:0}--> pt</td>
                 </tr>
                 <tr>
                     <th>今回加算されるポイント</th>
-                    <td class="pricetd"><!--{$arrDisp.add_point|number_format|default:0}--> pt</td>
+                    <td class="pricetd"><!--{$tpl_arrOrderData.add_point|number_format|default:0}--> pt</td>
                 </tr>
             </table>
         <!--{/if}-->

変更: branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/history.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/history.tpl	2011-02-11 09:57:29 UTC (rev 20143)
+++ branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/history.tpl	2011-02-11 09:57:37 UTC (rev 20144)
@@ -21,18 +21,18 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 *}-->
-購入日時:<!--{$arrDisp.create_date|sfDispDBDate}--><br />
-注文番号:<!--{$arrDisp.order_id}--><br />
-お支払い方法:<!--{$arrPayment[$arrDisp.payment_id]|h}-->
-<!--{if $arrDisp.deliv_time_id != ""}--><br />
-お届け時間:<!--{$arrDelivTime[$arrDisp.deliv_time_id]|h}-->
+購入日時:<!--{$tpl_arrOrderData.create_date|sfDispDBDate}--><br />
+注文番号:<!--{$tpl_arrOrderData.order_id}--><br />
+お支払い方法:<!--{$arrPayment[$tpl_arrOrderData.payment_id]|h}-->
+<!--{if $tpl_arrOrderData.deliv_time_id != ""}--><br />
+お届け時間:<!--{$arrDelivTime[$tpl_arrOrderData.deliv_time_id]|h}-->
 <!--{/if}-->
-<!--{if $arrDisp.deliv_date != ""}--><br />
-お届け日:<!--{$arrDisp.deliv_date|h}-->
+<!--{if $tpl_arrOrderData.deliv_date != ""}--><br />
+お届け日:<!--{$tpl_arrOrderData.deliv_date|h}-->
 <!--{/if}-->
 
 <form action="order.php" method="post">
-    <input type="hidden" name="order_id" value="<!--{$arrDisp.order_id}-->">
+    <input type="hidden" name="order_id" value="<!--{$tpl_arrOrderData.order_id}-->">
     <input type="submit" name="submit" value="再注文">
 </form>
 
@@ -44,7 +44,7 @@
 商品種別:
 <!--{if $orderDetail.product_type_id == PRODUCT_TYPE_DOWNLOAD}-->
 <!--{if $orderDetail.price == "0" || ( $orderDetail.status >= "4" && $orderDetail.effective == "1" )}-->
-<a target="_self" href="<!--{$smarty.const.ROOT_URLPATH}-->mypage/download.php?order_id=<!--{$arrDisp.order_id}-->&product_id=<!--{$orderDetail.product_id}-->&product_class_id=<!--{$orderDetail.product_class_id}-->">ダウンロード</a><br>
+<a target="_self" href="<!--{$smarty.const.ROOT_URLPATH}-->mypage/download.php?order_id=<!--{$tpl_arrOrderData.order_id}-->&product_id=<!--{$orderDetail.product_id}-->&product_class_id=<!--{$orderDetail.product_class_id}-->">ダウンロード</a><br>
 <!--{elseif $orderDetail.payment_date == "" || $orderDetail.status < "4"}-->
 ダウンロード商品<br>(入金確認中)<br>
 <!--{elseif $orderDetail.effective != "1"}-->
@@ -61,26 +61,26 @@
 小計:<!--{$price|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|sfMultiply:$quantity|number_format}-->円<br>
 <!--{/foreach}-->
 <hr>
-小計:<!--{$arrDisp.subtotal|number_format}-->円<br>
-<!--{assign var=point_discount value="`$arrDisp.use_point*$smarty.const.POINT_VALUE`"}-->
+小計:<!--{$tpl_arrOrderData.subtotal|number_format}-->円<br>
+<!--{assign var=point_discount value="`$tpl_arrOrderData.use_point*$smarty.const.POINT_VALUE`"}-->
 <!--{if $point_discount > 0}-->
 ポイント値引き:<!--{$point_discount|number_format}-->円<br>
 <!--{/if}-->
 <!--{assign var=key value="discount"}-->
-<!--{if $arrDisp[$key] != "" && $arrDisp[$key] > 0}-->
-値引き:<!--{$arrDisp[$key]|number_format}-->円<br>
+<!--{if $tpl_arrOrderData[$key] != "" && $tpl_arrOrderData[$key] > 0}-->
+値引き:<!--{$tpl_arrOrderData[$key]|number_format}-->円<br>
 <!--{/if}-->
-送料:<!--{assign var=key value="deliv_fee"}--><!--{$arrDisp[$key]|number_format|h}-->円<br>
+送料:<!--{assign var=key value="deliv_fee"}--><!--{$tpl_arrOrderData[$key]|number_format|h}-->円<br>
 手数料:
 <!--{assign var=key value="charge"}-->
-<!--{$arrDisp[$key]|number_format|h}-->円<br>
-合計:<!--{$arrDisp.payment_total|number_format}-->円<br>
+<!--{$tpl_arrOrderData[$key]|number_format|h}-->円<br>
+合計:<!--{$tpl_arrOrderData.payment_total|number_format}-->円<br>
 <hr>
 <!-- 使用ポイントここから -->
 <!--{if $smarty.const.USE_POINT !== false}-->
 ■使用ポイント<br>
-ご使用ポイント:<!--{assign var=key value="use_point"}--><!--{$arrDisp[$key]|number_format|default:0}--> pt<br>
-今回加算されるポイント:<!--{$arrDisp.add_point|number_format|default:0}--> pt<br>
+ご使用ポイント:<!--{assign var=key value="use_point"}--><!--{$tpl_arrOrderData[$key]|number_format|default:0}--> pt<br>
+今回加算されるポイント:<!--{$tpl_arrOrderData.add_point|number_format|default:0}--> pt<br>
 <hr>
 <!--{/if}-->
 <!-- 使用ポイントここまで -->

変更: branches/version-2_5-dev/data/Smarty/templates/sphone/mypage/history.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/sphone/mypage/history.tpl	2011-02-11 09:57:29 UTC (rev 20143)
+++ branches/version-2_5-dev/data/Smarty/templates/sphone/mypage/history.tpl	2011-02-11 09:57:37 UTC (rev 20144)
@@ -28,19 +28,19 @@
     <div id="mycontentsarea">
         <h3><!--{$tpl_subtitle|h}--></h3>
         <p class="myconditionarea">
-        <strong>購入日時:&nbsp;</strong><!--{$arrDisp.create_date|sfDispDBDate}--><br />
-        <strong>注文番号:&nbsp;</strong><!--{$arrDisp.order_id}--><br />
-        <strong>お支払い方法:&nbsp;</strong><!--{$arrPayment[$arrDisp.payment_id]|h}-->
-        <!--{if $arrDisp.deliv_time_id != ""}--><br />
-        <strong>お届け時間:&nbsp;</strong><!--{$arrDelivTime[$arrDisp.deliv_time_id]|h}-->
+        <strong>購入日時:&nbsp;</strong><!--{$tpl_arrOrderData.create_date|sfDispDBDate}--><br />
+        <strong>注文番号:&nbsp;</strong><!--{$tpl_arrOrderData.order_id}--><br />
+        <strong>お支払い方法:&nbsp;</strong><!--{$arrPayment[$tpl_arrOrderData.payment_id]|h}-->
+        <!--{if $tpl_arrOrderData.deliv_time_id != ""}--><br />
+        <strong>お届け時間:&nbsp;</strong><!--{$arrDelivTime[$tpl_arrOrderData.deliv_time_id]|h}-->
         <!--{/if}-->
-        <!--{if $arrDisp.deliv_date != ""}--><br />
-        <strong>お届け日:&nbsp;</strong><!--{$arrDisp.deliv_date|h}-->
+        <!--{if $tpl_arrOrderData.deliv_date != ""}--><br />
+        <strong>お届け日:&nbsp;</strong><!--{$tpl_arrOrderData.deliv_date|h}-->
         <!--{/if}-->
         </p>
 
         <form action="order.php" method="post">
-            <input type="hidden" name="order_id" value="<!--{$arrDisp.order_id}-->">
+            <input type="hidden" name="order_id" value="<!--{$tpl_arrOrderData.order_id}-->">
             <input type="submit" name="submit" value="再注文">
         </form>
 
@@ -60,7 +60,7 @@
                     <td>
                     <!--{if $orderDetail.product_type_id == PRODUCT_TYPE_DOWNLOAD}-->
                         <!--{if $orderDetail.price == "0" || ( $orderDetail.status >= "4" && $orderDetail.effective == "1" )}-->
-                            <a target="_self" href="<!--{$smarty.const.ROOT_URLPATH}-->mypage/download.php?order_id=<!--{$arrDisp.order_id}-->&product_id=<!--{$orderDetail.product_id}-->&product_class_id=<!--{$orderDetail.product_class_id}-->">ダウンロード</a>
+                            <a target="_self" href="<!--{$smarty.const.ROOT_URLPATH}-->mypage/download.php?order_id=<!--{$tpl_arrOrderData.order_id}-->&product_id=<!--{$orderDetail.product_id}-->&product_class_id=<!--{$orderDetail.product_class_id}-->">ダウンロード</a>
                         <!--{elseif $orderDetail.payment_date == "" || $orderDetail.status < "4"}-->
                             ダウンロード商品<BR />(入金確認中)
                         <!--{elseif $orderDetail.effective != "1"}-->
@@ -79,9 +79,9 @@
             <!--{/foreach}-->
             <tr>
                 <th colspan="5" class="resulttd">小計</th>
-                <td class="pricetd"><!--{$arrDisp.subtotal|number_format}-->円</td>
+                <td class="pricetd"><!--{$tpl_arrOrderData.subtotal|number_format}-->円</td>
             </tr>
-            <!--{assign var=point_discount value="`$arrDisp.use_point*$smarty.const.POINT_VALUE`"}-->
+            <!--{assign var=point_discount value="`$tpl_arrOrderData.use_point*$smarty.const.POINT_VALUE`"}-->
             <!--{if $point_discount > 0}-->
             <tr>
                 <th colspan="5" class="resulttd">ポイント値引き</th>
@@ -89,24 +89,24 @@
             </tr>
             <!--{/if}-->
             <!--{assign var=key value="discount"}-->
-            <!--{if $arrDisp[$key] != "" && $arrDisp[$key] > 0}-->
+            <!--{if $tpl_arrOrderData[$key] != "" && $tpl_arrOrderData[$key] > 0}-->
             <tr>
                 <th colspan="5" class="resulttd">値引き</th>
-                <td class="pricetd"><!--{$arrDisp[$key]|number_format}-->円</td>
+                <td class="pricetd"><!--{$tpl_arrOrderData[$key]|number_format}-->円</td>
             </tr>
             <!--{/if}-->
             <tr>
                 <th colspan="5" class="resulttd">送料</th>
-                <td class="pricetd"><!--{assign var=key value="deliv_fee"}--><!--{$arrDisp[$key]|number_format|h}-->円</td>
+                <td class="pricetd"><!--{assign var=key value="deliv_fee"}--><!--{$tpl_arrOrderData[$key]|number_format|h}-->円</td>
             </tr>
             <tr>
                 <th colspan="5" class="resulttd">手数料</th>
                 <!--{assign var=key value="charge"}-->
-                <td class="pricetd"><!--{$arrDisp[$key]|number_format|h}-->円</td>
+                <td class="pricetd"><!--{$tpl_arrOrderData[$key]|number_format|h}-->円</td>
             </tr>
             <tr>
                 <th colspan="5" class="resulttd">合計</th>
-                <td class="pricetd"><em><!--{$arrDisp.payment_total|number_format}-->円</em></td>
+                <td class="pricetd"><em><!--{$tpl_arrOrderData.payment_total|number_format}-->円</em></td>
             </tr>
         </table>
 
@@ -115,11 +115,11 @@
             <table summary="使用ポイント">
                 <tr>
                     <th>ご使用ポイント</th>
-                    <td class="pricetd"><!--{assign var=key value="use_point"}--><!--{$arrDisp[$key]|number_format|default:0}--> pt</td>
+                    <td class="pricetd"><!--{assign var=key value="use_point"}--><!--{$tpl_arrOrderData[$key]|number_format|default:0}--> pt</td>
                 </tr>
                 <tr>
                     <th>今回加算されるポイント</th>
-                    <td class="pricetd"><!--{$arrDisp.add_point|number_format|default:0}--> pt</td>
+                    <td class="pricetd"><!--{$tpl_arrOrderData.add_point|number_format|default:0}--> pt</td>
                 </tr>
             </table>
         <!--{/if}-->

変更: branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php
===================================================================
--- branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php	2011-02-11 09:57:29 UTC (rev 20143)
+++ branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php	2011-02-11 09:57:37 UTC (rev 20144)
@@ -454,9 +454,9 @@
         }
         return array($point, $rollback_point);
     }
-    
 
 
+
     /**
      * カテゴリツリーの取得を行う.
      *
@@ -868,25 +868,25 @@
 
     /**
      * カテゴリ数の登録を行う.
-     * 
      *
+     *
      * @param SC_Query $objQuery SC_Query インスタンス
      * @param boolean $is_force_all_count 全カテゴリの集計を強制する場合 true
      * @return void
      */
     function sfCountCategory($objQuery = NULL, $is_force_all_count = false){
         $objProduct = new SC_Product();
-        
+
         if($objQuery == NULL) {
             $objQuery =& SC_Query::getSingletonInstance();
         }
-        
+
         $is_out_trans = false;
         if(!$objQuery->inTransaction()){
             $objQuery->begin();
             $is_out_trans = true;
         }
-        
+
         //共通のfrom/where文の構築
         $sql_where = 'alldtl.del_flg = 0 AND alldtl.status = 1';
         // 在庫無し商品の非表示
@@ -896,11 +896,11 @@
         }else{
             $from = " dtb_products as alldtl ";
         }
-        
+
         //dtb_category_countの構成
         // 各カテゴリに所属する商品の数を集計。集計対象には子カテゴリを含まない。
         // 2.5で消える予定だったが復活させます。DELETE処理は無くしました。
-        
+
         //まずテーブル内容の元を取得
         if(!$is_force_all_count) {
             $arrCategoryCountOld = $objQuery->select('category_id,product_count','dtb_category_count');
@@ -921,10 +921,10 @@
 __EOS__;
 
         $arrCategoryCountNew = $objQuery->getAll($sql);
-        // 各カテゴリに所属する商品の数を集計。集計対象には子カテゴリを「含む」。        
+        // 各カテゴリに所属する商品の数を集計。集計対象には子カテゴリを「含む」。
         //差分を取得して、更新対象カテゴリだけを確認する。
 
-        //各カテゴリ毎のデータ値において以前との差を見る        
+        //各カテゴリ毎のデータ値において以前との差を見る
         //古いデータの構造入れ替え
         $arrOld = array();
         foreach($arrCategoryCountOld as $item){
@@ -949,7 +949,7 @@
                 $arrDiffCategory_id[] = $cid;
             }
         }
-        
+
         //対象IDが無ければ終了
         if(count($arrDiffCategory_id) == 0){
             if($is_out_trans) {
@@ -960,7 +960,7 @@
 
         //差分対象カテゴリIDの重複を除去
         $arrDiffCategory_id = array_unique($arrDiffCategory_id);
-        
+
         //dtb_category_countの更新 差分のあったカテゴリだけ更新する。
         foreach($arrDiffCategory_id as $cid) {
             $sqlval = array();
@@ -976,7 +976,7 @@
                 $objQuery->insert('dtb_category_count', $sqlval);
             }
         }
-        
+
         //差分があったIDとその親カテゴリIDのリストを取得する
         $arrTgtCategory_id = array();
         foreach ($arrDiffCategory_id as $parent_category_id) {
@@ -986,7 +986,7 @@
                 $arrTgtCategory_id[] = $pid;
             }
         }
-        
+
         //重複を取り除く
         $arrTgtCategory_id = array_unique($arrTgtCategory_id);
 
@@ -2076,5 +2076,32 @@
 
         $this->sfRegistTempOrder($uniqid, $sqlval);
     }
+
+
+    /**
+     * 配送情報の取得.
+     * TODO リファクタリング
+     */
+    function sfGetShippingData($orderId) {
+        $objQuery =& SC_Query::getSingletonInstance();
+        $objProduct = new SC_Product();
+        $objQuery->setOrder('shipping_id');
+        $arrRet = $objQuery->select("*", "dtb_shipping", "order_id = ?", array($orderId));
+
+        foreach (array_keys($arrRet) as $key) {
+            $objQuery->setOrder('shipping_id');
+            $arrItems = $objQuery->select("*", "dtb_shipment_item", "order_id = ? AND shipping_id = ?",
+                                       array($orderId, $arrRet[$key]['shipping_id']));
+            foreach ($arrItems as $itemKey => $arrDetail) {
+                foreach ($arrDetail as $detailKey => $detailVal) {
+                    $arrRet[$key]['shipment_item'][$arrDetail['product_class_id']][$detailKey] = $detailVal;
+                }
+
+                $arrRet[$key]['shipment_item'][$arrDetail['product_class_id']]['productsClass'] =& $objProduct->getDetailAndProductsClass($arrDetail['product_class_id']);
+            }
+        }
+        return $arrRet;
+    }
+
 }
 ?>

変更: branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_History.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_History.php	2011-02-11 09:57:29 UTC (rev 20143)
+++ branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_History.php	2011-02-11 09:57:37 UTC (rev 20144)
@@ -22,7 +22,7 @@
  */
 
 // {{{ requires
-require_once(CLASS_REALDIR . "pages/LC_Page.php");
+require_once(CLASS_REALDIR . "pages/mypage/LC_Page_AbstractMypage.php");
 
 /**
  * 購入履歴 のページクラス.
@@ -31,7 +31,7 @@
  * @author LOCKON CO.,LTD.
  * @version $Id$
  */
-class LC_Page_Mypage_History extends LC_Page {
+class LC_Page_Mypage_History extends LC_Page_AbstractMypage {
 
     // }}}
     // {{{ functions
@@ -43,14 +43,13 @@
      */
     function init() {
         parent::init();
-        $this->tpl_navi = TEMPLATE_REALDIR . 'mypage/navi.tpl';
-        $this->tpl_mainno = 'mypage';
-        $this->tpl_mypageno = 'index';
-        $this->tpl_subtitle = '購入履歴詳細';
+        $this->tpl_mypageno     = 'index';
+        $this->tpl_subtitle     = '購入履歴詳細';
         $this->httpCacheControl('nocache');
-        $masterData = new SC_DB_MasterData_Ex();
-        $this->arrMAILTEMPLATE = $masterData->getMasterData("mtb_mail_template");
-        $this->arrPref = $masterData->getMasterData('mtb_pref');
+
+        $masterData             = new SC_DB_MasterData_Ex();
+        $this->arrMAILTEMPLATE  = $masterData->getMasterData("mtb_mail_template");
+        $this->arrPref          = $masterData->getMasterData('mtb_pref');
    }
 
     /**
@@ -60,8 +59,6 @@
      */
     function process() {
         parent::process();
-        $this->action();
-        $this->sendResponse();
     }
 
     /**
@@ -70,49 +67,36 @@
      * @return void
      */
     function action() {
-        $objQuery = new SC_Query();
-        $objCustomer = new SC_Customer();
-        $objDb = new SC_Helper_DB_Ex();
+        $objQuery       = new SC_Query();
+        $objCustomer    = new SC_Customer();
+        $objDb          = new SC_Helper_DB_Ex();
 
-        // FIXME 他の画面と同様のバリデーションを行なう
         if (!SC_Utils_Ex::sfIsInt($_GET['order_id'])) {
-            SC_Utils_Ex::sfDispException();
+            SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
         }
 
-        $orderId = $_GET['order_id'];
+        $order_id        = $_GET['order_id'];
+        $arrOrderData   = $this->lfGetOrderData($objCustomer->getValue('customer_id'), $order_id);
 
-        //不正アクセス判定
-        $from = "dtb_order";
-        $where = "del_flg = 0 AND customer_id = ? AND order_id = ? ";
-        $arrval = array($objCustomer->getValue('customer_id'), $orderId);
-        //DBに情報があるか判定
-        $cnt = $objQuery->count($from, $where, $arrval);
-        //ログインしていない、またはDBに情報が無い場合
-        if (!$objCustomer->isLoginSuccess(true) || $cnt == 0){
+        if (empty($arrOrderData)){
             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
         }
 
         //受注詳細データの取得
-        $this->arrDisp = $this->lfGetOrderData($orderId);
-        $this->arrShipping = $this->lfGetShippingData($orderId);
-        $this->isMultiple = count($this->arrShipping) > 1;
+        $this->tpl_arrOrderData = $arrOrderData[0];
+
+        $this->arrShipping      = $objDb->sfGetShippingData($order_id);
+        $this->isMultiple       = count($this->arrShipping) > 1;
         // 支払い方法の取得
-        $this->arrPayment = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method");
+        $this->arrPayment       = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method");
         // お届け時間の取得
-        $arrRet = $objDb->sfGetDelivTime($this->arrDisp['payment_id']);
-        $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time');
-
-        //マイページトップ顧客情報表示用
-        $this->tpl_login = true;
-        $this->CustomerName1 = $objCustomer->getvalue('name01');
-        $this->CustomerName2 = $objCustomer->getvalue('name02');
-        $this->CustomerPoint = $objCustomer->getvalue('point');
-
+        $this->arrDelivTime     = SC_Utils_Ex::sfArrKeyValue($objDb->sfGetDelivTime($this->tpl_arrOrderData['payment_id']),
+                                                            'time_id',
+                                                            'deliv_time');
         // 受注商品明細の取得
-        $this->tpl_arrOrderDetail = $this->lfGetOrderDetail($orderId);
-
+        $this->tpl_arrOrderDetail = $this->lfGetOrderDetail($order_id);
         // 受注メール送信履歴の取得
-        $this->tpl_arrMailHistory = $this->lfGetMailHistory($orderId);
+        $this->tpl_arrMailHistory = $this->lfGetMailHistory($order_id);
 
     }
 
@@ -131,77 +115,59 @@
      * @param integer $orderId 注文番号
      * @return array 受注の内容
      */
-    function lfGetOrderData($orderId) {
+    function lfGetOrderData($customer_id, $order_id) {
         // DBから受注情報を読み込む
-        $objQuery = new SC_Query();
-        /*
-        $col = "order_id, create_date, payment_id, subtotal, tax, use_point, add_point, discount, ";
-        $col .= "deliv_fee, charge, payment_total, deliv_name01, deliv_name02, deliv_kana01, deliv_kana02, ";
-        $col .= "deliv_zip01, deliv_zip02, deliv_pref, deliv_addr01, deliv_addr02, deliv_tel01, deliv_tel02, deliv_tel03, deliv_time_id, deliv_date ";
-        */
-        $from = "dtb_order";
-        $where = "order_id = ?";
-        $arrRet = $objQuery->select("*", $from, $where, array($orderId));
-        return $arrRet[0];
+        $objQuery   =& SC_Query::getSingletonInstance();
+        $from       = "dtb_order";
+        $where      = "del_flg = 0 AND customer_id = ? AND order_id = ?";
+        return $objQuery->select("*", $from, $where, array($customer_id, $order_id));
     }
 
     /**
-     * 配送情報の取得.
-     * TODO リファクタリング
-     */
-    function lfGetShippingData($orderId) {
-        $objQuery =& SC_Query::getSingletonInstance();
-        $objProduct = new SC_Product();
-        $objQuery->setOrder('shipping_id');
-        $arrRet = $objQuery->select("*", "dtb_shipping", "order_id = ?", array($orderId));
-        foreach (array_keys($arrRet) as $key) {
-            $objQuery->setOrder('shipping_id');
-            $arrItems = $objQuery->select("*", "dtb_shipment_item", "order_id = ? AND shipping_id = ?",
-                                       array($orderId, $arrRet[$key]['shipping_id']));
-            foreach ($arrItems as $itemKey => $arrDetail) {
-                foreach ($arrDetail as $detailKey => $detailVal) {
-                    $arrRet[$key]['shipment_item'][$arrDetail['product_class_id']][$detailKey] = $detailVal;
-                }
-
-                $arrRet[$key]['shipment_item'][$arrDetail['product_class_id']]['productsClass'] =& $objProduct->getDetailAndProductsClass($arrDetail['product_class_id']);
-            }
-        }
-        return $arrRet;
-    }
-
-    /**
      * 受注商品明細の取得
      *
      * @param integer $orderId 注文番号
      * @return array 受注商品明細の内容
      */
-    function lfGetOrderDetail($orderId) {
-        $objQuery = new SC_Query();
-        $dbFactory = SC_DB_DBFactory_Ex::getInstance();
+    function lfGetOrderDetail($order_id) {
+        $objQuery   =& SC_Query::getSingletonInstance();
+        $dbFactory  = SC_DB_DBFactory_Ex::getInstance();
 
-        $col = "od.product_id AS product_id, od.product_code AS product_code, od.product_name AS product_name, od.classcategory_name1 AS classcategory_name1,";
-        $col .= "od.classcategory_name2 AS classcategory_name2, od.price AS price, od.quantity AS quantity, od.point_rate AS point_rate";
-        $col .= ",CASE WHEN EXISTS(SELECT * FROM dtb_products WHERE product_id = od.product_id AND del_flg = 0 AND status = 1) THEN '1' ELSE '0' END AS enable";
-        $col .= ",o.status AS status, pc.product_type_id AS product_type_id, o.payment_date AS payment_date, od.product_class_id as product_class_id, ";
-        $col .= $dbFactory->getDownloadableDaysWhereSql();
-        $col .= " AS effective";
-        $where = "p.product_id = od.product_id AND pc.product_id = od.product_id AND pc.product_class_id = od.product_class_id AND od.order_id = o.order_id AND od.order_id = ?";
-        $arrRet = $objQuery->select($col, "dtb_products p, dtb_products_class pc, dtb_order_detail od, dtb_order o", $where,array($orderId));
-        return $arrRet;
+        $col    = "
+            od.product_id AS product_id,
+            od.product_code AS product_code,
+            od.product_name AS product_name,
+            od.classcategory_name1 AS classcategory_name1,
+            od.classcategory_name2 AS classcategory_name2,
+            od.price AS price,
+            od.quantity AS quantity,
+            od.point_rate AS point_rate
+            ,CASE WHEN EXISTS(SELECT * FROM dtb_products WHERE product_id = od.product_id AND del_flg = 0 AND status = 1) THEN '1' ELSE '0' END AS enable
+            ,o.status AS status,
+            pc.product_type_id AS product_type_id,
+            o.payment_date AS payment_date,
+            od.product_class_id as product_class_id,
+            ".$dbFactory->getDownloadableDaysWhereSql()."
+            AS effective";
+
+        $from   = "dtb_products p, dtb_products_class pc, dtb_order_detail od, dtb_order o";
+        $where  = "p.product_id = od.product_id AND pc.product_id = od.product_id AND pc.product_class_id = od.product_class_id AND od.order_id = o.order_id AND od.order_id = ?";
+
+        return $objQuery->select($col, $from, $where, array($order_id));
     }
 
     /**
      * 受注メール送信履歴の取得
      *
-     * @param integer $orderId 注文番号
+     * @param integer $order_id 注文番号
      * @return array 受注メール送信履歴の内容
      */
-    function lfGetMailHistory($orderId) {
-        $objQuery = new SC_Query();
-        $col = 'send_date, subject, template_id, send_id';
-        $where = 'order_id = ?';
+    function lfGetMailHistory($order_id) {
+        $objQuery   =& SC_Query::getSingletonInstance();
+        $col        = 'send_date, subject, template_id, send_id';
+        $where      = 'order_id = ?';
         $objQuery->setOrder('send_date DESC');
-        $this->arrMailHistory = $objQuery->select($col, 'dtb_mail_history', $where, array($orderId));
+        return $objQuery->select($col, 'dtb_mail_history', $where, array($order_id));
     }
 }
 ?>




Svn-src-all メーリングリストの案内