Changeset 18875 for branches/version-2_5-dev/data/class
- Timestamp:
- 2010/10/29 21:00:06 (16 years ago)
- bzr:base-revision:
- svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18874
- bzr:committer:
- Kentaro Ohkouchi <[email protected]>
- bzr:file-ids:
data/Smarty/templates/admin/order/product_select.tpl 17293@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcomu-ver2%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Forder%2Fproduct_select.tpl
data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php 15594@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Forder%2FLC_Page_Admin_Order_Edit.php
data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php 17293@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcomu-ver2%2Fdata%2Fclass%2Fpages%2Fadmin%2Forder%2FLC_Page_Admin_Order_ProductSelect.php- bzr:mapping-version:
- v4
- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- [email protected]
- bzr:revno:
- 2355
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:timestamp:
- 2010-10-29 21:00:01.309999943 +0900
- bzr:user-agent:
- bzr2.2.0+bzr-svn1.0.3
- svn:original-date:
- 2010-10-29T12:00:01.310000Z
- Location:
- branches/version-2_5-dev/data/class/pages/admin/order
- Files:
-
- 2 edited
-
LC_Page_Admin_Order_Edit.php (modified) (5 diffs)
-
LC_Page_Admin_Order_ProductSelect.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
r18872 r18875 214 214 // POST情報で上書き 215 215 $this->objFormParam->setParam($_POST); 216 if (!empty($_POST['add_product_ id'])) {217 $this->lfInsertProduct($_POST['add_product_ id'], $_POST['add_classcategory_id1'], $_POST['add_classcategory_id2']);218 } elseif (!empty($_POST['edit_product_ id'])) {219 $this->lfUpdateProduct($_POST['edit_product_ id'], $_POST['edit_classcategory_id1'], $_POST['edit_classcategory_id2'], $_POST['no']);216 if (!empty($_POST['add_product_class_id'])) { 217 $this->lfInsertProduct($_POST['add_product_class_id']); 218 } elseif (!empty($_POST['edit_product_class_id'])) { 219 $this->lfUpdateProduct($_POST['edit_product_class_id'], $_POST['no']); 220 220 } 221 221 $arrData = $_POST; … … 695 695 } 696 696 697 function lfInsertProduct($product_id, $classcategory_id1, $classcategory_id2) { 698 $arrProduct = $this->lfGetProductsClass($product_id, $classcategory_id1, $classcategory_id2); 697 function lfInsertProduct($product_class_id) { 698 $objProduct = new SC_Product(); 699 $arrProduct = $this->lfGetProductsClass($objProduct->getDetailAndProductsClass($product_class_id)); 699 700 $this->arrForm = $this->objFormParam->getFormParamList(); 700 701 $existes = false; … … 704 705 foreach ($this->arrForm['product_class_id']['value'] AS $key=>$val) { 705 706 // 既に同じ商品がある場合 706 if ($val == $product_ id && $this->arrForm['product_id']['classcategory_id1'][$key] == $classcategory_id1 && $this->arrForm['product_id']['classcategory_id2'][$key] == $classcategory_id2) {707 if ($val == $product_class_id) { 707 708 $existes = true; 708 709 $existes_key = $key; … … 720 721 } 721 722 722 function lfUpdateProduct($product_id, $classcategory_id1, $classcategory_id2, $no) { 723 $arrProduct = $this->lfGetProductsClass($product_id, $classcategory_id1, $classcategory_id2); 723 function lfUpdateProduct($product_class_id, $no) { 724 $objProduct = new SC_Product(); 725 $arrProduct = $this->lfGetProductsClass($objProduct->getDetailAndProductsClass($product_class_id)); 724 726 $this->arrForm = $this->objFormParam->getFormParamList(); 725 727 $this->lfSetProductData($arrProduct, $no); … … 732 734 } 733 735 if ($no === null) { 734 $this->arrForm[$key]['value'][] = $ arrProduct[$key];736 $this->arrForm[$key]['value'][] = $val; 735 737 } else { 736 $this->arrForm[$key]['value'][$no] = $arrProduct[$key]; 737 } 738 } 739 } 740 741 function lfGetProductsClass($product_class_id) { 742 $objDb = new SC_Helper_DB_Ex(); 743 $arrClassCatName = $objDb->sfGetIDValueList("dtb_classcategory", "classcategory_id", "name"); 744 $arrRet = $objDb->sfGetProductsClass(array($product_class_id), true); 745 746 $arrProduct['price'] = $arrRet['price02']; 738 $this->arrForm[$key]['value'][$no] = $val; 739 } 740 } 741 } 742 743 function lfGetProductsClass($productsClass) { 744 $arrProduct['price'] = $productsClass['price02']; 747 745 $arrProduct['quantity'] = 1; 748 $arrProduct['product_id'] = $ arrRet['product_id'];749 $arrProduct['product_class_id'] = $ arrRet['product_class_id'];750 $arrProduct['point_rate'] = $ arrRet['point_rate'];751 $arrProduct['product_code'] = $ arrRet['product_code'];752 $arrProduct['product_name'] = $ arrRet['name'];753 $arrProduct['classcategory_name1'] = $ arrClassCatName[$arrRet['classcategory_id1']];754 $arrProduct['classcategory_name2'] = $ arrClassCatName[$arrRet['classcategory_id2']];746 $arrProduct['product_id'] = $productsClass['product_id']; 747 $arrProduct['product_class_id'] = $productsClass['product_class_id']; 748 $arrProduct['point_rate'] = $productsClass['point_rate']; 749 $arrProduct['product_code'] = $productsClass['product_code']; 750 $arrProduct['product_name'] = $productsClass['name']; 751 $arrProduct['classcategory_name1'] = $productsClass['classcategory_name1']; 752 $arrProduct['classcategory_name2'] = $productsClass['classcategory_name2']; 755 753 756 754 return $arrProduct; 757 755 } 756 758 757 759 758 /** -
branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php
r18872 r18875 25 25 // {{{ requires 26 26 require_once(CLASS_PATH . "pages/LC_Page.php"); 27 require_once(DATA_PATH . 'module/Services/JSON.php'); 27 28 28 29 /** … … 111 112 } 112 113 113 /*114 * FIXME パフォーマンスに問題があるため SC_Product::lists() を使用する115 */116 114 $objProduct = new SC_Product(); 117 115 $productIds = $objProduct->findProductIds($objQuery, $arrval); … … 142 140 $this->arrProducts = $objProduct->lists($objQuery, $arrval); 143 141 $objProduct->setProductsClassByProductIds($productIds); 142 $objJson = new Services_JSON(); 143 $this->tpl_javascript .= 'productsClassCategories = ' . $objJson->encode($objProduct->classCategories) . '; '; 144 145 foreach ($this->arrProducts as $arrProduct) { 146 $js_fnOnLoad .= "fnSetClassCategories(document.product_form{$arrProduct['product_id']});\n"; 147 } 148 149 $this->tpl_javascript .= 'function fnOnLoad(){' . $js_fnOnLoad . '}'; 150 $this->tpl_onload .= 'fnOnLoad(); '; 151 144 152 // 規格1クラス名 145 153 $this->tpl_class_name1 = $objProduct->className1; … … 155 163 // 規格2が設定されている 156 164 $this->tpl_classcat_find2 = $objProduct->classCat2_find; 157 165 $this->tpl_product_class_id = $objProduct->product_class_id; 158 166 $this->tpl_stock_find = $objProduct->stock_find; 159 $this->tpl_product_class_id = $objProduct->product_class_id;160 $this->tpl_product_type = $objProduct->product_type;161 162 // FIXME 規格のプルダウンを要修正163 $this->tpl_javascript = "";164 167 } 165 168 … … 201 204 } 202 205 } 203 204 // FIXME SC_Product クラスを使用する205 /* 規格セレクトボックスの作成 */206 function lfMakeSelect($product_id, $arrClassName, $arrClassCatName) {207 208 $classcat_find1 = false;209 $classcat_find2 = false;210 // 在庫ありの商品の有無211 $stock_find = false;212 213 // 商品規格情報の取得214 $arrProductsClass = $this->lfGetProductsClass($product_id);215 216 // 規格1クラス名の取得217 $this->tpl_class_name1[$product_id] =218 isset($arrClassName[$arrProductsClass[0]['class_id1']])219 ? $arrClassName[$arrProductsClass[0]['class_id1']]220 : "";221 222 // 規格2クラス名の取得223 $this->tpl_class_name2[$product_id] =224 isset($arrClassName[$arrProductsClass[0]['class_id2']])225 ? $arrClassName[$arrProductsClass[0]['class_id2']]226 : "";227 228 // すべての組み合わせ数229 $count = count($arrProductsClass);230 231 $classcat_id1 = "";232 233 $arrSele = array();234 $arrList = array();235 236 $list_id = 0;237 $arrList[0] = "\tlist". $product_id. "_0 = new Array('選択してください'";238 $arrVal[0] = "\tval". $product_id. "_0 = new Array(''";239 240 for ($i = 0; $i < $count; $i++) {241 // 在庫のチェック242 if($arrProductsClass[$i]['stock'] <= 0 && $arrProductsClass[$i]['stock_unlimited'] != '1') {243 continue;244 }245 246 $stock_find = true;247 248 // 規格1のセレクトボックス用249 if($classcat_id1 != $arrProductsClass[$i]['classcategory_id1']){250 $arrList[$list_id].=");\n";251 $arrVal[$list_id].=");\n";252 $classcat_id1 = $arrProductsClass[$i]['classcategory_id1'];253 $arrSele[$classcat_id1] = $arrClassCatName[$classcat_id1];254 $list_id++;255 256 $arrList[$list_id] = "";257 $arrVal[$list_id] = "";258 }259 260 // 規格2のセレクトボックス用261 $classcat_id2 = $arrProductsClass[$i]['classcategory_id2'];262 263 // セレクトボックス表示値264 if($arrList[$list_id] == "") {265 $arrList[$list_id] = "\tlist". $product_id. "_". $list_id. " = new Array('選択してください', '". $arrClassCatName[$classcat_id2]. "'";266 } else {267 $arrList[$list_id].= ", '".$arrClassCatName[$classcat_id2]."'";268 }269 270 // セレクトボックスPOST値271 if($arrVal[$list_id] == "") {272 $arrVal[$list_id] = "\tval". $product_id. "_". $list_id. " = new Array('', '". $classcat_id2. "'";273 } else {274 $arrVal[$list_id].= ", '".$classcat_id2."'";275 }276 }277 278 $arrList[$list_id].=");\n";279 $arrVal[$list_id].=");\n";280 281 // 規格1282 $this->arrClassCat1[$product_id] = $arrSele;283 284 $lists = "\tlists".$product_id. " = new Array(";285 $no = 0;286 foreach($arrList as $val) {287 $this->tpl_javascript.= $val;288 if ($no != 0) {289 $lists.= ",list". $product_id. "_". $no;290 } else {291 $lists.= "list". $product_id. "_". $no;292 }293 $no++;294 }295 $this->tpl_javascript.= $lists.");\n";296 297 $vals = "\tvals".$product_id. " = new Array(";298 $no = 0;299 foreach($arrVal as $val) {300 $this->tpl_javascript.= $val;301 if ($no != 0) {302 $vals.= ",val". $product_id. "_". $no;303 } else {304 $vals.= "val". $product_id. "_". $no;305 }306 $no++;307 }308 $this->tpl_javascript.= $vals.");\n";309 310 // 選択されている規格2ID311 $classcategory_id = "classcategory_id". $product_id;312 313 $classcategory_id_2 = $classcategory_id . "_2";314 if (!isset($classcategory_id_2)) $classcategory_id_2 = "";315 if (!isset($_POST[$classcategory_id_2])) $_POST[$classcategory_id_2] = "";316 317 $this->tpl_onload .= "lnSetSelect('" . $classcategory_id ."_1', "318 . "'" . $classcategory_id_2 . "',"319 . "'" . $product_id . "',"320 . "'" . $_POST[$classcategory_id_2] ."'); ";321 322 // 規格1が設定されている323 if($arrProductsClass[0]['classcategory_id1'] != '0') {324 $classcat_find1 = true;325 }326 327 // 規格2が設定されている328 if($arrProductsClass[0]['classcategory_id2'] != '0') {329 $classcat_find2 = true;330 }331 332 $this->tpl_classcat_find1[$product_id] = $classcat_find1;333 $this->tpl_classcat_find2[$product_id] = $classcat_find2;334 $this->tpl_stock_find[$product_id] = $stock_find;335 }336 337 /* 商品規格情報の取得 */338 function lfGetProductsClass($product_id) {339 $arrRet = array();340 if(SC_Utils_Ex::sfIsInt($product_id)) {341 // 商品規格取得342 $objQuery = new SC_Query();343 $col = "product_class_id, classcategory_id1, classcategory_id2, class_id1, class_id2, stock, stock_unlimited";344 $table = "vw_product_class AS prdcls";345 $where = "product_id = ?";346 $objQuery->setOrder("rank1 DESC, rank2 DESC");347 $arrRet = $objQuery->select($col, $table, $where, array($product_id));348 }349 return $arrRet;350 }351 206 } 352 207 ?>
Note: See TracChangeset
for help on using the changeset viewer.
