/**
  * (non-PHPdoc)
  *
  * @see LC_Page_Admin::init()
  */
 function init()
 {
     parent::init();
     $this->objDb = new SC_Helper_DB_Ex();
     $this->tpl_mainpage = 'basis/device_android.tpl';
     $this->tpl_subno = 'device_android';
     $this->tpl_mainno = 'basis';
     $this->tpl_pager = 'pager.tpl';
     $this->tpl_maintitle = '基本情報管理';
     $this->tpl_subtitle = 'Android 対応機種設定>対応機種一覧';
     $masterdata = new SC_DB_MasterData_Ex();
     $this->arrPageMax = $masterdata->getMasterData("mtb_page_max");
     $this->arrOsVersion = $masterdata->getMasterData("cp_mtb_android_os_version");
     $this->arrCarrier = $masterdata->getMasterData("cp_mtb_carrier");
     $this->arrStatus = $masterdata->getMasterData("mtb_disp");
     $this->arrStatusColor = $masterdata->getMasterData("mtb_product_status_color");
     $objCategory = new SC_Helper_Category_Ex(false);
     $arrCategory = $objCategory->getList(false);
     $this->arrCategory = SC_Utils_Ex::sfArrKeyValue($arrCategory, "category_id", "category_name");
     $this->arrCategory2 = $arrCategory;
     $objDate = new SC_Date_Ex(2000, date("Y") + 1);
     $this->arrDeviceReleaseYear = $objDate->getYear("", date("Y"), "");
     $this->arrMonth = $objDate->getMonth(true);
     $this->arrDay = $objDate->getDay(true);
     $this->arrDisplaySize = $masterdata->getMasterData("cp_mtb_device_displaysize");
     array_walk($this->arrDisplaySize, function (&$v) {
         $v = explode(",", $v);
     });
 }
 /**
  * Page のプロセス.
  *
  * @return void
  */
 function process()
 {
     $objView = new SC_SiteView();
     $objQuery = new SC_Query();
     $objCustomer = new SC_Customer();
     $objDb = new SC_Helper_DB_Ex();
     // レイアウトデザインを取得
     $objLayout = new SC_Helper_PageLayout_Ex();
     $objLayout->sfGetPageLayout($this, false, "mypage/index.php");
     //不正アクセス判定
     $from = "dtb_order";
     $where = "del_flg = 0 AND customer_id = ? AND order_id = ? ";
     $arrval = array($objCustomer->getValue('customer_id'), $_POST['order_id']);
     //DBに情報があるか判定
     $cnt = $objQuery->count($from, $where, $arrval);
     //ログインしていない、またはDBに情報が無い場合
     if (!$objCustomer->isLoginSuccess() || $cnt == 0) {
         SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
     } else {
         //受注詳細データの取得
         $this->arrDisp = $this->lfGetOrderData($_POST['order_id']);
         // 支払い方法の取得
         $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->CustomerName1 = $objCustomer->getvalue('name01');
         $this->CustomerName2 = $objCustomer->getvalue('name02');
         $this->CustomerPoint = $objCustomer->getvalue('point');
     }
     $masterData = new SC_DB_MasterData_Ex();
     $this->arrPref = $masterData->getMasterData("mtb_pref", array("pref_id", "pref_name", "rank"));
     $objView->assignobj($this);
     $objView->display(SITE_FRAME);
 }
