Changeset 20612 for branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php
- Timestamp:
- 2011/03/11 19:09:51 (13 years ago)
- bzr:base-revision:
- svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:20611
- bzr:committer:
- Kentaro Ohkouchi <ohkouchi@loop-az.jp>
- bzr:file-ids:
data/Smarty/templates/admin/products/product_class.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fproducts%2Fproduct_class.tpl
data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php 15559@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_ProductClass.php- bzr:mapping-version:
- v4
- bzr:merge:
ohkouchi@loop-az.jp-20110311100151-b2qqh7unjvi547g6- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- ohkouchi@loop-az.jp-20110311100948-jl8i21u8du1aliub
- bzr:revno:
- 3339
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:timestamp:
- 2011-03-11 19:09:48.875000000 +0900
- bzr:user-agent:
- bzr2.2.1+bzr-svn1.0.4
- svn:original-date:
- 2011-03-11T10:09:48.875000Z
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php
r20595 r20612 36 36 // }}} 37 37 // {{{ functions 38 /** ダウンロード用ファイル管理クラスのインスタンス */39 var $objDownFile;40 41 /** hidden 項目の配列 */42 var $arrHidden;43 38 44 39 /** … … 93 88 // 編集実行 94 89 case 'edit': 95 // エラーチェック 96 $this->arrErr = $this->lfProductClassError($objFormParam->getHashArray()); 97 if (empty($this->arrErr)){ 90 91 $this->arrErr = $this->lfCheckProductsClass($objFormParam); 92 93 // エラーの無い場合は確認画面を表示 94 if (SC_Utils_Ex::isBlank($this->arrErr)) { 98 95 $this->tpl_mainpage = 'products/product_class_confirm.tpl'; 99 96 $this->doDisp($objFormParam); 100 97 $objFormParam->setParam($_POST); 101 98 $objFormParam->convParam(); 102 103 } else { 104 $this->doPreEdit($objFormParam->getValue('product_id'), false ,true); 99 } 100 // エラーが発生した場合 101 else { 102 $objFormParam->setParam($_POST); 103 $objFormParam->convParam(); 104 105 105 /* TODO 106 106 // Hiddenからのデータを引き継ぐ … … 111 111 $this->arrForm = array_merge((array)$this->arrForm, (array)$this->objDownFile->getFormKikakuDownFile()); 112 112 */ 113 $this->doDisp($objFormParam);114 $objFormParam->setParam($_POST);115 $objFormParam->convParam();116 117 113 } 118 114 break; … … 126 122 case 'pre_edit': 127 123 $this->doPreEdit($objFormParam); 124 128 125 /* TODO 129 126 // HIDDEN用に配列を渡す。 … … 134 131 // 「表示する」ボタン押下時 135 132 case 'disp': 136 $this->arrErr = $this->lfC lassError();133 $this->arrErr = $this->lfCheckSelectClass(); 137 134 if (SC_Utils_Ex::isBlank($this->arrErr)) { 138 135 $this->doDisp($objFormParam); … … 142 139 // ダウンロード商品ファイルアップロード 143 140 case 'upload_down': 141 144 142 /* TODO 145 143 $product_id = $objFormParam->getValue('product_id'); … … 166 164 // ダウンロードファイルの削除 167 165 case 'delete_down': 166 168 167 /* TODO 169 168 $product_id = $objFormParam->getValue('product_id'); … … 203 202 break; 204 203 case 'complete': 205 // 完了ページ設定206 204 $this->tpl_mainpage = 'products/product_class_complete.tpl'; 207 // ファイル情報の初期化 208 // Hiddenからのデータを引き継ぐ 209 $this->objDownFile->setHiddenFileList($_POST); 210 // 商品規格の登録 211 $arrList = $objFormParam->getHashArray(); 212 $this->registerProductClass($arrList, $objFormParam->getValue('product_id'), 205 // TODO $this->objDownFile->setHiddenFileList($_POST); 206 207 $this->registerProductClass($objFormParam->getHashArray(), $objFormParam->getValue('product_id'), 213 208 $objFormParam->getValue('total')); 209 // TODO 214 210 // 一時ファイルを本番ディレクトリに移動する 215 $this->objDownFile->moveTempDownFile();211 // $this->objDownFile->moveTempDownFile(); 216 212 break; 217 213 … … 273 269 $objFormParam->addParam("規格名2", "classcategory_name2", STEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK")); 274 270 $objFormParam->addParam("商品規格ID", "product_class_id", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); 275 $objFormParam->addParam("在庫数", "stock", AMOUNT_LEN, 'n', array(" EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));271 $objFormParam->addParam("在庫数", "stock", AMOUNT_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK")); 276 272 $objFormParam->addParam("在庫数", "stock_unlimited", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); 277 273 $objFormParam->addParam(NORMAL_PRICE_TITLE, "price01", PRICE_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK")); 278 $objFormParam->addParam(SALE_PRICE_TITLE, "price02", PRICE_LEN, 'n', array(" EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));274 $objFormParam->addParam(SALE_PRICE_TITLE, "price02", PRICE_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK")); 279 275 $objFormParam->addParam("商品種別", "product_type_id", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); 280 276 $objFormParam->addParam("削除フラグ", "del_flg", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); … … 418 414 * @return array エラーの配列 419 415 */ 420 function lfC lassError() {416 function lfCheckSelectClass() { 421 417 $objErr = new SC_CheckError_Ex(); 422 418 $objErr->doFunc(array("規格1", "select_class_id1"), array("EXIST_CHECK")); … … 426 422 } 427 423 428 // 商品規格エラーチェック 429 function lfProductClassError($array) { 430 $objErr = new SC_CheckError_Ex($array); 431 $no = 1; // FIXME 未定義変数の修正 432 while($array["classcategory_id1:".$no] != "") { 433 if($array["check:".$no] == 1) { 434 $objErr->doFunc(array("商品コード", "product_code:".$no, STEXT_LEN), array("MAX_LENGTH_CHECK")); 435 $objErr->doFunc(array(NORMAL_PRICE_TITLE, "price01:".$no, PRICE_LEN), array("NUM_CHECK", "MAX_LENGTH_CHECK")); 436 $objErr->doFunc(array(SALE_PRICE_TITLE, "price02:".$no, PRICE_LEN), array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 437 438 if($array["stock_unlimited:".$no] != '1') { 439 $objErr->doFunc(array("在庫数", "stock:".$no, AMOUNT_LEN), array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 424 /** 425 * 商品規格エラーチェック. 426 * 427 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 428 * @return array エラー結果の配列 429 */ 430 function lfCheckProductsClass(&$objFormParam) { 431 $arrValues = $objFormParam->getHashArray(); 432 $arrErr = $objFormParam->checkError(); 433 $total = $objFormParam->getValue('total'); 434 435 if (SC_Utils_Ex::isBlank($arrValues['check'])) { 436 $arrErr['check_empty'] = '※ 商品種別が選択されていません。<br />'; 437 } 438 439 for ($i = 0; $i < $total; $i++) { 440 441 /* 442 * チェックボックスの入っている項目のみ, 必須チェックを行う. 443 * エラーを配列で返す必要があるため, SC_CheckError を使用しない. 444 */ 445 if (!SC_Utils_Ex::isBlank($arrValues['check'][$i])) { 446 447 /* 448 * 販売価格の必須チェック 449 */ 450 if (SC_Utils_Ex::isBlank($arrValues['price02'][$i])) { 451 $arrErr['price02'][$i] = '※ ' . SALE_PRICE_TITLE . 'が入力されていません。<br />'; 440 452 } 441 442 // 商品種別チェック 443 if (empty($array['product_type_id:' . $no])) { 444 $objErr->arrErr['product_type_id:' . $no] = "※ 商品種別は、いずれかを選択してください。<br />"; 453 /* 454 * 在庫数の必須チェック 455 */ 456 if ((SC_Utils_Ex::isBlank($arrValues['stock_unlimited'][$i]) 457 || $arrValues['stock_unlimited'][$i] != 1) 458 459 && SC_Utils_Ex::isBlank($arrValues['stock'][$i])) { 460 $arrErr['stock'][$i] = '※ 在庫数が入力されていません。<br />'; 445 461 } 446 447 //ダウンロード商品チェック 448 if($array["product_type_id:".$no] == PRODUCT_TYPE_DOWNLOAD) { 449 $objErr->doFunc(array("ダウンロードファイル名", "down_filename:".$no, STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 450 if($array["down_realfilename:".$no] == "") { 451 $objErr->arrErr["down_realfilename:".$no] = "※ ダウンロード商品の場合はダウンロード商品用ファイルをアップロードしてください。<br />"; 462 /* 463 * 商品種別の必須チェック 464 */ 465 if (SC_Utils_Ex::isBlank($arrValues['product_type_id'][$i])) { 466 $arrErr['product_type_id'][$i] = "※ 商品種別は、いずれかを選択してください。<br />"; 467 } 468 /* 469 * ダウンロード商品の必須チェック 470 */ 471 if($arrValues['product_type_id'][$i] == PRODUCT_TYPE_DOWNLOAD) { 472 if (SC_Utils_Ex::isBlank($arrValues['down_filename'][$i])) { 473 $arrErr['down_filename'][$i] = "※ ダウンロード商品の場合はダウンロードファイル名を入力してください。<br />"; 474 } 475 if (SC_Utils_Ex::isBlank($arrValues['down_realfilename'][$i])) { 476 $arrErr['down_realfilename'][$i] = "※ ダウンロード商品の場合はダウンロード商品用ファイルをアップロードしてください。<br />"; 452 477 } 453 478 } 454 //実商品チェック 455 else if($array["product_type_id:".$no] == PRODUCT_TYPE_DOWNLOAD) { 456 if($array["down_filename:".$no] != "") { 457 $objErr->arrErr["down_filename:".$no] = "※ 実商品の場合はダウンロードファイル名を設定できません。<br />"; 479 /* 480 * 通常商品チェック 481 */ 482 else if ($arrValues['product_type_id'][$i] == PRODUCT_TYPE_NORMAL) { 483 if (!SC_Utils_Ex::isBlank($arrValues['down_filename'][$i])) { 484 $arrErr['down_filename'] = "※ 通常商品の場合はダウンロードファイル名を設定できません。<br />"; 458 485 } 459 if ($array["down_realfilename:".$no] != "") {460 $ objErr->arrErr["down_realfilename:".$no] = "※ 実商品の場合はダウンロード商品用ファイルをアップロードできません。<br />ファイルを取り消してください。<br />";486 if (!SC_Utils_Ex::isBlank($arrValues['down_realfilename'][$i])) { 487 $arrErr['down_realfilename'][$i] = "※ 実商品の場合はダウンロード商品用ファイルをアップロードできません。<br />ファイルを取り消してください。<br />"; 461 488 } 462 489 } 463 490 } 464 if (count($objErr->arrErr) > 0) { 465 $objErr->arrErr["error:".$no] = $objErr->arrErr["product_type_id:".$no]; 466 $objErr->arrErr["error:".$no] .= $objErr->arrErr["product_code:".$no]; 467 $objErr->arrErr["error:".$no] .= $objErr->arrErr["price01:".$no]; 468 $objErr->arrErr["error:".$no] .= $objErr->arrErr["price02:".$no]; 469 $objErr->arrErr["error:".$no] .= $objErr->arrErr["stock:".$no]; 470 $objErr->arrErr["error:".$no] .= $objErr->arrErr["stock:".$no]; 471 $objErr->arrErr["error:".$no] .= $objErr->arrErr["down_filename:".$no]; 472 $objErr->arrErr["error:".$no] .= $objErr->arrErr["down_realfilename:".$no]; 473 } 474 $no++; 475 } 476 return $objErr->arrErr; 491 } 492 return $arrErr; 477 493 } 478 494 … … 523 539 function doPreEdit(&$objFormParam) { 524 540 $product_id = $objFormParam->getValue('product_id'); 525 $existsProductsClass = $this->getProductsClassAndClasscategory($product_id); 541 $objProduct = new SC_Product_Ex(); 542 $existsProductsClass = $objProduct->getProductsClassFullByProductId($product_id, true); 526 543 527 544 $class_id1 = $existsProductsClass[0]['class_id1']; … … 550 567 $objFormParam->setValue('check', $arrChecks); 551 568 569 // class_id1, class_id2 を上書き 570 $objFormParam->setValue('class_id1', $class_id1); 571 $objFormParam->setValue('class_id2', $class_id2); 572 552 573 // DBデータからダウンロードファイル名の読込 553 574 $this->objDownFile->setDBFileList($this->arrForm); … … 590 611 $objQuery =& SC_Query_Ex::getSingletonInstance(); 591 612 592 $col = "T1.class_id AS class_id1, " 593 . " T1.classcategory_id AS classcategory_id1, " 594 . " T1.name AS classcategory_name1, " 595 . " T1.rank AS rank1 "; 596 613 $col = <<< __EOF__ 614 T1.class_id AS class_id1, 615 T1.classcategory_id AS classcategory_id1, 616 T1.name AS classcategory_name1, 617 T1.rank AS rank1 618 __EOF__; 597 619 $table = ''; 598 620 $arrParams = array(); … … 603 625 $arrParams = array($class_id1); 604 626 } else { 605 $col .= "," 606 . "T2.class_id AS class_id2," 607 . "T2.classcategory_id AS classcategory_id2," 608 . "T2.name AS classcategory_name2," 609 . "T2.rank AS rank2"; 627 $col .= <<< __EOF__ 628 , 629 T2.class_id AS class_id2, 630 T2.classcategory_id AS classcategory_id2, 631 T2.name AS classcategory_name2, 632 T2.rank AS rank2 633 __EOF__; 610 634 $table = "dtb_classcategory AS T1, dtb_classcategory AS T2"; 611 635 $objQuery->setWhere("T1.class_id = ? AND T2.class_id = ?"); … … 626 650 $objQuery =& SC_Query_Ex::getSingletonInstance(); 627 651 return $objQuery->get('name', 'dtb_products', 'product_id = ?', array($product_id)); 628 }629 630 /**631 * 検索パラメータを生成する.632 *633 * "search_" で始まるパラメータのみを生成して返す.634 *635 * TODO パラメータの妥当性検証636 *637 * @access private638 * @param array $params 生成元の POST パラメータ639 * @return array View にアサインするパラメータの配列640 */641 function createSearchParams($params) {642 $results = array();643 foreach ($params as $key => $val) {644 if (substr($key, 0, 7) == "search_") {645 $results[$key] = $val;646 }647 }648 return $results;649 652 } 650 653 … … 685 688 return $objQuery->getRow($col, "dtb_products_class", "product_id = ? AND class_combination_id IS NULL", array($product_id)); 686 689 } 687 688 /**689 * 登録済みの商品規格, 規格, 規格分類を取得する.690 *691 * @param integer $product_id 商品ID692 * @return array 商品規格, 規格, 規格分類の配列693 */694 function getProductsClassAndClasscategory($productId) {695 $objProduct = new SC_Product_Ex();696 return $objProduct->getProductsClassFullByProductId($productId, true);697 }698 690 }
Note: See TracChangeset
for help on using the changeset viewer.