本文整理汇总了PHP中SC_Utils_Ex::sfSwapArray方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Utils_Ex::sfSwapArray方法的具体用法?PHP SC_Utils_Ex::sfSwapArray怎么用?PHP SC_Utils_Ex::sfSwapArray使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Utils_Ex
的用法示例。
在下文中一共展示了SC_Utils_Ex::sfSwapArray方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sfDownloadCsv
/**
* CSVファイルを送信する
*
* @param integer $csv_id
* CSVフォーマットID
* @param string $where
* WHERE条件文
* @param array $arrVal
* プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。
* @param string $order
* ORDER文
* @param boolean $is_download
* true:ダウンロード用出力までさせる false:CSVの内容を返す(旧方式、メモリを食います。)
* @return boolean|string $is_download = true時 成功失敗フラグ(boolean) 、$is_downalod = false時 string
*/
public function sfDownloadCsv($csv_id, $where = '', $arrVal = array(), $order = '', $is_download = false)
{
switch ($csv_id) {
case 1:
case 2:
case 3:
case 4:
case 5:
return parent::sfDownloadCsv($csv_id, $where, $arrVal, $order, $is_download);
}
$objQuery =& SC_Query_Ex::getSingletonInstance();
// CSV出力タイトル行の作成
$arrOutput = SC_Utils_Ex::sfSwapArray($this->sfGetCsvOutput($csv_id, 'status = ' . CSV_COLUMN_STATUS_FLG_ENABLE));
if (count($arrOutput) <= 0) {
SC_Utils_Ex::sfDispError("");
return false;
// 失敗終了
}
$arrOutputCols = $arrOutput['col'];
$cols = SC_Utils_Ex::sfGetCommaList($arrOutputCols, true);
switch ($csv_id) {
case 6:
// キャラクター
$from = 'cp_dtb_character';
break;
case 7:
// 端末
$from = 'cp_dtb_device';
break;
}
$objQuery->setOrder($order);
$sql = $objQuery->getSql($cols, $from, $where);
return $this->sfDownloadCsvFromSql($sql, $arrVal, $this->arrSubnavi[$csv_id], $arrOutput['disp_name'], $is_download);
}
示例2: sfDownloadCsv
/**
* CSVファイルを送信する
*
* @param integer $csv_id CSVフォーマットID
* @param string $where WHERE条件文
* @param array $arrVal プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。
* @param string $order ORDER文
* @param boolean $is_download true:ダウンロード用出力までさせる false:CSVの内容を返す(旧方式、メモリを食います。)
* @return boolean|string $is_download = true時 成功失敗フラグ(boolean) 、$is_downalod = false時 string
*/
public function sfDownloadCsv($csv_id, $where = '', $arrVal = array(), $order = '', $is_download = false)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
// CSV出力タイトル行の作成
$arrOutput = SC_Utils_Ex::sfSwapArray($this->sfGetCsvOutput($csv_id, 'status = ' . CSV_COLUMN_STATUS_FLG_ENABLE));
if (count($arrOutput) <= 0) {
return false;
}
// 失敗終了
$arrOutputCols = $arrOutput['col'];
$cols = SC_Utils_Ex::sfGetCommaList($arrOutputCols, true);
// 商品の場合
if ($csv_id == 1) {
// この WHERE 句を足さないと無効な規格も出力される。現行仕様と合わせる為追加。
$inner_where = 'dtb_products_class.del_flg = 0';
$from = SC_Product_Ex::prdclsSQL($inner_where);
// 会員の場合
} elseif ($csv_id == 2) {
$from = 'dtb_customer';
// 注文の場合
} elseif ($csv_id == 3) {
$from = 'dtb_order';
// レビューの場合
} elseif ($csv_id == 4) {
$from = 'dtb_review AS A INNER JOIN dtb_products AS B on A.product_id = B.product_id';
// カテゴリの場合
} elseif ($csv_id == 5) {
$from = 'dtb_category';
}
$objQuery->setOrder($order);
$sql = $objQuery->getSql($cols, $from, $where);
return $this->sfDownloadCsvFromSql($sql, $arrVal, $this->arrSubnavi[$csv_id], $arrOutput['disp_name'], $is_download);
}
示例3: sfDownloadCsv
/**
* CSVファイルを送信する
*
* @param integer $csv_id CSVフォーマットID
* @param string $where WHERE条件文
* @param array $arrVal プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。
* @param string $order ORDER文
* @param boolean $is_download true:ダウンロード用出力までさせる false:CSVの内容を返す(旧方式、メモリを食います。)
* @return mixed $is_download = true時 成功失敗フラグ(boolean) 、$is_downalod = false時 string
*/
function sfDownloadCsv($csv_id, $where = '', $arrVal = array(), $order = '', $is_download = false)
{
// 実行時間を制限しない
@set_time_limit(0);
// CSV出力タイトル行の作成
$arrOutput = SC_Utils_Ex::sfSwapArray($this->sfGetCsvOutput($csv_id, 'status = ' . CSV_COLUMN_STATUS_FLG_ENABLE));
if (count($arrOutput) <= 0) {
return false;
}
// 失敗終了
$arrOutputCols = $arrOutput['col'];
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->setOrder($order);
$cols = SC_Utils_Ex::sfGetCommaList($arrOutputCols, true);
// TODO: 固有処理 なんかエレガントな処理にしたい
if ($csv_id == '1') {
//商品の場合
$objProduct = new SC_Product_Ex();
// このWhereを足さないと無効な規格も出力される。現行仕様と合わせる為追加。
$inner_where = 'dtb_products_class.del_flg = 0';
$sql = $objQuery->getSql($cols, $objProduct->prdclsSQL($inner_where), $where);
} else {
if ($csv_id == '2') {
// 会員の場合
$sql = 'SELECT ' . $cols . ' FROM dtb_customer ' . $where;
} else {
if ($csv_id == '3') {
// 注文の場合
$sql = 'SELECT ' . $cols . ' FROM dtb_order ' . $where;
} else {
if ($csv_id == '4') {
// レビューの場合
$sql = 'SELECT ' . $cols . ' FROM dtb_review AS A INNER JOIN dtb_products AS B on A.product_id = B.product_id ' . $where;
} else {
if ($csv_id == '5') {
// カテゴリの場合
$sql = 'SELECT ' . $cols . ' FROM dtb_category ' . $where;
}
}
}
}
}
// 固有処理ここまで
return $this->sfDownloadCsvFromSql($sql, $arrVal, $this->arrSubnavi[$csv_id], $arrOutput['disp_name'], $is_download);
}
示例4: findTableNames
/**
* テーブルを検索する.
*
* 引数に部分一致するテーブル名を配列で返す.
*
* @deprecated SC_Query::listTables() を使用してください
* @param string $expression 検索文字列
* @return array テーブル名の配列
*/
public function findTableNames($expression = '')
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$sql = ' SELECT c.relname AS name, ' . ' CASE c.relkind ' . " WHEN 'r' THEN 'table' " . " WHEN 'v' THEN 'view' END AS type " . ' FROM pg_catalog.pg_class c ' . 'LEFT JOIN pg_catalog.pg_namespace n ' . ' ON n.oid = c.relnamespace ' . " WHERE c.relkind IN ('r','v') " . " AND n.nspname NOT IN ('pg_catalog', 'pg_toast') " . ' AND pg_catalog.pg_table_is_visible(c.oid) ' . ' AND c.relname LIKE ?' . ' ORDER BY 1,2;';
$arrColList = $objQuery->getAll($sql, array('%' . $expression . '%'));
$arrColList = SC_Utils_Ex::sfSwapArray($arrColList, false);
return $arrColList[0];
}
示例5: process
/**
* Page のプロセス.
*
* @return void
*/
function process()
{
$objView = new SC_AdminView();
$objDbFactory = SC_DB_DBFactory_Ex::getInstance();
$objCSV = new SC_Helper_CSV_Ex();
$this->arrSubnavi = $objCSV->arrSubnavi;
// 認証可否の判定
$objSess = new SC_Session();
SC_Utils_Ex::sfIsSuccess($objSess);
if (!isset($_POST['mode'])) {
$_POST['mode'] = "";
}
if (!isset($_POST['sql_id'])) {
$_POST['sql_id'] = "";
}
if (!isset($_GET['sql_id'])) {
$_GET['sql_id'] = "";
}
if (!isset($_POST['selectTable'])) {
$_POST['selectTable'] = "";
}
// SQL_IDの取得
if ($_POST['sql_id'] != "") {
$sql_id = $_POST['sql_id'];
} elseif ($_GET['sql_id'] != "") {
$sql_id = $_GET['sql_id'];
} else {
$sql_id = "";
}
$mode = $_POST['mode'];
switch ($_POST['mode']) {
// データの登録
case "confirm":
// エラーチェック
$this->arrErr = $this->lfCheckError($_POST);
if (count($this->arrErr) <= 0) {
// データの更新
$sql_id = $this->lfUpdData($sql_id, $_POST);
// 完了メッセージ表示
$this->tpl_onload = "alert('登録が完了しました。');";
}
break;
// 確認画面
// 確認画面
case "preview":
// SQL文表示
$sql = "SELECT \n" . $_POST['csv_sql'];
// FIXME
$this->sql = $sql;
// エラー表示
$objErrMsg = $this->lfCheckSQL($_POST);
if ($objErrMsg != "") {
$errMsg = $objErrMsg->message . "\n" . $objErrMsg->userinfo;
}
$this->sqlerr = isset($errMsg) ? $errMsg : "";
$this->objView = $objView;
// 画面の表示
$objView->assignobj($this);
$objView->display('contents/csv_sql_view.tpl');
exit;
break;
// 新規作成
// 新規作成
case "new_page":
$this->sendRedirect($this->getLocation("./csv_sql.php"));
exit;
break;
// データ削除
// データ削除
case "delete":
$this->lfDelData($sql_id);
$this->sendRedirect($this->getLocation("./csv_sql.php"));
exit;
break;
case "csv_output":
// CSV出力データ取得
$arrCsvData = $this->lfGetSqlList(" WHERE sql_id = ?", array($_POST['csv_output_id']));
$objQuery = new SC_Query();
$arrCsvOutputData = $objQuery->getall("SELECT " . $arrCsvData[0]['csv_sql']);
if (count($arrCsvOutputData) > 0) {
$arrKey = array_keys(SC_Utils_Ex::sfSwapArray($arrCsvOutputData));
$i = 0;
$header = "";
foreach ($arrKey as $data) {
if ($i != 0) {
$header .= ", ";
}
$header .= $data;
$i++;
}
$header .= "\r\n";
$data = SC_Utils_Ex::getCSVData($arrCsvOutputData, $arrKey);
// CSV出力
SC_Utils_Ex::sfCSVDownload($header . $data);
exit;
//.........这里部分代码省略.........
示例6: lfCheckError
/**
* 入力内容のチェックを行う.
*
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @return array エラーメッセージの配列
*/
function lfCheckError(&$objFormParam)
{
$objProduct = new SC_Product_Ex();
$arrErr = $objFormParam->checkError();
if (!SC_Utils_Ex::isBlank($objErr->arrErr)) {
return $arrErr;
}
$arrValues = $objFormParam->getHashArray();
// 商品の種類数
$max = count($arrValues['quantity']);
$subtotal = 0;
$totalpoint = 0;
$totaltax = 0;
for ($i = 0; $i < $max; $i++) {
// 小計の計算
$subtotal += SC_Helper_DB_Ex::sfCalcIncTax($arrValues['price'][$i]) * $arrValues['quantity'][$i];
// 小計の計算
$totaltax += SC_Helper_DB_Ex::sfTax($arrValues['price'][$i]) * $arrValues['quantity'][$i];
// 加算ポイントの計算
$totalpoint += SC_Utils_Ex::sfPrePoint($arrValues['price'][$i], $arrValues['point_rate'][$i]) * $arrValues['quantity'][$i];
// 在庫数のチェック
$arrProduct = $objProduct->getDetailAndProductsClass($arrValues['product_class_id'][$i]);
// 編集前の値と比較するため受注詳細を取得
$objPurchase = new SC_Helper_Purchase_Ex();
$arrOrderDetail = SC_Utils_Ex::sfSwapArray($objPurchase->getOrderDetail($objFormParam->getValue('order_id'), false));
if ($arrProduct['stock_unlimited'] != '1' && $arrProduct['stock'] < $arrValues['quantity'][$i] - $arrOrderDetail['quantity'][$i]) {
$class_name1 = $arrValues['classcategory_name1'][$i];
$class_name1 = SC_Utils_Ex::isBlank($class_name1) ? 'なし' : $class_name1;
$class_name2 = $arrValues['classcategory_name2'][$i];
$class_name2 = SC_Utils_Ex::isBlank($class_name2) ? 'なし' : $class_name2;
$arrErr['quantity'][$i] .= $arrValues['product_name'][$i] . '/(' . $class_name1 . ')/(' . $class_name2 . ') の在庫が不足しています。 設定できる数量は「' . ($arrOrderDetail['quantity'][$i] + $arrProduct['stock']) . '」までです。<br />';
}
}
// 消費税
$arrValues['tax'] = $totaltax;
// 小計
$arrValues['subtotal'] = $subtotal;
// 合計
$arrValues['total'] = $subtotal - $arrValues['discount'] + $arrValues['deliv_fee'] + $arrValues['charge'];
// お支払い合計
$arrValues['payment_total'] = $arrValues['total'] - $arrValues['use_point'] * POINT_VALUE;
// 加算ポイント
$arrValues['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($totalpoint, $arrValues['use_point']);
// 最終保持ポイント
$arrValues['total_point'] = $objFormParam->getValue('point') - $arrValues['use_point'];
if ($arrValues['total'] < 0) {
$arrErr['total'] = '合計額がマイナス表示にならないように調整して下さい。<br />';
}
if ($arrValues['payment_total'] < 0) {
$arrErr['payment_total'] = 'お支払い合計額がマイナス表示にならないように調整して下さい。<br />';
}
if ($arrValues['total_point'] < 0) {
$arrErr['use_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />';
}
$objFormParam->setParam($arrValues);
return $arrErr;
}
示例7: process
/**
* Page のプロセス.
*
* @return void
*/
function process()
{
//---- 認証可否の判定
$objSess = new SC_Session();
SC_Utils_Ex::sfIsSuccess($objSess);
$objView = new SC_AdminView();
$objQuery = new SC_Query();
$objFormParam = new SC_FormParam();
$objCSV = new SC_Helper_CSV_Ex();
// パラメータ情報の初期化
$this->lfInitParam($objFormParam);
// フォームの値をセット
$objFormParam->setParam($_POST);
// 編集処理の場合は状態を保持
$this->is_update = isset($_POST['is_update']) ? $_POST['is_update'] : "";
// フォームの値をテンプレートへ渡す
$this->arrForm = $objFormParam->getHashArray();
$campaign_id = isset($_POST['campaign_id']) ? $_POST['campaign_id'] : "";
if (!isset($_POST['mode'])) {
$_POST['mode'] = "";
}
switch ($_POST['mode']) {
// 新規登録/編集登録
case 'regist':
// エラーチェック
$this->arrErr = $this->lfErrorCheck($campaign_id, $objQuery, $objFormParam);
if (count($this->arrErr) <= 0) {
// 登録
$this->lfRegistCampaign($campaign_id, $objQuery, $objFormParam);
// キャンペーンTOPへリダイレクト
$this->sendRedirect($this->getLocation(URL_CAMPAIGN_TOP));
exit;
}
break;
// 編集押下時
// 編集押下時
case 'update':
// キャンペーン情報を取得
$this->arrForm = $this->lfGetCampaign($campaign_id, $objQuery);
$this->is_update = true;
break;
// 削除押下時
// 削除押下時
case 'delete':
// 削除
$this->lfDeleteCampaign($campaign_id, $objQuery);
// キャンペーンTOPへリダイレクト
$this->sendRedirect($this->getLocation(URL_CAMPAIGN_TOP));
exit;
break;
// CSV出力
// CSV出力
case 'csv':
// オプションの指定
$option = "ORDER BY create_date DESC";
// CSV出力タイトル行の作成
$arrCsvOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput(4, " WHERE csv_id = 4 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_campaign_order", "campaign_id = ?", $option, array($campaign_id), $arrCsvOutputCols);
// CSVを送信する。
SC_Utils_Ex::sfCSVDownload($head . $data);
exit;
break;
default:
break;
}
// キャンペーン一覧取得
$this->arrCampaign = $this->lfGetCampaignList($objQuery);
$this->campaign_id = $campaign_id;
// キャンペーン期間用
$objDate = new SC_Date();
$this->arrYear = $objDate->getYear(min(date('Y'), $this->arrForm['start_year']));
$this->arrMonth = $objDate->getMonth();
$this->arrDay = $objDate->getDay();
$this->arrHour = $objDate->getHour();
$this->arrMinutes = $objDate->getMinutes();
//---- ページ表示
$objView->assignobj($this);
$objView->display(MAIN_FRAME);
}
示例8: doPreEdit
/**
* 規格編集画面を表示する
*
* @param integer $product_id 商品ID
* @param bool $existsValue
* @param bool $usepostValue
*/
function doPreEdit(&$objFormParam)
{
$product_id = $objFormParam->getValue('product_id');
$objProduct = new SC_Product_Ex();
$existsProductsClass = $objProduct->getProductsClassFullByProductId($product_id);
// 規格のデフォルト値(すべての組み合わせ)を取得し, フォームに反映
$class_id1 = $existsProductsClass[0]['class_id1'];
$class_id2 = $existsProductsClass[0]['class_id2'];
$objFormParam->setValue('class_id1', $class_id1);
$objFormParam->setValue('class_id2', $class_id2);
$this->doDisp($objFormParam);
/*
* 登録済みのデータで, フォームの値を上書きする.
*
* 登録済みデータと, フォームの値は, 配列の形式が違うため,
* 同じ形式の配列を生成し, マージしてフォームの値を上書きする
*/
$arrKeys = array('classcategory_id1', 'classcategory_id2', 'product_code', 'classcategory_name1', 'classcategory_name2', 'stock', 'stock_unlimited', 'price01', 'price02', 'product_type_id', 'down_filename', 'down_realfilename', 'upload_index');
$arrFormValues = $objFormParam->getSwapArray($arrKeys);
// フォームの規格1, 規格2をキーにした配列を生成
$arrClassCatKey = array();
foreach ($arrFormValues as $formValue) {
$arrClassCatKey[$formValue['classcategory_id1']][$formValue['classcategory_id2']] = $formValue;
}
// 登録済みデータをマージ
foreach ($existsProductsClass as $existsValue) {
$arrClassCatKey[$existsValue['classcategory_id1']][$existsValue['classcategory_id2']] = $existsValue;
}
// 規格のデフォルト値に del_flg をつけてマージ後の1次元配列を生成
$arrMergeProductsClass = array();
foreach ($arrClassCatKey as $arrC1) {
foreach ($arrC1 as $arrValues) {
$arrValues['del_flg'] = (string) $arrValues['del_flg'];
if (SC_Utils_Ex::isBlank($arrValues['del_flg']) || $arrValues['del_flg'] === '1') {
$arrValues['del_flg'] = '1';
} else {
$arrValues['del_flg'] = '0';
}
$arrMergeProductsClass[] = $arrValues;
}
}
// 登録済みのデータで上書き
$objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrMergeProductsClass));
// $arrMergeProductsClass で product_id が配列になってしまうため数値で上書き
$objFormParam->setValue('product_id', $product_id);
// check を設定
$arrChecks = array();
$index = 0;
foreach ($objFormParam->getValue('del_flg') as $key => $val) {
if ($val === '0') {
$arrChecks[$index] = 1;
}
$index++;
}
$objFormParam->setValue('check', $arrChecks);
// class_id1, class_id2 を取得値で上書き
$objFormParam->setValue('class_id1', $class_id1);
$objFormParam->setValue('class_id2', $class_id2);
}
示例9: lfGetCSVColumn
/**
* CSVカラム設定の読み込み
*
* @param integer $csv_id CSV ID
* @param integer $csv_status_flg 読み込む対象のフラグ CSV_COLUMN_STATUS_FLG_ENABLE or ''
* @return array SwapArrayしたカラム設定
*/
function lfGetCSVColumn($csv_id, $csv_status_flg = '', $order = 'rank, no')
{
$objCSV = new SC_Helper_CSV_Ex();
if (SC_Utils_Ex::sfIsInt($csv_id)) {
if ($csv_status_flg != '') {
$arrData = $objCSV->sfGetCsvOutput($csv_id, 'status = ?', array($csv_status_flg), $order);
} else {
$arrData = $objCSV->sfGetCsvOutput($csv_id, '', array(), $order);
}
$arrData = SC_Utils_Ex::sfSwapArray($arrData);
} else {
$arrData = array();
}
return $arrData;
}
示例10: process
//.........这里部分代码省略.........
$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;
// 何件が該当しました。表示用
// ページ送りの処理
示例11: process
//.........这里部分代码省略.........
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;
示例12: Lfgetcolumnlist
function Lfgetcolumnlist($table_name)
{
$objQuery = new SC_Query();
if (DB_TYPE == "pgsql") {
$sql = "SELECT\n a.attname, t.typname, a.attnotnull, d.adsrc as defval, a.atttypmod, a.attnum as fldnum, e.description\n FROM\n pg_class c,\n pg_type t,\n pg_attribute a left join pg_attrdef d on (a.attrelid=d.adrelid and a.attnum=d.adnum)\n left join pg_description e on (a.attrelid=e.objoid and a.attnum=e.objsubid)\n WHERE (c.relname=?) AND (c.oid=a.attrelid) AND (a.atttypid=t.oid) AND a.attnum > 0\n ORDER BY fldnum";
$arrColList = $objQuery->getAll($sql, array($table_name));
$arrColList = SC_Utils_Ex::sfSwapArray($arrColList);
$arrRet['col_def'] = $arrColList['defval'];
$arrRet['col_name'] = $arrColList['attname'];
} else {
if (DB_TYPE == "mysql") {
$sql = "SHOW COLUMNS FROM {$table_name}";
$arrColList = $objQuery->getAll($sql);
$arrColList = SC_Utils_Ex::sfSwapArray($arrColList);
$arrRet['col_def'] = $arrColList['Extra'];
$arrRet['col_name'] = $arrColList['Field'];
}
}
return $arrRet;
}
示例13: lfGetOrderData
function lfGetOrderData($order_id)
{
if (SC_Utils_Ex::sfIsInt($order_id)) {
// DBから受注情報を読み込む
$objQuery = new SC_Query_Ex();
$where = "order_id = ?";
$arrRet = $objQuery->select("*", "dtb_order", $where, array($order_id));
$this->arrDisp = $arrRet[0];
list($point) = SC_Helper_Customer_Ex::sfGetCustomerPoint($order_id, $arrRet[0]['use_point'], $arrRet[0]['add_point']);
$this->arrDisp['point'] = $point;
// 受注詳細データの取得
$arrRet = $this->lfGetOrderDetail($order_id);
$arrRet = SC_Utils_Ex::sfSwapArray($arrRet);
$this->arrDisp = array_merge($this->arrDisp, $arrRet);
// その他支払い情報を表示
if ($this->arrDisp["memo02"] != "") {
$this->arrDisp["payment_info"] = unserialize($this->arrDisp["memo02"]);
}
$this->arrDisp["payment_type"] = "お支払い";
}
}
示例14: lfGetOrderData
function lfGetOrderData($order_id)
{
if (SC_Utils_Ex::sfIsInt($order_id)) {
// DBから受注情報を読み込む
$objQuery = new SC_Query();
$objDb = new SC_Helper_DB_Ex();
$where = "order_id = ?";
$arrRet = $objQuery->select("*", "dtb_order", $where, array($order_id));
$this->objFormParam->setParam($arrRet[0]);
list($point, $total_point) = $objDb->sfGetCustomerPoint($order_id, $arrRet[0]['use_point'], $arrRet[0]['add_point']);
$this->objFormParam->setValue('total_point', $total_point);
$this->objFormParam->setValue('point', $point);
$this->arrForm = $arrRet[0];
// 受注詳細データの取得
$arrRet = $this->lfGetOrderDetail($order_id);
$arrRet = SC_Utils_Ex::sfSwapArray($arrRet);
$this->arrForm = array_merge($this->arrForm, $arrRet);
$this->objFormParam->setParam($arrRet);
// その他支払い情報を表示
if ($this->arrForm["memo02"] != "") {
$this->arrForm["payment_info"] = unserialize($this->arrForm["memo02"]);
}
if ($this->arrForm["memo01"] == PAYMENT_CREDIT_ID) {
$this->arrForm["payment_type"] = "クレジット決済";
} elseif ($this->arrForm["memo01"] == PAYMENT_CONVENIENCE_ID) {
$this->arrForm["payment_type"] = "コンビニ決済";
} else {
$this->arrForm["payment_type"] = "お支払い";
}
//受注データを表示用配列に代入(各EC-CUBEバージョンと決済モジュールとのデータ連携保全のため)
$this->arrDisp = $this->arrForm;
}
}
示例15: lfCheckError
/**
* 入力内容のチェックを行う.
*
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @return array エラーメッセージの配列
*/
public function lfCheckError(&$objFormParam)
{
$objProduct = new SC_Product_Ex();
$arrValues = $objFormParam->getHashArray();
$arrErr = array();
$arrErrTemp = $objFormParam->checkError();
$arrErrDate = array();
foreach ($arrValues['shipping_date_year'] as $key_index => $year) {
$month = $arrValues['shipping_date_month'][$key_index];
$day = $arrValues['shipping_date_day'][$key_index];
$objError = new SC_CheckError_Ex(array('shipping_date_year' => $year, 'shipping_date_month' => $month, 'shipping_date_day' => $day));
$objError->doFunc(array('お届け日', 'shipping_date_year', 'shipping_date_month', 'shipping_date_day'), array('CHECK_DATE'));
$arrErrDate['shipping_date_year'][$key_index] = $objError->arrErr['shipping_date_year'];
}
$arrErrTemp = array_merge($arrErrTemp, $arrErrDate);
// 複数項目チェック
$year = $arrValues['order_birth_year'];
$month = $arrValues['order_birth_month'];
$day = $arrValues['order_birth_day'];
$objError = new SC_CheckError_Ex(array('order_birth_year' => $year, 'order_birth_month' => $month, 'order_birth_day' => $day));
$objError->doFunc(array('生年月日', 'order_birth_year', 'order_birth_month', 'order_birth_day'), array('CHECK_BIRTHDAY'));
$arrErrTemp['order_birth_year'] = $objError->arrErr['order_birth_year'];
// 商品の種類数
$max = count($arrValues['quantity']);
$subtotal = 0;
$totalpoint = 0;
$totaltax = 0;
for ($i = 0; $i < $max; $i++) {
// 小計の計算
$subtotal += SC_Helper_DB_Ex::sfCalcIncTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i];
// 小計の計算
$totaltax += SC_Utils_Ex::sfTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i];
// 加算ポイントの計算
$totalpoint += SC_Utils_Ex::sfPrePoint($arrValues['price'][$i], $arrValues['point_rate'][$i]) * $arrValues['quantity'][$i];
// 在庫数のチェック
$arrProduct = $objProduct->getDetailAndProductsClass($arrValues['product_class_id'][$i]);
// 編集前の値と比較するため受注詳細を取得
$objPurchase = new SC_Helper_Purchase_Ex();
$arrOrderDetail = SC_Utils_Ex::sfSwapArray($objPurchase->getOrderDetail($objFormParam->getValue('order_id'), false));
if ($arrProduct['stock_unlimited'] != '1' && $arrProduct['stock'] < $arrValues['quantity'][$i] - $arrOrderDetail['quantity'][$i]) {
$class_name1 = $arrValues['classcategory_name1'][$i];
$class_name1 = SC_Utils_Ex::isBlank($class_name1) ? 'なし' : $class_name1;
$class_name2 = $arrValues['classcategory_name2'][$i];
$class_name2 = SC_Utils_Ex::isBlank($class_name2) ? 'なし' : $class_name2;
$arrErr['quantity'][$i] .= $arrValues['product_name'][$i] . '/(' . $class_name1 . ')/(' . $class_name2 . ') の在庫が不足しています。 設定できる数量は「' . ($arrOrderDetail['quantity'][$i] + $arrProduct['stock']) . '」までです。<br />';
}
}
// 消費税
$arrValues['tax'] = $totaltax;
// 小計
$arrValues['subtotal'] = $subtotal;
// 合計
$arrValues['total'] = $subtotal - $arrValues['discount'] + $arrValues['deliv_fee'] + $arrValues['charge'];
// お支払い合計
$arrValues['payment_total'] = $arrValues['total'] - $arrValues['use_point'] * POINT_VALUE;
// 加算ポイント
$arrValues['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($totalpoint, $arrValues['use_point']) + $arrValues['birth_point'];
// 最終保持ポイント
$arrValues['total_point'] = $objFormParam->getValue('point') - $arrValues['use_point'];
if ($arrValues['total'] < 0) {
$arrErr['total'] = '合計額がマイナス表示にならないように調整して下さい。<br />';
}
if ($arrValues['payment_total'] < 0) {
$arrErr['payment_total'] = 'お支払い合計額がマイナス表示にならないように調整して下さい。<br />';
}
if ($arrValues['total_point'] < 0) {
$arrErr['use_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />';
}
$objFormParam->setParam($arrValues);
$arrErr = array_merge($arrErr, $arrErrTemp);
return $arrErr;
}