Example #3
0
 function sfGetClassCatCount()
 {
     $sql = 'select count(dtb_class.class_id) as count, dtb_class.class_id ';
     $sql .= 'from dtb_class inner join dtb_classcategory on dtb_class.class_id = dtb_classcategory.class_id ';
     $sql .= 'where dtb_class.del_flg = 0 AND dtb_classcategory.del_flg = 0 ';
     $sql .= 'group by dtb_class.class_id, dtb_class.name';
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     $arrList = $objQuery->getAll($sql);
     // キーと値をセットした配列を取得
     $arrRet = SC_Utils_Ex::sfArrKeyValue($arrList, 'class_id', 'count');
     return $arrRet;
 }
 /**
  * Page のプロセス(モバイル).
  *
  * @return void
  */
 function mobileProcess()
 {
     $objView = new SC_MobileView();
     $objQuery = new SC_Query();
     $objCustomer = new SC_Customer();
     $objDb = new SC_Helper_DB_Ex();
     //不正アクセス判定
     $from = "dtb_order";
     $where = "del_flg = 0 AND customer_id = ? AND order_id = ? ";
     $arrval = array($objCustomer->getValue('customer_id'), $_POST['order_id']);
     //DBに情報があるか判定
     $cnt = $objQuery->count($from, $where, $arrval);
     //ログインしていない、またはDBに情報が無い場合
     if (!$objCustomer->isLoginSuccess(true) or $cnt == 0) {
         SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR, "", false, "", true);
     } else {
         //受注詳細データの取得
         $this->arrDisp = $this->lfGetOrderData($_POST['order_id']);
         // 支払い方法の取得
         $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->CustomerName1 = $objCustomer->getvalue('name01');
         $this->CustomerName2 = $objCustomer->getvalue('name02');
         $this->CustomerPoint = $objCustomer->getvalue('point');
     }
     $objView->assignobj($this);
     $objView->display(SITE_FRAME);
 }
 /**
  * Page のプロセス.
  *
  * @return void
  */
 function process()
 {
     $conn = new SC_DBConn();
     $objView = new SC_AdminView();
     $objDb = new SC_Helper_DB_Ex();
     $objSess = new SC_Session();
     // パラメータ管理クラス
     $this->objFormParam = new SC_FormParam();
     // パラメータ情報の初期化
     $this->lfInitParam();
     $this->objFormParam->setParam($_POST);
     $this->objFormParam->splitParamCheckBoxes('search_order_sex');
     $this->objFormParam->splitParamCheckBoxes('search_payment_id');
     // 検索ワードの引き継ぎ
     foreach ($_POST as $key => $val) {
         if (ereg("^search_", $key)) {
             switch ($key) {
                 case 'search_order_sex':
                 case 'search_payment_id':
                     $this->arrHidden[$key] = SC_Utils_Ex::sfMergeParamCheckBoxes($val);
                     break;
                 default:
                     $this->arrHidden[$key] = $val;
                     break;
             }
         }
     }
     // ページ送り用
     $this->arrHidden['search_pageno'] = isset($_POST['search_pageno']) ? $_POST['search_pageno'] : "";
     // 認証可否の判定
     SC_Utils_Ex::sfIsSuccess($objSess);
     if (!isset($_POST['mode'])) {
         $_POST['mode'] = "";
     }
     if (!isset($arrRet)) {
         $arrRet = array();
     }
     if ($_POST['mode'] == 'delete') {
         if (SC_Utils_Ex::sfIsInt($_POST['order_id'])) {
             $objQuery = new SC_Query();
             $where = "order_id = ?";
             $sqlval['del_flg'] = '1';
             $objQuery->update("dtb_order", $sqlval, $where, array($_POST['order_id']));
         }
     }
     switch ($_POST['mode']) {
         case 'delete':
         case 'csv':
         case 'pdf':
         case 'delete_all':
         case 'search':
             // 入力値の変換
             $this->objFormParam->convParam();
             $this->arrErr = $this->lfCheckError($arrRet);
             $arrRet = $this->objFormParam->getHashArray();
             // 入力なし
             if (count($this->arrErr) == 0) {
                 $where = "del_flg = 0";
                 foreach ($arrRet as $key => $val) {
                     if ($val == "") {
                         continue;
                     }
                     $val = SC_Utils_Ex::sfManualEscape($val);
                     switch ($key) {
                         case 'search_order_name':
                             if (DB_TYPE == "pgsql") {
                                 $where .= " AND order_name01||order_name02 ILIKE ?";
                             } elseif (DB_TYPE == "mysql") {
                                 $where .= " AND concat(order_name01,order_name02) ILIKE ?";
                             }
                             $nonsp_val = mb_ereg_replace("[  ]+", "", $val);
                             $arrval[] = "%{$nonsp_val}%";
                             break;
                         case 'search_order_kana':
                             if (DB_TYPE == "pgsql") {
                                 $where .= " AND order_kana01||order_kana02 ILIKE ?";
                             } elseif (DB_TYPE == "mysql") {
                                 $where .= " AND concat(order_kana01,order_kana02) ILIKE ?";
                             }
                             $nonsp_val = mb_ereg_replace("[  ]+", "", $val);
                             $arrval[] = "%{$nonsp_val}%";
                             break;
                         case 'search_order_id1':
                             $where .= " AND order_id >= ?";
                             $arrval[] = $val;
                             break;
                         case 'search_order_id2':
                             $where .= " AND order_id <= ?";
                             $arrval[] = $val;
                             break;
                         case 'search_order_sex':
                             $tmp_where = "";
                             foreach ($val as $element) {
                                 if ($element != "") {
                                     if ($tmp_where == "") {
                                         $tmp_where .= " AND (order_sex = ?";
                                     } else {
                                         $tmp_where .= " OR order_sex = ?";
                                     }
                                     $arrval[] = $element;
                                 }
                             }
                             if ($tmp_where != "") {
                                 $tmp_where .= ")";
                                 $where .= " {$tmp_where} ";
                             }
                             break;
                         case 'search_order_tel':
                             if (DB_TYPE == "pgsql") {
                                 $where .= " AND (order_tel01 || order_tel02 || order_tel03) LIKE ?";
                             } elseif (DB_TYPE == "mysql") {
                                 $where .= " AND concat(order_tel01,order_tel02,order_tel03) LIKE ?";
                             }
                             $nonmark_val = ereg_replace("[()-]+", "", $val);
                             $arrval[] = "%{$nonmark_val}%";
                             break;
                         case 'search_order_email':
                             $where .= " AND order_email ILIKE ?";
                             $arrval[] = "%{$val}%";
                             break;
                         case 'search_payment_id':
                             $tmp_where = "";
                             foreach ($val as $element) {
                                 if ($element != "") {
                                     if ($tmp_where == "") {
                                         $tmp_where .= " AND (payment_id = ?";
                                     } else {
                                         $tmp_where .= " OR payment_id = ?";
                                     }
                                     $arrval[] = $element;
                                 }
                             }
                             if ($tmp_where != "") {
                                 $tmp_where .= ")";
                                 $where .= " {$tmp_where} ";
                             }
                             break;
                         case 'search_total1':
                             $where .= " AND total >= ?";
                             $arrval[] = $val;
                             break;
                         case 'search_total2':
                             $where .= " AND total <= ?";
                             $arrval[] = $val;
                             break;
                         case 'search_sorderyear':
                             $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_sorderyear'], $_POST['search_sordermonth'], $_POST['search_sorderday']);
                             $where .= " AND create_date >= ?";
                             $arrval[] = $date;
                             break;
                         case 'search_eorderyear':
                             $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_eorderyear'], $_POST['search_eordermonth'], $_POST['search_eorderday'], true);
                             $where .= " AND create_date <= ?";
                             $arrval[] = $date;
                             break;
                         case 'search_supdateyear':
                             $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_supdateyear'], $_POST['search_supdatemonth'], $_POST['search_supdateday']);
                             $where .= " AND update_date >= ?";
                             $arrval[] = $date;
                             break;
                         case 'search_eupdateyear':
                             $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_eupdateyear'], $_POST['search_eupdatemonth'], $_POST['search_eupdateday'], true);
                             $where .= " AND update_date <= ?";
                             $arrval[] = $date;
                             break;
                         case 'search_sbirthyear':
                             $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_sbirthyear'], $_POST['search_sbirthmonth'], $_POST['search_sbirthday']);
                             $where .= " AND order_birth >= ?";
                             $arrval[] = $date;
                             break;
                         case 'search_ebirthyear':
                             $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_ebirthyear'], $_POST['search_ebirthmonth'], $_POST['search_ebirthday'], true);
                             $where .= " AND order_birth <= ?";
                             $arrval[] = $date;
                             break;
                         case 'search_order_status':
                             $where .= " AND status = ?";
                             $arrval[] = $val;
                             break;
                         default:
                             if (!isset($arrval)) {
                                 $arrval = array();
                             }
                             break;
                     }
                 }
                 $order = "update_date DESC";
                 switch ($_POST['mode']) {
                     case 'csv':
                         require_once CLASS_EX_PATH . "helper_extends/SC_Helper_CSV_Ex.php";
                         $objCSV = new SC_Helper_CSV_Ex();
                         // オプションの指定
                         $option = "ORDER BY {$order}";
                         // CSV出力タイトル行の作成
                         $arrCsvOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput(3, " WHERE csv_id = 3 AND status = 1"));
                         if (count($arrCsvOutput) <= 0) {
                             break;
                         }
                         $arrCsvOutputCols = $arrCsvOutput['col'];
                         $arrCsvOutputTitle = $arrCsvOutput['disp_name'];
                         $head = SC_Utils_Ex::sfGetCSVList($arrCsvOutputTitle);
                         $data = $objCSV->lfGetCSV("dtb_order", $where, $option, $arrval, $arrCsvOutputCols);
                         // CSVを送信する。
                         SC_Utils_Ex::sfCSVDownload($head . $data);
                         exit;
                         break;
                     case 'pdf':
                         $objFpdf = new SC_Fpdf(1, '納品書');
                         $objFpdf->setData($arrRet);
                         $objFpdf->createPdf();
                         break;
                     case 'delete_all':
                         // 検索結果をすべて削除
                         $sqlval['del_flg'] = 1;
                         $objQuery = new SC_Query();
                         $objQuery->update("dtb_order", $sqlval, $where, $arrval);
                         break;
                     default:
                         // 読み込む列とテーブルの指定
                         $col = "*";
                         $from = "dtb_order";
                         $objQuery = new SC_Query();
                         // 行数の取得
                         $linemax = $objQuery->count($from, $where, $arrval);
                         $this->tpl_linemax = $linemax;
                         // 何件が該当しました。表示用
                         // ページ送りの処理
                         if (is_numeric($_POST['search_page_max'])) {
                             $page_max = $_POST['search_page_max'];
                         } else {
                             $page_max = SEARCH_PMAX;
                         }
                         // ページ送りの取得
                         $objNavi = new SC_PageNavi($this->arrHidden['search_pageno'], $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX);
                         $startno = $objNavi->start_row;
                         $this->arrPagenavi = $objNavi->arrPagenavi;
                         // 取得範囲の指定(開始行番号、行数のセット)
                         $objQuery->setlimitoffset($page_max, $startno);
                         // 表示順序
                         $objQuery->setorder($order);
                         // 検索結果の取得
                         $this->arrResults = $objQuery->select($col, $from, $where, $arrval);
                 }
             }
             break;
         default:
             break;
     }
     $objDate = new SC_Date();
     // 登録・更新日検索用
     $objDate->setStartYear(RELEASE_YEAR);
     $objDate->setEndYear(DATE("Y"));
     $this->arrRegistYear = $objDate->getYear();
     // 生年月日検索用
     $objDate->setStartYear(BIRTH_YEAR);
     $objDate->setEndYear(DATE("Y"));
     $this->arrBirthYear = $objDate->getYear();
     // 月日の設定
     $this->arrMonth = $objDate->getMonth();
     $this->arrDay = $objDate->getDay();
     // 入力値の取得
     $this->arrForm = $this->objFormParam->getFormParamList();
     // 支払い方法の取得
     $arrRet = $objDb->sfGetPayment();
     $this->arrPayment = SC_Utils_Ex::sfArrKeyValue($arrRet, 'payment_id', 'payment_method');
     $objView->assignobj($this);
     $objView->display(MAIN_FRAME);
 }
 function lfGetGraphBar($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate)
 {
     $ret_path = '';
     // 結果が0行以上ある場合のみグラフを生成する。
     if (count($arrResults) > 0 && $this->install_GD) {
         // グラフの生成
         $arrList = SC_Utils_Ex::sfArrKeyValue($arrResults, $keyname, 'total', GRAPH_PIE_MAX, GRAPH_LABEL_MAX);
         // 一時ファイル名の取得
         $pngname = $this->lfGetGraphPng($type);
         $path = GRAPH_REALDIR . $pngname;
         $objGraphBar = new SC_Graph_Bar();
         foreach ($arrList as $key => $value) {
             $arrKey[] = mb_ereg_replace('~', '-', $key);
         }
         // グラフ描画
         $objGraphBar->setXLabel($arrKey);
         $objGraphBar->setXTitle($xtitle);
         $objGraphBar->setYTitle($ytitle);
         $objGraphBar->setData($arrList);
         // メインタイトル作成
         $arrKey = array_keys($arrList);
         list($sy, $sm, $sd) = preg_split('|[/ ]|', $sdate);
         list($ey, $em, $ed) = preg_split('|[/ ]|', $edate);
         $start_date = t('c_T_ARG1/T_ARG2/T_ARG3_01', array('T_ARG1' => $sy, 'T_ARG2' => $sm, 'T_ARG3' => $sd));
         $end_date = t('c_T_ARG1/T_ARG2/T_ARG3_01', array('T_ARG1' => $ey, 'T_ARG2' => $em, 'T_ARG3' => $ed));
         $objGraphBar->drawTitle(t('c_Sales period: T_ARG1 - T_ARG2_01', array('T_ARG1' => $start_date, 'T_ARG2' => $end_date)));
         $objGraphBar->drawGraph();
         if (DRAW_IMAGE) {
             $objGraphBar->outputGraph();
             SC_Response_Ex::actionExit();
         }
         // ファイルパスを返す
         $ret_path = GRAPH_URLPATH . $pngname;
     }
     return $ret_path;
 }
 function lfGetGraphBar($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate)
 {
     $ret_path = "";
     // 結果が0行以上ある場合のみグラフを生成する。
     if (count($arrResults) > 0) {
         // グラフの生成
         $arrList = SC_Utils_Ex::sfArrKeyValue($arrResults, $keyname, "total", GRAPH_PIE_MAX, GRAPH_LABEL_MAX);
         // 一時ファイル名の取得
         $pngname = $this->lfGetGraphPng($type);
         $path = GRAPH_DIR . $pngname;
         $objGraphBar = new SC_GraphBar();
         foreach (array_keys($arrList) as $val) {
             $arrKey[] = ereg_replace("〜", "-", $val);
         }
         // グラフ描画
         $objGraphBar->setXLabel($arrKey);
         $objGraphBar->setXTitle($xtitle);
         $objGraphBar->setYTitle($ytitle);
         $objGraphBar->setData($arrList);
         // メインタイトル作成
         $arrKey = array_keys($arrList);
         list($sy, $sm, $sd) = split("[/ ]", $sdate);
         list($ey, $em, $ed) = split("[/ ]", $edate);
         $start_date = $sy . "年" . $sm . "月" . $sd . "日";
         $end_date = $ey . "年" . $em . "月" . $ed . "日";
         $objGraphBar->drawTitle("集計期間:" . $start_date . " - " . $end_date);
         $objGraphBar->drawGraph();
         if (DRAW_IMAGE) {
             $objGraphBar->outputGraph();
             exit;
         }
         // ファイルパスを返す
         $ret_path = GRAPH_URL . $pngname;
     }
     return $ret_path;
 }
