function getRanking() { $objQuery = new SC_Query(); $col = "T1.product_id, T1.product_name as name,COUNT(*) AS order_count "; $from = "dtb_order_detail AS T1\r\n INNER JOIN dtb_order AS T2 ON T1.order_id = T2.order_id\r\n INNER JOIN dtb_products AS T3 ON T1.product_id = T3.product_id"; $objQuery->setgroupby("T1.product_id,T1.product_name"); $objQuery->setorder("order_count DESC"); $objQuery->setlimit(10); //var_dump($objQuery->setorder("order_count DESC")); return $objQuery->select($col, $from, 'T2.status = ?', array('5')); }
/** * SC_DB_MasterData::getMasterData() のテストケース */ function testGetMasterData() { $columns = array('id', 'name', 'rank'); $masterData = new SC_DB_MasterData_Ex(); $actual = $masterData->getMasterData('mtb_pref', $columns); $objQuery = new SC_Query(); $objQuery->setorder($columns[2]); $results = $objQuery->select($columns[0] . ", " . $columns[1], 'mtb_pref'); $expected = array(); foreach ($results as $result) { $expected[$result[$columns[0]]] = $result[$columns[1]]; } $this->assertEquals($expected, $actual); }
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_SiteView(); $objQuery = new SC_Query(); $objCustomer = new SC_Customer(); // レイアウトデザインを取得 $objLayout = new SC_Helper_PageLayout_Ex(); $objLayout->sfGetPageLayout($this, false, "mypage/index.php"); // ログインチェック if (!$objCustomer->isLoginSuccess()) { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } else { //マイページトップ顧客情報表示用 $this->CustomerName1 = $objCustomer->getvalue('name01'); $this->CustomerName2 = $objCustomer->getvalue('name02'); $this->CustomerPoint = $objCustomer->getvalue('point'); } // お気に入り削除 if ($_POST['mode'] == 'delete_favorite') { $customer_id = $objCustomer->getValue('customer_id'); $this->lfDeleteFavoriteProduct($customer_id, $_POST['product_id']); } //ページ送り用 if (isset($_POST['pageno'])) { $this->tpl_pageno = htmlspecialchars($_POST['pageno'], ENT_QUOTES, CHAR_CODE); } $col = "*"; $from = " (SELECT\r\n T2.product_id AS product_id_main,\r\n T2.del_flg ,\r\n T2.status ,\r\n T2.name ,\r\n T2.main_list_image ,\r\n T1.create_date ,\r\n T1.customer_id\r\n FROM\r\n (SELECT\r\n product_id AS product_id_c ,\r\n create_date ,\r\n customer_id\r\n FROM\r\n dtb_customer_favorite_products\r\n ) AS T1 INNER JOIN dtb_products AS T2 ON T1.product_id_c = T2.product_id\r\n ) AS T3 INNER JOIN\r\n (SELECT\r\n product_id ,\r\n MIN(price02) AS price02_min ,\r\n MAX(price02) AS price02_max ,\r\n MAX(stock) AS stock_max ,\r\n MAX(stock_unlimited) AS stock_unlimited_max\r\n FROM\r\n dtb_products_class\r\n GROUP BY\r\n product_id\r\n ) AS T4 ON T3.product_id_main = T4.product_id"; $where = "customer_id = ? AND del_flg = 0 AND status = 1"; // 在庫無し商品の非表示 if (NOSTOCK_HIDDEN === true) { $where .= " AND (stock_max >= 1 OR stock_unlimited_max = 1)"; } $order = "create_date DESC"; $arrval = array($objCustomer->getvalue('customer_id')); //お気に入りの数を取得 $linemax = $objQuery->count($from, $where, $arrval); $this->tpl_linemax = $linemax; // ページ送りの取得 $objNavi = new SC_PageNavi($this->tpl_pageno, $linemax, SEARCH_PMAX, "fnNaviPage", NAVI_PMAX); $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列 $startno = $objNavi->start_row; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset(SEARCH_PMAX, $startno); // 表示順序 $objQuery->setorder($order); //お気に入りの取得 $this->arrFavorite = $objQuery->select($col, $from, $where, $arrval); // パラメータ管理クラス $this->objFormParam = new SC_FormParam(); // POST値の取得 $this->objFormParam->setParam($_POST); // 入力情報を渡す $this->arrForm = $this->objFormParam->getFormParamList(); $objView->assignobj($this); //$objpage内の全てのテンプレート変数をsmartyに格納 $objView->display(SITE_FRAME); //パスとテンプレート変数の呼び出し、実行 }
/** * Page のプロセス. * * @return void */ function process() { $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objSess = new SC_Session(); $objDb = new SC_Helper_DB_Ex(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } if ($_POST['mode'] == "search") { // POST値の引き継ぎ $this->arrForm = $_POST; // 入力文字の強制変換 $this->lfConvertParam(); $where = "del_flg = 0 AND status = 1"; /* 入力エラーなし */ foreach ($this->arrForm as $key => $val) { if ($val == "") { continue; } switch ($key) { case 'search_name': $where .= " AND name ILIKE ?"; $arrval[] = "%{$val}%"; break; case 'search_category_id': list($tmp_where, $tmp_arrval) = $objDb->sfGetCatWhere($val); if ($tmp_where != "") { $where .= " AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE " . $tmp_where . ")"; $arrval = array_merge((array) $arrval, (array) $tmp_arrval); } break; case 'search_product_code': $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code LIKE ? GROUP BY product_id)"; $arrval[] = "{$val}%"; break; default: break; } } $order = "update_date DESC, product_id DESC"; // 読み込む列とテーブルの指定 $col = "product_id, name, category_id, main_list_image, status, product_code, price01, stock, stock_unlimited"; $from = "vw_products_nonclass AS noncls "; $objQuery = new SC_Query(); // 行数の取得 if (empty($arrval)) { $arrval = array(); } $linemax = $objQuery->count("dtb_products", $where, $arrval); $this->tpl_linemax = $linemax; // 何件が該当しました。表示用 // ページ送りの処理 if (isset($_POST['search_page_max']) && is_numeric($_POST['search_page_max'])) { $page_max = $_POST['search_page_max']; } else { $page_max = SEARCH_PMAX; } // ページ送りの取得 $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, $page_max, "fnNaviSearchOnlyPage", NAVI_PMAX); $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列 $startno = $objNavi->start_row; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset($page_max, $startno); // 表示順序 $objQuery->setorder($order); // 検索結果の取得 $this->arrProducts = $objQuery->select($col, $from, $where, $arrval); } // カテゴリ取得 $this->arrCatList = $objDb->sfGetCategoryList(); //---- ページ表示 $objView->assignobj($this); $objView->display($this->tpl_mainpage); }
function lfGetOrderDetail($order_id) { $objQuery = new SC_Query(); $col = "product_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate"; $where = "order_id = ?"; $objQuery->setorder("classcategory_id1, classcategory_id2"); $arrRet = $objQuery->select($col, "dtb_order_detail", $where, array($order_id)); return $arrRet; }
/** * 新着情報を取得する * * @param SC_Query $objQuery DB操作クラス * @return array $arrNews 取得結果を配列で返す */ function lfGetNews(&$objQuery) { $col = ""; $col .= " news_id "; //新着情報ID $col .= " ,news_title "; //新着情報タイトル $col .= " ,news_comment "; //新着情報本文 if (DB_TYPE == "pgsql") { $col .= " ,to_char(news_date, 'YYYY') AS YEAR "; //日付(年) $col .= " ,to_char(news_date, 'MM') AS MONTH "; //日付(月) $col .= " ,to_char(news_date, 'DD') AS DAY "; //日付(日) $col .= " ,to_char(news_date, 'HH24') AS HOUR "; //日付(時間) $col .= " ,to_char(news_date, 'MI') AS MINUTE "; //日付(分) $col .= " ,to_char(news_date, 'SS') AS SECOND "; //日付(秒) } else { if (DB_TYPE == "mysql") { $col .= " ,DATE_FORMAT(news_date, '%Y') AS YEAR "; //日付(年) $col .= " ,DATE_FORMAT(news_date, '%m') AS MONTH "; //日付(月) $col .= " ,DATE_FORMAT(news_date, '%d') AS DAY "; //日付(日) $col .= " ,DATE_FORMAT(news_date, '%H') AS HOUR "; //日付(時間) $col .= " ,DATE_FORMAT(news_date, '%i') AS MINUTE "; //日付(分) $col .= " ,DATE_FORMAT(news_date, '%s') AS SECOND "; //日付(秒) } } $col .= " ,news_url "; //新着情報URL $col .= " ,news_select "; //新着情報の区分(1:URL、2:本文) $col .= " ,(SELECT shop_name FROM dtb_baseinfo limit 1) AS shop_name "; //店名 $col .= " ,(SELECT email04 FROM dtb_baseinfo limit 1) AS email "; //代表Emailアドレス $from = "dtb_news"; $where = "del_flg = '0'"; $order = "rank DESC"; $objQuery->setorder($order); $arrNews = $objQuery->select($col, $from, $where); return $arrNews; }
/** * Page のプロセス. * * @return void */ function process() { $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objQuery = new SC_Query(); $objDb = new SC_Helper_DB_Ex(); // 認証可否の判定 $objSess = new SC_Session(); SC_Utils_Ex::sfIsSuccess($objSess); $get_check = false; // 規格IDのチェック if (SC_Utils_Ex::sfIsInt($_GET['class_id'])) { // 規格名の取得 $this->tpl_class_name = $objQuery->get("dtb_class", "name", "class_id = ?", array($_GET['class_id'])); if ($this->tpl_class_name != "") { // 規格IDの引き継ぎ $this->arrHidden['class_id'] = $_GET['class_id']; $get_check = true; } } if (!$get_check) { // 規格登録ページに飛ばす。 $this->sendRedirect($this->getLocation(URL_CLASS_REGIST)); exit; } if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } if (isset($_POST['class_id'])) { if (!SC_Utils_Ex::sfIsInt($_POST['class_id'])) { SC_Utils_Ex::sfDispError(""); } } // 新規作成 or 編集 switch ($_POST['mode']) { // 登録ボタン押下 case 'edit': // POST値の引き継ぎ $this->arrForm = $_POST; // 入力文字の変換 $_POST = $this->lfConvertParam($_POST); // エラーチェック $this->arrErr = $this->lfErrorCheck(); if (count($this->arrErr) <= 0) { if ($_POST['classcategory_id'] == "") { $this->lfInsertClass(); // DBへの書き込み } else { $this->lfUpdateClass(); // DBへの書き込み } // 再表示 $this->reload($_GET['class_id']); //sfReload("class_id=" . $_GET['class_id']); } else { // POSTデータを引き継ぐ $this->tpl_classcategory_id = $_POST['classcategory_id']; } break; // 削除 // 削除 case 'delete': // ランク付きレコードの削除 $where = "class_id = " . SC_Utils_Ex::sfQuoteSmart($_POST['class_id']); $objDb->sfDeleteRankRecord("dtb_classcategory", "classcategory_id", $_POST['classcategory_id'], $where, true); break; // 編集前処理 // 編集前処理 case 'pre_edit': // 編集項目をDBより取得する。 $where = "classcategory_id = ?"; $name = $objQuery->get("dtb_classcategory", "name", $where, array($_POST['classcategory_id'])); // 入力項目にカテゴリ名を入力する。 $this->arrForm['name'] = $name; // POSTデータを引き継ぐ $this->tpl_classcategory_id = $_POST['classcategory_id']; break; case 'down': $where = "class_id = " . SC_Utils_Ex::sfQuoteSmart($_POST['class_id']); $objDb->sfRankDown("dtb_classcategory", "classcategory_id", $_POST['classcategory_id'], $where); break; case 'up': $where = "class_id = " . SC_Utils_Ex::sfQuoteSmart($_POST['class_id']); $objDb->sfRankUp("dtb_classcategory", "classcategory_id", $_POST['classcategory_id'], $where); break; default: break; } // 規格分類の読込 $where = "del_flg <> 1 AND class_id = ?"; $objQuery->setorder("rank DESC"); $this->arrClassCat = $objQuery->select("name, classcategory_id", "dtb_classcategory", $where, array($_GET['class_id'])); $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * Page のプロセス. * * @return void */ function process() { $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objSess = new SC_Session(); $objQuery = new SC_Query(); $objDb = new SC_Helper_DB_Ex(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } // 要求判定 switch ($_POST['mode']) { // 編集処理 case 'edit': // POST値の引き継ぎ $this->arrForm = $_POST; // 入力文字の変換 $this->arrForm = $this->lfConvertParam($this->arrForm); // エラーチェック $this->arrErr = $this->lfErrorCheck(); if (count($this->arrErr) <= 0) { if ($_POST['class_id'] == "") { $this->lfInsertClass($this->arrForm); // 新規作成 } else { $this->lfUpdateClass($this->arrForm); // 既存編集 } // 再表示 $this->reload(); } else { // POSTデータを引き継ぐ $this->tpl_class_id = $_POST['class_id']; } break; // 削除 // 削除 case 'delete': $objDb->sfDeleteRankRecord("dtb_class", "class_id", $_POST['class_id'], "", true); $objQuery = new SC_Query(); $objQuery->delete("dtb_classcategory", "class_id = ?", $_POST['class_id']); // 再表示 $this->reload(); break; // 編集前処理 // 編集前処理 case 'pre_edit': // 編集項目をDBより取得する。 $where = "class_id = ?"; $class_name = $objQuery->get("dtb_class", "name", $where, array($_POST['class_id'])); // 入力項目にカテゴリ名を入力する。 $this->arrForm['name'] = $class_name; // POSTデータを引き継ぐ $this->tpl_class_id = $_POST['class_id']; break; case 'down': $objDb->sfRankDown("dtb_class", "class_id", $_POST['class_id']); // 再表示 $this->reload(); break; case 'up': $objDb->sfRankUp("dtb_class", "class_id", $_POST['class_id']); // 再表示 $this->reload(); break; default: break; } // 規格の読込 $where = "del_flg <> 1"; $objQuery->setorder("rank DESC"); $this->arrClass = $objQuery->select("name, class_id", "dtb_class", $where); $this->arrClassCatCount = SC_Utils_Ex::sfGetClassCatCount(); $objView->assignobj($this); $objView->display(MAIN_FRAME); }
function lfGetPayment($total_pretax) { $objQuery = new SC_Query(); $objQuery->setorder("rank DESC"); //削除されていない支払方法を取得 $arrRet = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image", "dtb_payment", "del_flg = 0 AND deliv_id IN (SELECT deliv_id FROM dtb_deliv WHERE del_flg = 0) "); //利用条件から支払可能方法を判定 foreach ($arrRet as $data) { //下限と上限が設定されている if ($data['rule'] > 0 && $data['upper_rule'] > 0) { if ($data['rule'] <= $total_pretax && $data['upper_rule'] >= $total_pretax) { $arrPayment[] = $data; } //下限のみ設定されている } elseif ($data['rule'] > 0) { if ($data['rule'] <= $total_pretax) { $arrPayment[] = $data; } //上限のみ設定されている } elseif ($data['upper_rule'] > 0) { if ($data['upper_rule'] >= $total_pretax) { $arrPayment[] = $data; } //設定なし } else { $arrPayment[] = $data; } } return $arrPayment; }
function lfGetProduct($category_id) { $objQuery = new SC_Query(); $col = "T2.product_id, name, main_list_image, T2.rank, product_code"; $table = "vw_products_nonclass AS noncls " . " LEFT JOIN dtb_product_categories AS T2 USING (product_id)"; $where = "del_flg = 0 AND T2.category_id = ?"; // 行数の取得 $linemax = $objQuery->count($table, $where, array($category_id)); // 該当件数表示用 $this->tpl_linemax = $linemax; $objNavi = new SC_PageNavi($this->tpl_pageno, $linemax, SEARCH_PMAX, "fnNaviPage", NAVI_PMAX); $startno = $objNavi->start_row; $this->tpl_start_row = $objNavi->start_row; $this->tpl_strnavi = $objNavi->strnavi; // Navi表示文字列 $this->tpl_pagemax = $objNavi->max_page; // ページ最大数(「上へ下へ」表示判定用) $this->tpl_disppage = $objNavi->now_page; // 表示ページ番号(「上へ下へ」表示判定用) // 取得範囲の指定(開始行番号、行数のセット) if (DB_TYPE != "mysql") { $objQuery->setlimitoffset(SEARCH_PMAX, $startno); } $objQuery->setorder("rank DESC"); $arrRet = $objQuery->select($col, $table, $where, array($category_id)); return $arrRet; }
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_AdminView(); $objDb = new SC_Helper_DB_Ex(); $objDate = new SC_Date(); // 登録・更新検索開始年 $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(DATE("Y")); $this->arrStartYear = $objDate->getYear(); $this->arrStartMonth = $objDate->getMonth(); $this->arrStartDay = $objDate->getDay(); // 登録・更新検索終了年 $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(DATE("Y")); $this->arrEndYear = $objDate->getYear(); $this->arrEndMonth = $objDate->getMonth(); $this->arrEndDay = $objDate->getDay(); // 認証可否の判定 $objSess = new SC_Session(); SC_Utils_Ex::sfIsSuccess($objSess); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } //キャンペーンの編集時 if (isset($_POST['campaign_id']) && SC_Utils_Ex::sfIsInt($_POST['campaign_id']) && $_POST['mode'] == "camp_search") { $objQuery = new SC_Query(); $search_data = $objQuery->get("dtb_campaign", "search_condition", "campaign_id = ? ", array($_POST['campaign_id'])); $arrSearch = unserialize($search_data); foreach ($arrSearch as $key => $val) { $_POST[$key] = $val; } } // POST値の引き継ぎ $this->arrForm = $_POST; // 検索ワードの引き継ぎ foreach ($_POST as $key => $val) { if (ereg("^search_", $key) || ereg("^campaign_", $key)) { switch ($key) { case 'search_product_flag': case 'search_status': $this->arrHidden[$key] = SC_Utils_Ex::sfMergeParamCheckBoxes($val); if (!is_array($val)) { $this->arrForm[$key] = split("-", $val); } break; default: $this->arrHidden[$key] = $val; break; } } } // ページ送り用 $this->arrHidden['search_pageno'] = isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; // 商品削除 if ($_POST['mode'] == "delete") { if ($_POST['category_id'] != "") { // ランク付きレコードの削除 $where = "category_id = " . SC_Utils_Ex::sfQuoteSmart($_POST['category_id']); $objDb->sfDeleteRankRecord("dtb_products", "product_id", $_POST['product_id'], $where); } else { $objDb->sfDeleteRankRecord("dtb_products", "product_id", $_POST['product_id']); } // 子テーブル(商品規格)の削除 $objQuery = new SC_Query(); $objQuery->delete("dtb_products_class", "product_id = ?", array($_POST['product_id'])); // 件数カウントバッチ実行 $objDb->sfCategory_Count($objQuery); } if ($_POST['mode'] == "search" || $_POST['mode'] == "csv" || $_POST['mode'] == "delete" || $_POST['mode'] == "delete_all" || $_POST['mode'] == "camp_search") { // 入力文字の強制変換 $this->lfConvertParam(); // エラーチェック $this->arrErr = $this->lfCheckError(); $where = "del_flg = 0"; $view_where = "del_flg = 0"; // 入力エラーなし if (count($this->arrErr) == 0) { $arrval = array(); foreach ($this->arrForm as $key => $val) { $val = SC_Utils_Ex::sfManualEscape($val); if ($val == "") { continue; } switch ($key) { case 'search_product_id': // 商品ID $where .= " AND product_id = ?"; $view_where .= " AND product_id = ?"; $arrval[] = $val; break; case 'search_product_class_name': //規格名称 $where_in = " (SELECT classcategory_id FROM dtb_classcategory WHERE class_id IN (SELECT class_id FROM dtb_class WHERE name LIKE ?)) "; $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE classcategory_id1 IN " . $where_in; $where .= " OR classcategory_id2 IN" . $where_in . ")"; $view_where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE classcategory_id1 IN " . $where_in; $view_where .= " OR classcategory_id2 IN" . $where_in . ")"; $arrval[] = "%{$val}%"; $arrval[] = "%{$val}%"; $view_where = $where; break; case 'search_name': // 商品名 $where .= " AND name ILIKE ?"; $view_where .= " AND name ILIKE ?"; $arrval[] = "%{$val}%"; break; case 'search_category_id': // カテゴリー list($tmp_where, $tmp_arrval) = $objDb->sfGetCatWhere($val); if ($tmp_where != "") { $where .= " AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE " . $tmp_where . ")"; $view_where .= " AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE " . $tmp_where . ")"; $arrval = array_merge((array) $arrval, (array) $tmp_arrval); } break; case 'search_product_code': // 商品コード $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? GROUP BY product_id)"; $view_where .= " AND EXISTS (SELECT product_id FROM dtb_products_class as cls WHERE cls.product_code ILIKE ? AND dtb_products.product_id = cls.product_id GROUP BY cls.product_id )"; $arrval[] = "%{$val}%"; break; case 'search_startyear': // 登録更新日(FROM) $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); $where .= " AND update_date >= '" . $_POST['search_startyear'] . "/" . $_POST['search_startmonth'] . "/" . $_POST['search_startday'] . "'"; $view_where .= " AND update_date >= '" . $_POST['search_startyear'] . "/" . $_POST['search_startmonth'] . "/" . $_POST['search_startday'] . "'"; break; case 'search_endyear': // 登録更新日(TO) $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); $date = date('Y/m/d', strtotime($date) + 86400); $where .= " AND update_date < date('" . $date . "')"; $view_where .= " AND update_date < date('" . $date . "')"; break; case 'search_product_flag': //種別 global $arrSTATUS; $search_product_flag = SC_Utils_Ex::sfSearchCheckBoxes($val); if ($search_product_flag != "") { $where .= " AND product_flag LIKE ?"; $view_where .= " AND product_flag LIKE ?"; $arrval[] = $search_product_flag; } break; case 'search_status': // ステータス $tmp_where = ""; foreach ($val as $element) { if ($element != "") { if ($tmp_where == "") { $tmp_where .= "AND (status = ? "; } else { $tmp_where .= "OR status = ? "; } $arrval[] = $element; } } if ($tmp_where != "") { $tmp_where .= ")"; $where .= " {$tmp_where}"; $view_where .= " {$tmp_where}"; } break; default: break; } } $order = "update_date DESC, product_id DESC"; $objQuery = new SC_Query(); 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出力タイトル行の作成 $arrOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput(1, " WHERE csv_id = 1 AND status = 1")); if (count($arrOutput) <= 0) { break; } $arrOutputCols = $arrOutput['col']; $arrOutputTitle = $arrOutput['disp_name']; $head = SC_Utils_Ex::sfGetCSVList($arrOutputTitle); $data = $objCSV->lfGetProductsCSV($where, $option, $arrval, $arrOutputCols); // CSVを送信する。 SC_Utils_Ex::sfCSVDownload($head . $data); exit; break; case 'delete_all': // 検索結果の取得 $col = "product_id"; $from = "vw_products_nonclass AS noncls "; $arrProducts = $objQuery->select($col, $from, $where, $arrval); // 検索結果をすべて削除 $sqlval['del_flg'] = 1; $where = "product_id = ?"; if (count($arrProducts) > 0) { foreach ($arrProducts as $key => $val) { $objQuery->update("dtb_products", $sqlval, $where, array($arrProducts[$key]["product_id"])); } } break; default: // 読み込む列とテーブルの指定 $col = "product_id, name, category_id, main_list_image, status, product_code, price01, price02, stock, stock_unlimited"; $from = "vw_products_nonclass AS noncls "; // 行数の取得 $linemax = $objQuery->count("dtb_products", $view_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; //キャンペーン商品検索時は、全結果の商品IDを変数に格納する if (isset($_POST['search_mode']) && $_POST['search_mode'] == 'campaign') { $arrRet = $objQuery->select($col, $from, $where, $arrval); if (count($arrRet) > 0) { $arrRet = sfSwapArray($arrRet); $pid = implode("-", $arrRet['product_id']); $this->arrHidden['campaign_product_id'] = $pid; } } // 取得範囲の指定(開始行番号、行数のセット) // if(DB_TYPE != "mysql") $objQuery->setlimitoffset($page_max, $startno); $objQuery->setlimitoffset($page_max, $startno); // 表示順序 $objQuery->setorder($order); // 検索結果の取得 $this->arrProducts = $objQuery->select($col, $from, $where, $arrval); // 各商品ごとのカテゴリIDを取得 if (count($this->arrProducts) > 0) { foreach ($this->arrProducts as $key => $val) { $this->arrProducts[$key]["categories"] = $objDb->sfGetCategoryId($val["product_id"]); $objDb->g_category_on = false; } } } } } // カテゴリの読込 list($this->arrCatKey, $this->arrCatVal) = $objDb->sfGetLevelCatList(false); $this->arrCatList = $this->lfGetIDName($this->arrCatKey, $this->arrCatVal); // 画面の表示 $objView->assignobj($this); $objView->display(MAIN_FRAME); }
function lfStatusDisp($status, $pageno) { $objQuery = new SC_Query(); $select = "*"; $from = "dtb_order"; $where = "del_flg = 0 AND status = ?"; $arrval[] = $status; $order = "order_id DESC"; $linemax = $objQuery->count($from, $where, $arrval); $this->tpl_linemax = $linemax; // ページ送りの処理 $page_max = ORDER_STATUS_MAX; // ページ送りの取得 $objNavi = new SC_PageNavi($pageno, $linemax, $page_max, "fnNaviSearchOnlyPage", NAVI_PMAX); $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列 $startno = $objNavi->start_row; $this->tpl_pageno = $pageno; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset($page_max, $startno); //表示順序 $objQuery->setorder($order); //検索結果の取得 $this->arrStatus = $objQuery->select($select, $from, $where, $arrval); }
/** * デストラクタ. * * @return void */ function lfGetRecommendProducts($product_id) { $objQuery = new SC_Query(); $cols = '*, (SELECT COUNT(*) FROM dtb_order_detail WHERE product_id = alldtl.product_id) AS cnt'; $from = 'vw_products_allclass_detail AS alldtl'; $where = <<<__EOS__ del_flg = 0 AND status = 1 AND product_id IN ( SELECT product_id FROM dtb_order_detail INNER JOIN dtb_order ON dtb_order_detail.order_id = dtb_order.order_id WHERE 0=0 AND dtb_order.del_flg = 0 AND dtb_order.order_id IN ( SELECT order_id FROM dtb_order_detail WHERE 0=0 AND product_id = ? ) AND dtb_order_detail.product_id <> ? ) __EOS__; $objQuery->setorder('cnt DESC, RANDOM()'); $objQuery->setlimit($this->max); $recommendProducts = $objQuery->select($cols, $from, $where, array($product_id, $product_id)); return $recommendProducts; }
function lfGetHoliday() { $objQuery = new SC_Query(); $objQuery->setorder("rank DESC"); $where = "del_flg <> 1"; $arrRet = $objQuery->select("month, day", "dtb_holiday", $where); foreach ($arrRet as $key => $val) { $arrHoliday[$val['month']][] = $val['day']; } return $arrHoliday; }
function lfGetOrderDetail($order_id) { $objQuery = new SC_Query(); $objCustomer = new SC_Customer(); //customer_idを検証 $customer_id = $objCustomer->getValue("customer_id"); $order_count = $objQuery->count("dtb_order", "order_id = ? and customer_id = ?", array($order_id, $customer_id)); if ($order_count != 1) { return array(); } $col = "product_id, classcategory_id1, classcategory_id2, quantity"; $where = "order_id = ?"; $objQuery->setorder("classcategory_id1, classcategory_id2"); $arrRet = $objQuery->select($col, "dtb_order_detail", $where, array($order_id)); return $arrRet; }
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_AdminView(); $objSess = new SC_Session(); $objDate = new SC_Date(); $objQuery = new SC_Query(); // 登録・更新検索開始年 $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(DATE("Y")); $this->arrStartYear = $objDate->getYear(); $this->arrStartMonth = $objDate->getMonth(); $this->arrStartDay = $objDate->getDay(); // 登録・更新検索終了年 $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(DATE("Y")); $this->arrEndYear = $objDate->getYear(); $this->arrEndMonth = $objDate->getMonth(); $this->arrEndDay = $objDate->getDay(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); //レビュー情報のカラムの取得 $select = "review_id, A.product_id, reviewer_name, sex, recommend_level, "; $select .= "reviewer_url, title, comment, A.status, A.create_date, A.update_date, name"; $from = "dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id "; // 検索ワードの引き継ぎ foreach ($_POST as $key => $val) { if (ereg("^search_", $key)) { switch ($key) { case 'search_sex': $this->arrHidden[$key] = SC_Utils_Ex::sfMergeParamCheckBoxes($val); if (!is_array($val)) { $this->arrForm[$key] = split("-", $val); } break; default: $this->arrHidden[$key] = $val; break; } } } if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } if ($_POST['mode'] == "delete") { //レビューの削除 $objQuery->exec("UPDATE dtb_review SET del_flg=1 WHERE review_id=?", array($_POST['review_id'])); } if ($_POST['mode'] == 'search' || $_POST['mode'] == 'csv' || $_POST['mode'] == 'delete') { //削除されていない商品を検索 $where = "A.del_flg = 0 AND B.del_flg = 0"; $this->arrForm = $_POST; if (isset($_POST['search_sex']) && !is_array($_POST['search_sex'])) { $this->arrForm['search_sex'] = split("-", $_POST['search_sex']); } //エラーチェック $this->arrErr = $this->lfCheckError(); if (!$this->arrErr) { foreach ($_POST as $key => $val) { $val = SC_Utils_Ex::sfManualEscape($val); if ($val == "") { continue; } switch ($key) { case 'search_reviewer_name': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND reviewer_name ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_reviewer_url': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND reviewer_url ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_name': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND name ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_product_code': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND A.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? )"; $arrval[] = "%{$val}%"; break; case 'search_sex': $tmp_where = ""; //$val=配列の中身,$element=各キーの値(1,2) if (is_array($val)) { foreach ($val as $element) { if ($element != "") { if ($tmp_where == "") { $tmp_where .= " AND (sex = ?"; } else { $tmp_where .= " OR sex = ?"; } $arrval[] = $element; } } if ($tmp_where != "") { $tmp_where .= ")"; $where .= " {$tmp_where} "; } } break; case 'search_recommend_level': $where .= " AND recommend_level = ? "; $arrval[] = $val; break; case 'search_startyear': if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])) { $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); $where .= " AND A.create_date >= ? "; $arrval[] = $date; } break; case 'search_endyear': if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])) { $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); $end_date = date("Y/m/d", strtotime("1 day", strtotime($date))); $where .= " AND A.create_date <= cast('{$end_date}' as date) "; } break; } } } $order = "A.create_date DESC"; // ページ送りの処理 if (is_numeric($_POST['search_page_max'])) { $page_max = $_POST['search_page_max']; } else { $page_max = SEARCH_PMAX; } if (!isset($arrval)) { $arrval = array(); } $linemax = $objQuery->count($from, $where, $arrval); $this->tpl_linemax = $linemax; $this->tpl_pageno = isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; // ページ送りの取得 $objNavi = new SC_PageNavi($this->tpl_pageno, $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX); $this->arrPagenavi = $objNavi->arrPagenavi; $startno = $objNavi->start_row; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset($page_max, $startno); // 表示順序 $objQuery->setorder($order); //検索結果の取得 $this->arrReview = $objQuery->select($select, $from, $where, $arrval); //CSVダウンロード if ($_POST['mode'] == 'csv') { $objCSV = new SC_Helper_CSV_Ex(); // オプションの指定 $option = "ORDER BY review_id"; // CSV出力タイトル行の作成 $head = SC_Utils_Ex::sfGetCSVList($objCSV->arrREVIEW_CVSTITLE); $data = $objCSV->lfGetReviewCSV($where, '', $arrval); // CSVを送信する。 SC_Utils_Ex::sfCSVDownload($head . $data); exit; } } $objView->assignobj($this); $objView->display(MAIN_FRAME); }
function lfGetRanking() { $objQuery = new SC_Query(); $col = "DISTINCT A.*, name, price02_min, price01_min, main_list_image "; $from = "dtb_best_products AS A INNER JOIN vw_products_allclass AS allcls using(product_id)"; $where = "status = 1"; $order = "rank"; $objQuery->setorder($order); $arrBestProducts = $objQuery->select($col, $from, $where); return $arrBestProducts; }
lfLoadUpdateList(); // モジュール郡のインストール lfInstallModule(); break; // アンインストール // アンインストール case 'uninstall': // 更新情報を最新にする lfLoadUpdateList(); // モジュール郡のインストール lfUninstallModule(); break; default: break; } $objQuery->setorder("module_id"); $arrUpdate = $objQuery->select("*", "dtb_module"); $objPage->arrUpdate = $arrUpdate; $objView->assignobj($objPage); //変数をテンプレートにアサインする $objView->display(MAIN_FRAME); //テンプレートの出力 //------------------------------------------------------------------------------------------------------- // 更新ファイルの取得 function lfCopyUpdateFile($file) { global $objPage; $src_path = sfRmDupSlash(UPDATE_HTTP . $file . ".txt"); $dst_path = sfRmDupSlash(MODULE_PATH . $file); $flg_ok = true; // 処理の成功判定
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_AdminView(); $objSess = new SC_Session(); SC_Utils_Ex::sfIsSuccess($objSess); // 検索パラメータの引き継ぎ foreach ($_POST as $key => $val) { if (ereg("^search_", $key)) { $this->arrSearchHidden[$key] = $val; } } $this->tpl_order_id = $_POST['order_id']; // パラメータ管理クラス $objFormParam = new SC_FormParam(); // パラメータ情報の初期化 $this->lfInitParam($objFormParam); $objMail = new SC_Helper_Mail_Ex(); switch ($_POST['mode']) { case 'pre_edit': break; case 'return': // POST値の取得 $objFormParam->setParam($_POST); break; case 'send': // POST値の取得 $objFormParam->setParam($_POST); // 入力値の変換 $objFormParam->convParam(); $this->arrErr = $objFormParam->checkerror(); // メールの送信 if (count($this->arrErr) == 0) { // 注文受付メール $objMail->sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['header'], $_POST['footer']); } $this->sendRedirect($this->getLocation(URL_SEARCH_ORDER)); exit; break; case 'confirm': // POST値の取得 $objFormParam->setParam($_POST); // 入力値の変換 $objFormParam->convParam(); // 入力値の引き継ぎ $this->arrHidden = $objFormParam->getHashArray(); $this->arrErr = $objFormParam->checkerror(); // メールの送信 if (count($this->arrErr) == 0) { // 注文受付メール(送信なし) $objSendMail = $objMail->sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['header'], $_POST['footer'], false); // 確認ページの表示 $this->tpl_subject = $_POST['subject']; $this->tpl_body = mb_convert_encoding($objSendMail->body, CHAR_CODE, "auto"); $this->tpl_to = $objSendMail->tpl_to; $this->tpl_mainpage = 'order/mail_confirm.tpl'; $objView->assignobj($this); $objView->display(MAIN_FRAME); exit; } break; case 'change': // POST値の取得 $objFormParam->setValue('template_id', $_POST['template_id']); if (SC_Utils_Ex::sfIsInt($_POST['template_id'])) { $objQuery = new SC_Query(); $where = "template_id = ?"; $arrRet = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array($_POST['template_id'])); $objFormParam->setParam($arrRet[0]); } break; } $objQuery = new SC_Query(); $col = "send_date, subject, template_id, send_id"; $where = "order_id = ?"; $objQuery->setorder("send_date DESC"); if (SC_Utils_Ex::sfIsInt($_POST['order_id'])) { $this->arrMailHistory = $objQuery->select($col, "dtb_mail_history", $where, array($_POST['order_id'])); } $this->arrForm = $objFormParam->getFormParamList(); $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * 配送時間を取得する. * * @param integer $payment_id 支払い方法ID * @return array 配送時間の配列 */ function sfGetDelivTime($payment_id = "") { $objQuery = new SC_Query(); $deliv_id = ""; $arrRet = array(); if ($payment_id != "") { $where = "del_flg = 0 AND payment_id = ?"; $arrRet = $objQuery->select("deliv_id", "dtb_payment", $where, array($payment_id)); $deliv_id = $arrRet[0]['deliv_id']; } if ($deliv_id != "") { $objQuery->setorder("time_id"); $where = "deliv_id = ?"; $arrRet = $objQuery->select("time_id, deliv_time", "dtb_delivtime", $where, array($deliv_id)); } return $arrRet; }
function lfPreGetRecommendProducts($product_id) { $arrRecommend = array(); $objQuery = new SC_Query(); $objQuery->setorder("rank DESC"); $arrRet = $objQuery->select("recommend_product_id, comment", "dtb_recommend_products", "product_id = ?", array($product_id)); $max = count($arrRet); $no = 1; for ($i = 0; $i < $max; $i++) { $arrProductInfo = $objQuery->select("main_list_image, product_code_min, name", "vw_products_allclass AS allcls", "product_id = ?", array($arrRet[$i]['recommend_product_id'])); $arrRecommend[$no] = $arrProductInfo[0]; $arrRecommend[$no]['product_id'] = $arrRet[$i]['recommend_product_id']; $arrRecommend[$no]['comment'] = $arrRet[$i]['comment']; $no++; } return $arrRecommend; }
/** * 利用規約を取得し、ページオブジェクトに格納する。 * * @param integer $index 規約のインデックス * @param object &$objPage ページオブジェクト * @return void */ function lfGetKiyaku($index, &$objPage) { $objQuery = new SC_Query(); $objQuery->setorder('rank DESC'); $arrRet = $objQuery->select('kiyaku_title, kiyaku_text', 'dtb_kiyaku', 'del_flg <> 1'); $number = count($arrRet); if ($number > 0) { $last = $number - 1; } else { $last = 0; } if ($index < 0) { $index = 0; } elseif ($index > $last) { $index = $last; } $objPage->tpl_kiyaku_title = @$arrRet[$index]['kiyaku_title']; $objPage->tpl_kiyaku_text = @$arrRet[$index]['kiyaku_text']; $objPage->tpl_kiyaku_index = $index; $objPage->tpl_kiyaku_last_index = $last; $objPage->tpl_kiyaku_is_first = $index <= 0; $objPage->tpl_kiyaku_is_last = $index >= $last; }
/** * 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); }
/** * Page のプロセス. * * @return void */ function process() { $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objSess = new SC_Session(); $objQuery = new SC_Query(); $objDb = new SC_Helper_DB_Ex(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } switch ($_POST['mode']) { case 'delete': // ランク付きレコードの削除 $objDb->sfDeleteRankRecord("dtb_deliv", "deliv_id", $_POST['deliv_id']); // 再表示 SC_Utils_Ex::sfReload(); break; case 'up': $objDb->sfRankUp("dtb_deliv", "deliv_id", $_POST['deliv_id']); // 再表示 SC_Utils_Ex::sfReload(); break; case 'down': $objDb->sfRankDown("dtb_deliv", "deliv_id", $_POST['deliv_id']); // 再表示 SC_Utils_Ex::sfReload(); break; default: break; } // 配送業者一覧の取得 $col = "deliv_id, name, service_name"; $where = "del_flg = 0"; $table = "dtb_deliv"; $objQuery->setorder("rank DESC"); $this->arrDelivList = $objQuery->select($col, $table, $where); $objView->assignobj($this); $objView->display(MAIN_FRAME); }
function lfGetPayment() { $objQuery = new SC_Query(); $col = "payment_id, rule, payment_method"; $from = "dtb_payment"; $where = "del_flg = 0"; $order = "payment_id"; $objQuery->setorder($order); $arrRet = $objQuery->select($col, $from, $where); return $arrRet; }
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_AdminView(); // POSTのモードがsearchなら顧客検索開始 if ($_POST['mode'] == 'search') { $this->objFormParam = new SC_FormParam(); // 値の初期化 $this->lfInitParam(); // POST値の取得 $this->objFormParam->setParam($_POST); // 入力値の変換 $this->objFormParam->convParam(); // 入力された値を取得する $arrForm = $this->objFormParam->getHashArray(); // エラーチェック $this->arrErr = $this->lfCheckError(); if (is_array($this->arrErr) === true && 0 < count($this->arrErr)) { $is_select = false; } else { $where = "del_flg = 0"; // 検索 foreach ($arrForm as $tmp_key => $val) { if (is_array($val) === false && 0 < strlen($val)) { $key = strtr($tmp_key, array('search_' => '')); switch ($key) { case 'customer_id': $where .= " AND customer_id = ? "; $sqlval[$key] = $val; break; case 'name01': $where .= " AND name01 ILIKE ? "; $sqlval[$key] = '%' . $val . '%'; break; case 'name02': $where .= " AND name02 ILIKE ? "; $sqlval[$key] = '%' . $val . '%'; break; case 'kana01': $where .= " AND kana01 ILIKE ? "; $sqlval[$key] = '%' . $val . '%'; break; case 'kana02': $where .= " AND kana02 ILIKE ? "; $sqlval[$key] = '%' . $val . '%'; break; default: break; } } } $is_select = true; } if ($is_select === true) { $objQuery = new SC_Query(); // 既に購入した事がある顧客を取得 $col = '*'; $from = 'dtb_customer'; $order = 'customer_id'; $arrCustomer = $objQuery->select($col, $from, $where, $sqlval); // 顧客情報を取得できたら、テンプレートに if (is_array($arrCustomer) === true && count($arrCustomer) > 0) { $customer_count = count($arrCustomer); if ($customer_count != 0) { $this->tpl_linemax = $customer_count; } } else { $this->tpl_linemax = null; } // ページ送りの処理 if (isset($_POST['search_page_max']) && is_numeric($_POST['search_page_max'])) { $page_max = $_POST['search_page_max']; } else { $page_max = SEARCH_PMAX; } // ページ送りの取得 $objNavi = new SC_PageNavi($_POST['search_pageno'], $customer_count, $page_max, "fnNaviSearchOnlyPage", NAVI_PMAX); $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列 $startno = $objNavi->start_row; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset($page_max, $startno); // 表示順序 $objQuery->setorder($order); // 検索結果の取得 $this->arrCustomer = $objQuery->select($col, $from, $where, $sqlval); } } // 画面の表示 $this->arrForm = $arrForm; $objView->assignobj($this); $objView->display($this->tpl_mainpage); }
/** * Page のプロセス. * * @return void */ function process() { //---- ページ初期設定 $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objSess = new SC_Session(); $objDate = new SC_Date(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); if (!isset($_GET['send_id'])) { $_GET['send_id'] = ""; } if (!isset($_GET['mode'])) { $_GET['mode'] = ""; } if (!isset($_POST['search_pageno'])) { $_POST['search_pageno'] = ""; } // 削除時 if (SC_Utils_Ex::sfCheckNumLength($_GET['send_id']) && $_GET['mode'] == 'delete') { $sql = "UPDATE dtb_send_history SET del_flg = 1 WHERE send_id = ?"; $conn->query($sql, array($_GET['send_id'])); $_SERVER['QUERY_STRING'] = ""; $this->reload(); } $col = "*"; $from = "dtb_send_history"; $where = " del_flg = ?"; $arrval[] = "0"; $objQuery = new SC_Query(); // 行数の取得 $linemax = $objQuery->count($from, $where, $arrval); $this->tpl_linemax = $linemax; // 何件が該当しました。表示用 // ページ送りの取得 $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, SEARCH_PMAX, "fnNaviSearchPage", NAVI_PMAX); $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列 $startno = $objNavi->start_row; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset(SEARCH_PMAX, $startno); // 表示順序 $order = "start_date DESC, send_id DESC"; $objQuery->setorder($order); // 検索結果の取得 $this->arrDataList = $objQuery->select($col, $from, $where, $arrval); //---- ページ表示 $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_SiteView(); $objQuery = new SC_Query(); $objCustomer = new SC_Customer(); // レイアウトデザインを取得 $objLayout = new SC_Helper_PageLayout_Ex(); $objLayout->sfGetPageLayout($this, false, "mypage/index.php"); // ログインチェック if (!$objCustomer->isLoginSuccess()) { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } else { //マイページトップ顧客情報表示用 $this->CustomerName1 = $objCustomer->getvalue('name01'); $this->CustomerName2 = $objCustomer->getvalue('name02'); $this->CustomerPoint = $objCustomer->getvalue('point'); } //ページ送り用 if (isset($_POST['pageno'])) { $this->tpl_pageno = htmlspecialchars($_POST['pageno'], ENT_QUOTES, CHAR_CODE); } $col = "order_id, create_date, payment_id, payment_total"; $from = "dtb_order"; $where = "del_flg = 0 AND customer_id=?"; $arrval = array($objCustomer->getvalue('customer_id')); $order = "order_id DESC"; $linemax = $objQuery->count($from, $where, $arrval); $this->tpl_linemax = $linemax; // ページ送りの取得 $objNavi = new SC_PageNavi($this->tpl_pageno, $linemax, SEARCH_PMAX, "fnNaviPage", NAVI_PMAX); $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列 $startno = $objNavi->start_row; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset(SEARCH_PMAX, $startno); // 表示順序 $objQuery->setorder($order); //購入履歴の取得 $this->arrOrder = $objQuery->select($col, $from, $where, $arrval); // 支払い方法の取得 $objDb = new SC_Helper_DB_Ex(); $this->arrPayment = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); $objView->assignobj($this); //$objpage内の全てのテンプレート変数をsmartyに格納 $objView->display(SITE_FRAME); //パスとテンプレート変数の呼び出し、実行 }
/** * Page のプロセス(モバイル). * * @return void */ function mobileProcess() { $objView = new SC_MobileView(); $objCustomer = new SC_Customer(); $offset = isset($_REQUEST['offset']) ? $_REQUEST['offset'] : 0; $next = $offset; // レイアウトデザインを取得 $objLayout = new SC_Helper_PageLayout_Ex(); $objLayout->sfGetPageLayout($this, false, DEF_LAYOUT); // 規約内容の取得 $objQuery = new SC_Query(); $count = $objQuery->count("dtb_kiyaku", "del_flg <> 1"); $objQuery->setorder("rank DESC"); $objQuery->setlimitoffset(1, $offset); $arrRet = $objQuery->select("kiyaku_title, kiyaku_text", "dtb_kiyaku", "del_flg <> 1"); if ($count > $offset + 1) { $next++; } else { $next = -1; } $max = count($arrRet); $this->tpl_kiyaku_text = ""; for ($i = 0; $i < $max; $i++) { $this->tpl_kiyaku_text .= $arrRet[$i]['kiyaku_title'] . "\n\n"; $this->tpl_kiyaku_text .= $arrRet[$i]['kiyaku_text'] . "\n\n"; } $objView->assign("offset", $next); $objView->assignobj($this); $objView->display(SITE_FRAME); }
function sfPrePoint($price, $point_rate, $rule = POINT_RULE, $product_id = "") { if (SC_Utils::sfIsInt($product_id)) { $objQuery = new SC_Query(); $where = "now() >= cast(start_date as date) AND "; $where .= "now() < cast(end_date as date) AND "; $where .= "del_flg = 0 AND campaign_id IN (SELECT campaign_id FROM dtb_campaign_detail where product_id = ? )"; //登録(更新)日付順 $objQuery->setorder('update_date DESC'); //キャンペーンポイントの取得 $arrRet = $objQuery->select("campaign_name, campaign_point_rate", "dtb_campaign", $where, array($product_id)); } //複数のキャンペーンに登録されている商品は、最新のキャンペーンからポイントを取得 if (isset($arrRet[0]['campaign_point_rate']) && $arrRet[0]['campaign_point_rate'] != "") { $campaign_point_rate = $arrRet[0]['campaign_point_rate']; $real_point = $campaign_point_rate / 100; } else { $real_point = $point_rate / 100; } $ret = $price * $real_point; switch ($rule) { // 四捨五入 case 1: $ret = round($ret); break; // 切り捨て // 切り捨て case 2: $ret = floor($ret); break; // 切り上げ // 切り上げ case 3: $ret = ceil($ret); break; // デフォルト:切り上げ // デフォルト:切り上げ default: $ret = ceil($ret); break; } //キャンペーン商品の場合 if (isset($campaign_point_rate) && $campaign_point_rate != "") { $ret = "(" . $arrRet[0]['campaign_name'] . "ポイント率" . $campaign_point_rate . "%)" . $ret; } return $ret; }