source: branches/feature-module-update/data/class/pages/admin/products/LC_Page_Admin_Products_Class.php @ 15481

Revision 15481, 5.6 KB checked in by nanasess, 17 years ago (diff)

クラス化対応

  • Property svn:keywords set to Id Revision Date
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8// {{{ requires
9require_once(CLASS_PATH . "pages/LC_Page.php");
10
11/**
12 * 規格管理 のページクラス.
13 *
14 * @package Page
15 * @author LOCKON CO.,LTD.
16 * @version $Id$
17 */
18class LC_Page_Admin_Products_Class extends LC_Page {
19
20    // }}}
21    // {{{ functions
22
23    /**
24     * Page を初期化する.
25     *
26     * @return void
27     */
28    function init() {
29        parent::init();
30        $this->tpl_mainpage = 'products/class.tpl';
31        $this->tpl_subnavi = 'products/subnavi.tpl';
32        $this->tpl_subno = 'class';
33        $this->tpl_subtitle = '規格登録';
34        $this->tpl_mainno = 'products';
35    }
36
37    /**
38     * Page のプロセス.
39     *
40     * @return void
41     */
42    function process() {
43        $conn = new SC_DBConn();
44        $objView = new SC_AdminView();
45        $objSess = new SC_Session();
46        $objQuery = new SC_Query();
47        $objDb = new SC_Helper_DB_Ex();
48
49        // 認証可否の判定
50        SC_Utils_Ex::sfIsSuccess($objSess);
51
52        if (!isset($_POST['mode'])) $_POST['mode'] = "";
53
54        // 要求判定
55        switch($_POST['mode']) {
56            // 編集処理
57        case 'edit':
58            // POST値の引き継ぎ
59            $this->arrForm = $_POST;
60            // 入力文字の変換
61            $this->arrForm = $this->lfConvertParam($this->arrForm);
62            // エラーチェック
63            $this->arrErr = $this->lfErrorCheck();
64            if(count($this->arrErr) <= 0) {
65                if($_POST['class_id'] == "") {
66                    $this->lfInsertClass($this->arrForm);   // 新規作成
67                } else {
68                    $this->lfUpdateClass($this->arrForm);   // 既存編集
69                }
70                // 再表示
71                $this->reload();
72            } else {
73                // POSTデータを引き継ぐ
74                $this->tpl_class_id = $_POST['class_id'];
75            }
76            break;
77            // 削除
78        case 'delete':
79            $objDb->sfDeleteRankRecord("dtb_class", "class_id", $_POST['class_id'], "", true);
80            $objQuery = new SC_Query();
81            $objQuery->delete("dtb_classcategory", "class_id = ?", $_POST['class_id']);
82            // 再表示
83            $this->reload();
84            break;
85            // 編集前処理
86        case 'pre_edit':
87            // 編集項目をDBより取得する。
88            $where = "class_id = ?";
89            $class_name = $objQuery->get("dtb_class", "name", $where, array($_POST['class_id']));
90            // 入力項目にカテゴリ名を入力する。
91            $this->arrForm['name'] = $class_name;
92            // POSTデータを引き継ぐ
93            $this->tpl_class_id = $_POST['class_id'];
94            break;
95        case 'down':
96            $objDb->sfRankDown("dtb_class", "class_id", $_POST['class_id']);
97            // 再表示
98            $this->reload();
99            break;
100        case 'up':
101            $objDb->sfRankUp("dtb_class", "class_id", $_POST['class_id']);
102            // 再表示
103            $this->reload();
104            break;
105        default:
106            break;
107        }
108
109        // 規格の読込
110        $where = "del_flg <> 1";
111        $objQuery->setorder("rank DESC");
112        $this->arrClass = $objQuery->select("name, class_id", "dtb_class", $where);
113        $this->arrClassCatCount = SC_Utils_Ex::sfGetClassCatCount();
114
115        $objView->assignobj($this);
116        $objView->display(MAIN_FRAME);
117    }
118
119    /**
120     * デストラクタ.
121     *
122     * @return void
123     */
124    function destroy() {
125        parent::destroy();
126    }
127
128    /* DBへの挿入 */
129    function lfInsertClass($arrData) {
130        $objQuery = new SC_Query();
131        // INSERTする値を作成する。
132        $sqlval['name'] = $arrData['name'];
133        $sqlval['creator_id'] = $_SESSION['member_id'];
134        $sqlval['rank'] = $objQuery->max("dtb_class", "rank") + 1;
135        $sqlval['create_date'] = "now()";
136        $sqlval['update_date'] = "now()";
137        // INSERTの実行
138        $ret = $objQuery->insert("dtb_class", $sqlval);
139
140        return $ret;
141    }
142
143    /* DBへの更新 */
144    function lfUpdateClass($arrData) {
145        $objQuery = new SC_Query();
146        // UPDATEする値を作成する。
147        $sqlval['name'] = $arrData['name'];
148        $sqlval['update_date'] = "Now()";
149        $where = "class_id = ?";
150        // UPDATEの実行
151        $ret = $objQuery->update("dtb_class", $sqlval, $where, array($arrData['class_id']));
152        return $ret;
153    }
154
155    /* 取得文字列の変換 */
156    function lfConvertParam($array) {
157        // 文字変換
158        $arrConvList['name'] = "KVa";
159
160        foreach ($arrConvList as $key => $val) {
161            // POSTされてきた値のみ変換する。
162            if(isset($array[$key])) {
163                $array[$key] = mb_convert_kana($array[$key] ,$val);
164            }
165        }
166        return $array;
167    }
168
169    /* 入力エラーチェック */
170    function lfErrorCheck() {
171        $objErr = new SC_CheckError();
172        $objErr->doFunc(array("規格名", "name", STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
173
174        if(!isset($objErr->arrErr['name'])) {
175            $objQuery = new SC_Query();
176            $arrRet = $objQuery->select("class_id, name", "dtb_class", "del_flg = 0 AND name = ?", array($_POST['name']));
177            // 編集中のレコード以外に同じ名称が存在する場合
178            if ($arrRet[0]['class_id'] != $_POST['class_id'] && $arrRet[0]['name'] == $_POST['name']) {
179                $objErr->arrErr['name'] = "※ 既に同じ内容の登録が存在します。<br>";
180            }
181        }
182        return $objErr->arrErr;
183    }
184}
185?>
Note: See TracBrowser for help on using the repository browser.