Example #8
0
 function sfGetClassCatCount()
 {
     $sql = "select count(dtb_class.class_id) as count, dtb_class.class_id ";
     $sql .= "from dtb_class inner join dtb_classcategory on dtb_class.class_id = dtb_classcategory.class_id ";
     $sql .= "where dtb_class.del_flg = 0 AND dtb_classcategory.del_flg = 0 ";
     $sql .= "group by dtb_class.class_id, dtb_class.name";
     $objQuery = new SC_Query_Ex();
     $arrList = $objQuery->getAll($sql);
     // キーと値をセットした配列を取得
     $arrRet = SC_Utils_Ex::sfArrKeyValue($arrList, 'class_id', 'count');
     return $arrRet;
 }
 /**
  * Page のプロセス(モバイル).
  *
  * @return void
  */
 function mobileProcess()
 {
     $objView = new SC_MobileView();
     $objSiteSess = new SC_SiteSession();
     $objCartSess = new SC_CartSession();
     $this->objCustomer = new SC_Customer();
     $objDb = new SC_Helper_DB_Ex();
     $objSiteInfo = $objView->objSiteInfo;
     $arrInfo = $objSiteInfo->data;
     // パラメータ管理クラス
     $this->objFormParam = new SC_FormParam();
     // パラメータ情報の初期化
     $this->lfInitParam();
     // POST値の取得
     $this->objFormParam->setParam($_POST);
     // ユーザユニークIDの取得と購入状態の正当性をチェック
     $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess);
     // ユニークIDを引き継ぐ
     $this->tpl_uniqid = $uniqid;
     // 会員ログインチェック
     if ($this->objCustomer->isLoginSuccess(true)) {
         $this->tpl_login = '******';
         $this->tpl_user_point = $this->objCustomer->getValue('point');
     }
     // 金額の取得 (購入途中で売り切れた場合にはこの関数内にてその商品の個数が0になる)
     $objDb->sfTotalCart($this, $objCartSess, $arrInfo);
     if (empty($arrData)) {
         $arrData = array();
     }
     $this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo);
     // カート内の商品の売り切れチェック
     $objCartSess->chkSoldOut($objCartSess->getCartList(), true);
     if (!isset($_POST['mode'])) {
         $_POST['mode'] = "";
     }
     // 戻るボタンの処理
     if (!empty($_POST['return'])) {
         switch ($_POST['mode']) {
             case 'confirm':
                 $_POST['mode'] = 'payment';
                 break;
             default:
                 // 正常な推移であることを記録しておく
                 $objSiteSess->setRegistFlag();
                 $this->sendRedirect(MOBILE_URL_SHOP_TOP, true);
                 exit;
         }
     }
     switch ($_POST['mode']) {
         // 支払い方法指定 → 配達日時指定
         case 'deliv_date':
             // 入力値の変換
             $this->objFormParam->convParam();
             $this->arrErr = $this->lfCheckError($this->arrData);
             if (!isset($this->arrErr['payment_id'])) {
                 // 支払い方法の入力エラーなし
                 $this->tpl_mainpage = 'shopping/deliv_date.tpl';
                 $this->tpl_title = "配達日時指定";
                 break;
             } else {
                 // ユーザユニークIDの取得
                 $uniqid = $objSiteSess->getUniqId();
                 // 受注一時テーブルからの情報を格納
                 $this->lfSetOrderTempData($uniqid);
             }
             break;
         case 'confirm':
             // 入力値の変換
             $this->objFormParam->convParam();
             $this->arrErr = $this->lfCheckError($this->arrData);
             // 入力エラーなし
             if (count($this->arrErr) == 0) {
                 // DBへのデータ登録
                 $this->lfRegistData($uniqid);
                 // 正常に登録されたことを記録しておく
                 $objSiteSess->setRegistFlag();
                 // 確認ページへ移動
                 $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_CONFIRM), true);
                 exit;
             } else {
                 // ユーザユニークIDの取得
                 $uniqid = $objSiteSess->getUniqId();
                 // 受注一時テーブルからの情報を格納
                 $this->lfSetOrderTempData($uniqid);
                 if (!isset($this->arrErr['payment_id'])) {
                     // 支払い方法の入力エラーなし
                     $this->tpl_mainpage = 'shopping/deliv_date.tpl';
                     $this->tpl_title = "配達日時指定";
                 }
             }
             break;
             // 前のページに戻る
         // 前のページに戻る
         case 'return':
             // 非会員の場合
             // 正常な推移であることを記録しておく
             $objSiteSess->setRegistFlag();
             $this->sendRedirect(MOBILE_URL_SHOP_TOP, true);
             exit;
             break;
             // 支払い方法が変更された場合
         // 支払い方法が変更された場合
         case 'payment':
             // ここのbreakは、意味があるので外さないで下さい。
             break;
         default:
             // 受注一時テーブルからの情報を格納
             $this->lfSetOrderTempData($uniqid);
             break;
     }
     // 店舗情報の取得
     $arrInfo = $objSiteInfo->data;
     // 購入金額の取得得
     $total_pretax = $objCartSess->getAllProductsTotal($arrInfo);
     // 支払い方法の取得
     $this->arrPayment = $this->lfGetPayment($total_pretax);
     // 配送時間の取得
     $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id'));
     $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time');
     // 配送日一覧の取得
     $this->arrDelivDate = $this->lfGetDelivDate();
     $this->arrForm = $this->objFormParam->getFormParamList();
     $objView->assignobj($this);
     $objView->display(SITE_FRAME);
 }
 /**
  * Page のプロセス.
  *
  * @return void
  */
 function process()
 {
     $conn = new SC_DBConn();
     $objView = new SC_AdminView();
     $objSess = new SC_Session();
     $objSiteInfo = new SC_SiteInfo();
     $objDb = new SC_Helper_DB_Ex();
     $arrInfo = $objSiteInfo->data;
     // パラメータ管理クラス
     $this->objFormParam = new SC_FormParam();
     // パラメータ情報の初期化
     $this->lfInitParam();
     // 認証可否の判定
     SC_Utils_Ex::sfIsSuccess($objSess);
     // 検索パラメータの引き継ぎ
     foreach ($_POST as $key => $val) {
         if (ereg("^search_", $key)) {
             $this->arrSearchHidden[$key] = $val;
         }
     }
     // 表示モード判定
     if (isset($_GET['order_id']) && SC_Utils_Ex::sfIsInt($_GET['order_id'])) {
         $this->disp_mode = true;
         $order_id = $_GET['order_id'];
     } else {
         $order_id = $_POST['order_id'];
     }
     $this->tpl_order_id = $order_id;
     // DBから受注情報を読み込む
     $this->lfGetOrderData($order_id);
     switch ($_POST['mode']) {
         case 'pre_edit':
         case 'order_id':
             break;
         case 'edit':
         case 'add':
             // POST情報で上書き
             $this->objFormParam->setParam($_POST);
             // 入力値の変換
             $this->objFormParam->convParam();
             $this->arrErr = $this->lfCheckError();
             $this->arrErr = array_merge((array) $this->arrErr, (array) $this->lfCheek($arrInfo, $_POST['mode']));
             if (count($this->arrErr) == 0) {
                 if ($_POST['mode'] == 'add') {
                     $order_id = $this->lfRegistNewData();
                     $this->tpl_order_id = $order_id;
                     $this->tpl_mode = 'edit';
                     $arrData['order_id'] = $order_id;
                     $this->objFormParam->setParam($arrData);
                     $text = "'新規受注を登録しました。'";
                 } else {
                     $this->lfRegistData($_POST['order_id']);
                     $text = "'受注履歴を編集しました。'";
                 }
                 // DBから受注情報を再読込
                 $this->lfGetOrderData($order_id);
                 $this->tpl_onload = "window.alert(" . $text . ");";
             }
             break;
             // 再計算
         // 再計算
         case 'cheek':
             // POST情報で上書き
             $this->objFormParam->setParam($_POST);
             // 入力値の変換
             $this->objFormParam->convParam();
             $this->arrErr = $this->lfCheckError();
             if (count($this->arrErr) == 0) {
                 $this->arrErr = $this->lfCheek($arrInfo, $_POST['mode']);
             }
             break;
             /* ペイジェント決済モジュール連携用 */
         /* ペイジェント決済モジュール連携用 */
         case 'paygent_order':
             $this->paygent_return = sfPaygentOrder($_POST['paygent_type'], $order_id);
             break;
             /* 商品削除*/
         /* 商品削除*/
         case 'delete_product':
             $delete_no = $_POST['delete_no'];
             foreach ($_POST as $key => $val) {
                 if (is_array($val)) {
                     foreach ($val as $k => $v) {
                         if ($k != $delete_no) {
                             $arrData[$key][] = $v;
                         }
                     }
                 } else {
                     $arrData[$key] = $val;
                 }
             }
             // 情報上書き
             $this->objFormParam->setParam($arrData);
             // 入力値の変換
             $this->objFormParam->convParam();
             $this->arrErr = $this->lfCheckError();
             if (count($this->arrErr) == 0) {
                 $this->arrErr = $this->lfCheek($arrInfo, $_POST['mode']);
             }
             break;
             /* 商品追加ポップアップより商品選択後、商品情報取得*/
         /* 商品追加ポップアップより商品選択後、商品情報取得*/
         case 'select_product_detail':
             // POST情報で上書き
             $this->objFormParam->setParam($_POST);
             if (!empty($_POST['add_product_id'])) {
                 $this->lfInsertProduct($_POST['add_product_id'], $_POST['add_classcategory_id1'], $_POST['add_classcategory_id2']);
             } elseif (!empty($_POST['edit_product_id'])) {
                 $this->lfUpdateProduct($_POST['edit_product_id'], $_POST['edit_classcategory_id1'], $_POST['edit_classcategory_id2'], $_POST['no']);
             }
             $arrData = $_POST;
             foreach ($this->arrForm as $key => $val) {
                 if (is_array($val)) {
                     $arrData[$key] = $this->arrForm[$key]['value'];
                 } else {
                     $arrData[$key] = $val;
                 }
             }
             // 情報上書き
             $this->objFormParam->setParam($arrData);
             // 入力値の変換
             $this->objFormParam->convParam();
             $this->arrErr = $this->lfCheckError();
             if (count($this->arrErr) == 0) {
                 $this->arrErr = $this->lfCheek($arrInfo, $_POST['mode']);
             }
             break;
             /* 顧客検索ポップアップより顧客指定後、顧客情報取得*/
         /* 顧客検索ポップアップより顧客指定後、顧客情報取得*/
         case 'search_customer':
             // POST情報で上書き
             $this->objFormParam->setParam($_POST);
             // 検索結果から顧客IDを指定された場合、顧客情報をフォームに代入する
             $this->lfSetCustomerInfo($_POST['edit_customer_id']);
             break;
             /* F-REGI決済モジュール連携用 */
         /* F-REGI決済モジュール連携用 */
         case 'fregi_status':
             $objFregiConfig = new LC_Page_Mdl_Fregi_Config();
             $this->fregi_err = $objFregiConfig->getSaleInfo($order_id, $this->arrDisp);
             $this->lfGetOrderData($order_id);
             break;
         case 'fregi_card':
             $objFregiConfig = new LC_Page_Mdl_Fregi_Config();
             $this->fregi_card_err = $objFregiConfig->setCardInfo($_POST['card_status'], $order_id, $this->arrDisp);
             $this->lfGetOrderData($order_id);
             break;
             /* SPS決済モジュール連携用 */
         /* SPS決済モジュール連携用 */
         case 'sps_request':
             $objErr = new SC_CheckError($_POST);
             $objErr->doFunc(array("年", "sps_year"), array('EXIST_CHECK'));
             $objErr->doFunc(array("月", "sps_month"), array('EXIST_CHECK'));
             $objErr->doFunc(array("日", "sps_date"), array('EXIST_CHECK'));
             $objErr->doFunc(array("売上・返金日", "sps_year", "sps_month", "sps_date"), array("CHECK_DATE"));
             if ($objErr->arrErr) {
                 $this->arrErr = $objErr->arrErr;
                 break;
             }
             $sps_return = sfSpsRequest($order_id, $_POST['request_type']);
             // DBから受注情報を再読込
             $this->lfGetOrderData($order_id);
             $this->tpl_onload = "window.alert('" . $sps_return . "');";
             break;
             /* GMOPG連携用 */
         /* GMOPG連携用 */
         case 'gmopg_order_edit':
             require_once MODULE_PATH . 'mdl_gmopg/class/LC_Mdl_GMOPG_OrderEdit.php';
             $objGMOOrderEdit = new LC_MDL_GMOPG_OrderEdit();
             $this->gmopg_order_edit_result = $objGMOOrderEdit->proccess();
             $this->lfGetOrderData($order_id);
             break;
         default:
             break;
     }
     // 支払い方法の取得
     $this->arrPayment = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method");
     // 配送時間の取得
     $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id'));
     $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time');
     $this->arrForm = $this->objFormParam->getFormParamList();
     $this->product_count = count($this->arrForm['quantity']['value']);
     // アンカーを設定
     if (isset($_POST['anchor_key']) && !empty($_POST['anchor_key'])) {
         $anchor_hash = "location.hash='#" . $_POST['anchor_key'] . "'";
     } else {
         $anchor_hash = "";
     }
     $this->tpl_onload .= $anchor_hash;
     $this->arrInfo = $arrInfo;
     /**
      * SPS決済 クレジット判定用処理
      */
     if (file_exists(MODULE_PATH . 'mdl_sps/request.php') === TRUE) {
         $objQuery = new SC_Query();
         $this->paymentType = $objQuery->getall("SELECT module_code, memo03 FROM dtb_payment WHERE payment_id = ? ", array($this->arrForm["payment_id"]['value']));
         $objDate = new SC_Date();
         $objDate->setStartYear(RELEASE_YEAR);
         $this->arrYear = $objDate->getYear();
         $this->arrMonth = $objDate->getMonth();
         $this->arrDay = $objDate->getDay();
     }
     $objView->assignobj($this);
     // 表示モード判定
     if (!$this->disp_mode) {
         $objView->display(MAIN_FRAME);
     } else {
         $objView->display('order/disp.tpl');
     }
 }
 /**
  * 折れ線グラフの作成
  *
  * @param string $keyname
  * @param string $type
  * @param string $xtitle
  * @param string $ytitle
  * @param boolean $xincline
  */
 public function lfGetGraphLine($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate, $xincline)
 {
     $ret_path = '';
     // 結果が0行以上ある場合のみグラフを生成する。
     if (count($arrResults) > 0 && $this->install_GD) {
         // グラフの生成
         $arrList1 = SC_Utils_Ex::sfArrKeyValue($arrResults, $keyname, 'add_point');
         $arrList2 = SC_Utils_Ex::sfArrKeyValue($arrResults, $keyname, 'minus_point');
         $arrList3 = SC_Utils_Ex::sfArrKeyValue($arrResults, $keyname, 'total_sum');
         array_walk($arrList1, function ($v, $k) use(&$arrList1) {
             $arrList1[$k] = max($v, 0);
         });
         array_walk($arrList2, function ($v, $k) use(&$arrList2) {
             $arrList2[$k] = max($v, 0);
         });
         array_walk($arrList3, function ($v, $k) use(&$arrList3) {
             $arrList3[$k] = max($v, 0);
         });
         GC_Utils_Ex::gfDebugLog(array($arrList1, $arrList2, $arrList3));
         // 一時ファイル名の取得
         $pngname = $this->lfGetGraphPng($type);
         // ラベル表示インターバルを求める
         $base = 30;
         $interval = intval(count($arrList1) / $base);
         if ($interval < 1) {
             $interval = 1;
         }
         // X ラベルが 20以下になるまでインターバルを変更する
         while (count($arrList1) / $interval > 30) {
             $base++;
             $interval = intval(count($arrList1) / $base);
         }
         $objGraphLine = new SC_Graph_Line_Ex();
         $objGraphLine->init();
         // 値のセット
         $objGraphLine->setXLabel(array_keys($arrList1));
         // 複数レジェンドの場合は共通メソッドが使えない
         $objGraphLine->arrDataList[$objGraphLine->line_max++] = array_values($arrList1);
         $objGraphLine->arrDataList[$objGraphLine->line_max++] = array_values($arrList2);
         $objGraphLine->arrDataList[$objGraphLine->line_max++] = array_values($arrList3);
         $allData = array();
         foreach ($objGraphLine->arrDataList as $arrDataList) {
             $allData = array_merge($allData, $arrDataList);
         }
         GC_Utils_Ex::gfDebugLog($allData);
         // $objGraphLine->setMax ( $allData );
         $this->setMax($objGraphLine, $allData);
         // 値の描画変換率
         $rate = $objGraphLine->area_height / $objGraphLine->graph_max;
         // 描画率を計算
         $objGraphLine->arrPointList = array();
         foreach ($objGraphLine->arrDataList as $index => &$arrDataList) {
             GC_Utils_Ex::gfDebugLog($arrDataList);
             $count = count($arrDataList);
             $scale_width = $objGraphLine->area_width / ($count + 1);
             $objGraphLine->arrPointList[$index] = array();
             for ($i = 0; $i < $count; $i++) {
                 // X座標を求める
                 $x = intval($objGraphLine->left + $scale_width * ($i + 1));
                 // Y座標を求める
                 if ($arrDataList[$i] > 0) {
                     $y = intval($objGraphLine->top + $objGraphLine->area_height - $arrDataList[$i] * $rate);
                 } else {
                     // マイナス値の場合は底べた
                     $y = intval($objGraphLine->top + $objGraphLine->area_height);
                 }
                 // XY座標を保存する
                 $objGraphLine->arrPointList[$index][] = array($x, $y);
             }
         }
         GC_Utils_Ex::gfDebugLog($objGraphLine->arrPointList);
         $objGraphLine->setLegend(array("追加", "消費", "残高"));
         // ラベル回転(日本語不可)
         if ($xincline == true || count($arrList1) > 20) {
             $objGraphLine->setXLabelAngle(45);
         }
         // タイトルセット
         $objGraphLine->setXTitle($xtitle);
         $objGraphLine->setYTitle($ytitle);
         // メインタイトル作成
         list($sy, $sm, $sd) = preg_split('|[/ ]|', $sdate);
         list($ey, $em, $ed) = preg_split('|[/ ]|', $edate);
         $start_date = $sy . '年' . $sm . '月' . $sd . '日';
         $end_date = $ey . '年' . $em . '月' . $ed . '日';
         $objGraphLine->drawTitle('集計期間:' . $start_date . ' - ' . $end_date);
         // グラフ描画
         // $objGraphLine->drawGraph ();
         $this->drawGraph($objGraphLine);
         // グラフの出力
         if (DRAW_IMAGE) {
             $objGraphLine->outputGraph();
             SC_Response_Ex::actionExit();
         }
         // ファイルパスを返す
         $ret_path = GRAPH_URLPATH . $pngname;
     }
     return $ret_path;
 }