/** * (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); }
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; }
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; }