/** * 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_product_id = isset($_POST['product_id']) ? $_POST['product_id'] : ""; $this->tpl_pageno = isset($_POST['pageno']) ? $_POST['pageno'] : ""; if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } switch ($_POST['mode']) { // 規格削除要求 case 'delete': $objQuery = new SC_Query(); $objQuery->setLimitOffset(1); $where = "product_id = ? AND NOT (classcategory_id1 = 0 AND classcategory_id2 = 0)"; $objQuery->setOrder("rank1 DESC, rank2 DESC"); $arrRet = $objQuery->select("*", "vw_cross_products_class AS crs_prd", $where, array($_POST['product_id'])); if (count($arrRet) > 0) { $sqlval['product_id'] = $arrRet[0]['product_id']; $sqlval['classcategory_id1'] = '0'; $sqlval['classcategory_id2'] = '0'; $sqlval['product_code'] = $arrRet[0]['product_code']; $sqlval['stock'] = $arrRet[0]['stock']; $sqlval['price01'] = $arrRet[0]['price01']; $sqlval['price02'] = $arrRet[0]['price02']; $sqlval['creator_id'] = $_SESSION['member_id']; $sqlval['create_date'] = "now()"; $sqlval['update_date'] = "now()"; $objQuery->begin(); $where = "product_id = ?"; $objQuery->delete("dtb_products_class", $where, array($_POST['product_id'])); $objQuery->insert("dtb_products_class", $sqlval); $objQuery->commit(); } $this->lfProductClassPage(); // 規格登録ページ break; // 編集要求 // 編集要求 case 'pre_edit': $objQuery = new SC_Query(); $where = "product_id = ? AND NOT(classcategory_id1 = 0 AND classcategory_id2 = 0) "; $ret = $objQuery->count("dtb_products_class", $where, array($_POST['product_id'])); if ($ret > 0) { // 規格組み合わせ一覧の取得(DBの値を優先する。) $this->arrClassCat = $this->lfGetClassCatListEdit($_POST['product_id']); } $this->lfProductClassPage(); // 規格登録ページ break; // 規格組み合わせ表示 // 規格組み合わせ表示 case 'disp': $this->arrForm['select_class_id1'] = $_POST['select_class_id1']; $this->arrForm['select_class_id2'] = $_POST['select_class_id2']; $this->arrErr = $this->lfClassError(); if (count($this->arrErr) == 0) { // 規格組み合わせ一覧の取得 $this->arrClassCat = $this->lfGetClassCatListDisp($_POST['select_class_id1'], $_POST['select_class_id2']); } $this->lfProductClassPage(); // 規格登録ページ break; // 規格登録要求 // 規格登録要求 case 'edit': // 入力値の変換 $this->arrForm = $this->lfConvertParam($_POST); // エラーチェック $this->arrErr = $this->lfProductClassError($this->arrForm); if (count($this->arrErr) == 0) { // 確認ページ設定 $this->tpl_mainpage = 'products/product_class_confirm.tpl'; $this->lfProductConfirmPage(); // 確認ページ表示 } else { // 規格組み合わせ一覧の取得 $this->arrClassCat = $this->lfGetClassCatListDisp($_POST['class_id1'], $_POST['class_id2'], false); $this->lfProductClassPage(); // 規格登録ページ } break; // 確認ページからの戻り // 確認ページからの戻り case 'confirm_return': // フォームパラメータの引き継ぎ $this->arrForm = $_POST; // 規格の選択情報は引き継がない。 $this->arrForm['select_class_id1'] = ""; $this->arrForm['select_class_id2'] = ""; // 規格組み合わせ一覧の取得(デフォルト値は出力しない) $this->arrClassCat = $this->lfGetClassCatListDisp($_POST['class_id1'], $_POST['class_id2'], false); $this->lfProductClassPage(); // 規格登録ページ break; case 'complete': // 完了ページ設定 $this->tpl_mainpage = 'products/product_class_complete.tpl'; // 商品規格の登録 $this->lfInsertProductClass($_POST, $_POST['product_id']); break; default: $this->lfProductClassPage(); // 規格登録ページ break; } $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * 都道府県、支払い方法から配送料金を取得する. * * @param integer $pref 都道府県ID * @param integer $payment_id 支払い方法ID * @return string 指定の都道府県, 支払い方法の配送料金 */ function sfGetDelivFee($arrData) { $pref = $arrData['deliv_pref']; $payment_id = isset($arrData['payment_id']) ? $arrData['payment_id'] : ""; $objQuery = new SC_Query(); $deliv_id = ""; // 支払い方法が指定されている場合は、対応した配送業者を取得する 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']; // 支払い方法が指定されていない場合は、先頭の配送業者を取得する } else { $where = "del_flg = 0"; $objQuery->setOrder("rank DESC"); $objQuery->setLimitOffset(1); $arrRet = $objQuery->select("deliv_id", "dtb_deliv", $where); $deliv_id = $arrRet[0]['deliv_id']; } // 配送業者から配送料を取得 if ($deliv_id != "") { // 都道府県が指定されていない場合は、東京都の番号を指定しておく if ($pref == "") { $pref = 13; } $objQuery = new SC_Query(); $where = "deliv_id = ? AND pref = ?"; $arrRet = $objQuery->select("fee", "dtb_delivfee", $where, array($deliv_id, $pref)); } return $arrRet[0]['fee']; }