Source for file LC_Page_Mypage_History.php

Documentation is available at LC_Page_Mypage_History.php

  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.lockon.co.jp/
  8.  *
  9.  * This program is free software; you can redistribute it and/or
  10.  * modify it under the terms of the GNU General Public License
  11.  * as published by the Free Software Foundation; either version 2
  12.  * of the License, or (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  22.  */
  23.  
  24. // {{{ requires
  25. require_once(CLASS_PATH "pages/LC_Page.php");
  26.  
  27. /**
  28.  * 購入履歴 のページクラス.
  29.  *
  30.  * @package Page
  31.  * @author LOCKON CO.,LTD.
  32.  * @version $Id: LC_Page_Mypage_History.php 17922 2009-03-23 13:18:36Z Yammy $
  33.  */
  34. class LC_Page_Mypage_History extends LC_Page {
  35.  
  36.     // }}}
  37.     // {{{ functions
  38.  
  39.     /**
  40.      * Page を初期化する.
  41.      *
  42.      * @return void 
  43.      */
  44.     function init({
  45.         parent::init();
  46.         $this->tpl_mainpage = TEMPLATE_DIR 'mypage/history.tpl';
  47.         $this->tpl_title = 'MYページ';
  48.         $this->tpl_subtitle '購入履歴詳細';
  49.         $this->tpl_navi TEMPLATE_DIR 'mypage/navi.tpl';
  50.         $this->tpl_column_num = 1;
  51.         $this->tpl_mainno = 'mypage';
  52.         $this->tpl_mypageno 'index';
  53.         $this->allowClientCache();
  54.  
  55.         $masterData new SC_DB_MasterData_Ex();
  56.         $this->arrMAILTEMPLATE $masterData->getMasterData("mtb_mail_template");
  57.     }
  58.  
  59.     /**
  60.      * Page のプロセス.
  61.      *
  62.      * @return void 
  63.      */
  64.     function process({
  65.         $objView new SC_SiteView();
  66.         $objQuery new SC_Query();
  67.         $objCustomer new SC_Customer();
  68.         $objDb new SC_Helper_DB_Ex();
  69.  
  70.         // レイアウトデザインを取得
  71.         $objLayout new SC_Helper_PageLayout_Ex();
  72.         $objLayout->sfGetPageLayout($thisfalse"mypage/index.php");
  73.  
  74.         //不正アクセス判定
  75.         $from "dtb_order";
  76.         $where "del_flg = 0 AND customer_id = ? AND order_id = ? ";
  77.         $arrval array($objCustomer->getValue('customer_id')$_POST['order_id']);
  78.         //DBに情報があるか判定
  79.         $cnt $objQuery->count($from$where$arrval);
  80.         //ログインしていない、またはDBに情報が無い場合
  81.         if (!$objCustomer->isLoginSuccess(|| $cnt == 0){
  82.             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
  83.         else {
  84.             //受注詳細データの取得
  85.             $this->arrDisp $this->lfGetOrderData($_POST['order_id']);
  86.             // 支払い方法の取得
  87.             $this->arrPayment $objDb->sfGetIDValueList("dtb_payment""payment_id""payment_method");
  88.             // 配送時間の取得
  89.             $arrRet $objDb->sfGetDelivTime($this->arrDisp['payment_id']);
  90.             $this->arrDelivTime SC_Utils_Ex::sfArrKeyValue($arrRet'time_id''deliv_time');
  91.  
  92.             //マイページトップ顧客情報表示用
  93.             $this->CustomerName1 $objCustomer->getvalue('name01');
  94.             $this->CustomerName2 $objCustomer->getvalue('name02');
  95.             $this->CustomerPoint $objCustomer->getvalue('point');
  96.         }
  97.  
  98.         if(SC_Utils_Ex::sfIsInt($_POST['order_id'])) {
  99.             $col "send_date, subject, template_id, send_id";
  100.             $where "order_id = ?";
  101.             $objQuery->setorder("send_date DESC");
  102.             $this->arrMailHistory $objQuery->select($col"dtb_mail_history"$wherearray($_POST['order_id']));
  103.         }
  104.  
  105.         $masterData new SC_DB_MasterData_Ex();
  106.         $this->arrPref $masterData->getMasterData("mtb_pref",
  107.                                  array("pref_id""pref_name""rank"));
  108.         $objView->assignobj($this);
  109.         $objView->display(SITE_FRAME);
  110.     }
  111.  
  112.     /**
  113.      * デストラクタ.
  114.      *
  115.      * @return void 
  116.      */
  117.     function destroy({
  118.         parent::destroy();
  119.     }
  120.  
  121.     /**
  122.      * モバイルページを初期化する.
  123.      *
  124.      * @return void 
  125.      */
  126.     function mobileInit({
  127.         $this->tpl_mainpage = MOBILE_TEMPLATE_DIR 'mypage/history.tpl';
  128.         $this->tpl_title = 'MYページ/購入履歴一覧';
  129.         $this->allowClientCache();
  130.     }
  131.  
  132.     /**
  133.      * Page のプロセス(モバイル).
  134.      *
  135.      * @return void 
  136.      */
  137.     function mobileProcess({
  138.         define ("HISTORY_NUM"5);
  139.  
  140.         $objView new SC_MobileView();
  141.         $objQuery new SC_Query();
  142.         $objCustomer new SC_Customer();
  143.         $pageNo = isset($_GET['pageno']? (int) $_GET['pageno'0// TODO
  144.  
  145.         // ログインチェック
  146.         if(!isset($_SESSION['customer'])) {
  147.             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR""false""true);
  148.         }
  149.  
  150.         $col "order_id, create_date, payment_id, payment_total";
  151.         $from "dtb_order";
  152.         $where "del_flg = 0 AND customer_id=?";
  153.         $arrval array($objCustomer->getvalue('customer_id'));
  154.         $order "order_id DESC";
  155.  
  156.         $linemax $objQuery->count($from$where$arrval);
  157.         $this->tpl_linemax $linemax;
  158.  
  159.         // 取得範囲の指定(開始行番号、行数のセット)
  160.         $objQuery->setlimitoffset(HISTORY_NUM$pageNo);
  161.         // 表示順序
  162.         $objQuery->setorder($order);
  163.  
  164.         //購入履歴の取得
  165.         $this->arrOrder $objQuery->select($col$from$where$arrval);
  166.  
  167.         // next
  168.         if ($pageNo HISTORY_NUM $linemax{
  169.             $next "<a href='history.php?pageno=" ($pageNo HISTORY_NUM"'>次へ→</a>";
  170.         else {
  171.             $next "";
  172.         }
  173.  
  174.         // previous
  175.         if ($pageNo HISTORY_NUM 0{
  176.             $previous "<a href='history.php?pageno=" ($pageNo HISTORY_NUM"'>←前へ</a>";
  177.         elseif ($pageNo == 0{
  178.             $previous "";
  179.         else {
  180.             $previous "<a href='history.php?pageno=0'>←前へ</a>";
  181.         }
  182.  
  183.         // bar
  184.         if ($next != '' && $previous != ''{
  185.             $bar " | ";
  186.         else {
  187.             $bar "";
  188.         }
  189.  
  190.         $this->tpl_strnavi $previous $bar $next;
  191.         $objView->assignobj($this);                //$objpage内の全てのテンプレート変数をsmartyに格納
  192.         $objView->display(SITE_FRAME);                //パスとテンプレート変数の呼び出し、実行
  193.     }
  194.  
  195.     //受注詳細データの取得
  196.     function lfGetOrderData($order_id{
  197.         //受注番号が数字であれば
  198.         if(SC_Utils_Ex::sfIsInt($order_id)) {
  199.             // DBから受注情報を読み込む
  200.             $objQuery new SC_Query();
  201.             $col "order_id, create_date, payment_id, subtotal, tax, use_point, add_point, discount, ";
  202.             $col .= "deliv_fee, charge, payment_total, deliv_name01, deliv_name02, deliv_kana01, deliv_kana02, ";
  203.             $col .= "deliv_zip01, deliv_zip02, deliv_pref, deliv_addr01, deliv_addr02, deliv_tel01, deliv_tel02, deliv_tel03, deliv_time_id, deliv_date ";
  204.             $from "dtb_order";
  205.             $where "order_id = ?";
  206.             $arrRet $objQuery->select($col$from$wherearray($order_id));
  207.             $arrOrder $arrRet[0];
  208.             // 受注詳細データの取得
  209.             $arrRet $this->lfGetOrderDetail($order_id);
  210.             $arrOrderDetail SC_Utils_Ex::sfSwapArray($arrRet);
  211.             $arrData array_merge($arrOrder$arrOrderDetail);
  212.         }
  213.         return $arrData;
  214.     }
  215.  
  216.     // 受注詳細データの取得
  217.     function lfGetOrderDetail($order_id{
  218.         $objQuery new SC_Query();
  219.         $col "product_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate";
  220.         $where "order_id = ?";
  221.         $objQuery->setorder("classcategory_id1, classcategory_id2");
  222.         $arrRet $objQuery->select($col"dtb_order_detail"$wherearray($order_id));
  223.         return $arrRet;
  224.     }
  225. }
  226. ?>

Documentation generated on Tue, 28 Apr 2009 18:12:33 +0900 by phpDocumentor 1.4.2