- Timestamp:
- 2010/09/20 20:40:27 (14 years ago)
- bzr:base-revision:
- svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18814
- bzr:committer:
- Kentaro Ohkouchi <nanasess@fsm.ne.jp>
- bzr:file-ids:
data/Smarty/templates/default/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/SC_Initial.php 16506@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_Initial.php
data/class/SC_Product.php 18277@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcomu-ver2%2Fdata%2Fclass%2FSC_Product.php
data/class/SC_Query.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_Query.php
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2Fdbfactory%2FSC_DB_DBFactory_MYSQL.php
data/class/helper/SC_Helper_CSV.php 15535@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fhelper%2FSC_Helper_CSV.php
data/class/helper/SC_Helper_DB.php 15176@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fhelper%2FSC_Helper_DB.php
data/class/pages/admin/contents/LC_Page_Admin_Contents_RecommendSearch.php 15661@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fcontents%2FLC_Page_Admin_Contents_RecommendSearch.php
data/class/pages/admin/customer/LC_Page_Admin_Customer.php 15568@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fcustomer%2FLC_Page_Admin_Customer.php
data/class/pages/admin/mail/LC_Page_Admin_Mail.php 15640@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fmail%2FLC_Page_Admin_Mail.php
data/class/pages/admin/mail/LC_Page_Admin_Mail_Preview.php 15654@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fmail%2FLC_Page_Admin_Mail_Preview.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
data/class/pages/admin/products/LC_Page_Admin_Products.php 15342@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products.php
data/class/pages/admin/products/LC_Page_Admin_Products_Product.php 15342@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_Product.php
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
data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php 15526@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_ProductRank.php
data/class/pages/admin/products/LC_Page_Admin_Products_ProductSelect.php 15557@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_ProductSelect.php
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php 15367@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Ffrontparts%2Fbloc%2FLC_Page_FrontParts_Bloc_Best5.php
data/class/pages/mypage/LC_Page_Mypage_Favorite.php 17162@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcomu-ver2%2Fdata%2Fclass%2Fpages%2Fmypage%2FLC_Page_Mypage_Favorite.php
data/class/pages/products/LC_Page_Products_Detail.php 15154@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fproducts%2FLC_Page_Products_Detail.php
data/class/pages/products/LC_Page_Products_List.php 15154@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fproducts%2FLC_Page_Products_List.php
data/class/pages/rss/LC_Page_Rss_Products.php 16193@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Frss%2FLC_Page_Rss_Products.php
data/class/pages/shopping/LC_Page_Shopping_Complete.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Complete.php
data/class/util/SC_Utils.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Futil%2FSC_Utils.php
data/install.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Finstall.php
data/require_classes.php 18500@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fversion-2_4-dev%2Fdata%2Frequire_classes.php
html/admin/require.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Fadmin%2Frequire.php
html/handle_error.php 18500@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fversion-2_4-dev%2Fhtml%2Fhandle_error.php
html/install/index.php 16809@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Findex.php
html/install/sql/create_table_mysql.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fcreate_table_mysql.sql
html/install/sql/create_table_pgsql.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fcreate_table_pgsql.sql
html/install/sql/create_view.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fcreate_view.sql
html/install/sql/drop_table.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fdrop_table.sql
html/install/sql/drop_view.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fdrop_view.sql
html/install/sql/insert_data.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Finsert_data.sql
html/require.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Frequire.php
test/class/page/LC_Page_Admin_Products_ProductClass_Test.php lc_page_admin_produc-20100910101923-ux7d8xbbsd4inq1c-1- bzr:mapping-version:
- v4
- bzr:merge:
nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- nanasess@fsm.ne.jp-20100920113958-9zux6qc07fmrp1fp
- bzr:revno:
- 2298
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:text-parents:
data/Smarty/templates/default/admin/products/product_class.tpl ohkouchi@loop-az.jp-20100614082324-fsyp4ss6t8s1l9hk
data/class/SC_Initial.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18795 ohkouchi@loop-az.jp-20100910102335-0e7jvlwqa13j60hg
data/class/SC_Product.php ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
data/class/SC_Query.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18813 ohkouchi@loop-az.jp-20100910102335-0e7jvlwqa13j60hg
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php ohkouchi@loop-az.jp-20100826072347-bdrmnk0g8b3llidi
data/class/helper/SC_Helper_CSV.php ohkouchi@loop-az.jp-20100825073846-mzg8ka4y21o1nk6o
data/class/helper/SC_Helper_DB.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/contents/LC_Page_Admin_Contents_RecommendSearch.php ohkouchi@loop-az.jp-20100803084717-9sbbuk4o59x5sio4
data/class/pages/admin/customer/LC_Page_Admin_Customer.php ohkouchi@loop-az.jp-20100803084717-9sbbuk4o59x5sio4
data/class/pages/admin/mail/LC_Page_Admin_Mail.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18798 nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/mail/LC_Page_Admin_Mail_Preview.php ohkouchi@loop-az.jp-20100803084717-9sbbuk4o59x5sio4
data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php ohkouchi@loop-az.jp-20100820090626-dkyj2ngdh7vklaow
data/class/pages/admin/products/LC_Page_Admin_Products.php ohkouchi@loop-az.jp-20100826014156-g12l1o38gsj73acs
data/class/pages/admin/products/LC_Page_Admin_Products_Product.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php ohkouchi@loop-az.jp-20100614082857-g3n9wn9zakpc7a0m
data/class/pages/admin/products/LC_Page_Admin_Products_ProductSelect.php ohkouchi@loop-az.jp-20100820090626-dkyj2ngdh7vklaow
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php ohkouchi@loop-az.jp-20100614082857-g3n9wn9zakpc7a0m
data/class/pages/mypage/LC_Page_Mypage_Favorite.php ohkouchi@loop-az.jp-20100803050621-j3gswdse0qsqamvw
data/class/pages/products/LC_Page_Products_Detail.php ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
data/class/pages/products/LC_Page_Products_List.php ohkouchi@loop-az.jp-20100910102335-0e7jvlwqa13j60hg
data/class/pages/rss/LC_Page_Rss_Products.php ohkouchi@loop-az.jp-20100614082857-g3n9wn9zakpc7a0m
data/class/pages/shopping/LC_Page_Shopping_Complete.php ohkouchi@loop-az.jp-20100819104758-beubop5hq0pwdqhx
data/class/util/SC_Utils.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18812 ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
data/install.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/require_classes.php ohkouchi@loop-az.jp-20100803111301-u8ph4za35y4il0dh
html/admin/require.php ohkouchi@loop-az.jp-20100917043318-0tabp11gm7myhq3v ohkouchi@loop-az.jp-20100917043051-klyair2x9gha0ike
html/handle_error.php ohkouchi@loop-az.jp-20100917043318-0tabp11gm7myhq3v ohkouchi@loop-az.jp-20100917043051-klyair2x9gha0ike
html/install/index.php ohkouchi@loop-az.jp-20100827013725-2fv0j8mz17eczvmd
html/install/sql/create_table_mysql.sql ohkouchi@loop-az.jp-20100825073846-mzg8ka4y21o1nk6o
html/install/sql/create_table_pgsql.sql ohkouchi@loop-az.jp-20100825073846-mzg8ka4y21o1nk6o
html/install/sql/create_view.sql ohkouchi@loop-az.jp-20100910102335-0e7jvlwqa13j60hg
html/install/sql/drop_table.sql ohkouchi@loop-az.jp-20100825073846-mzg8ka4y21o1nk6o
html/install/sql/drop_view.sql ohkouchi@loop-az.jp-20100818061055-lqje64n4qlsd2ke9
html/install/sql/insert_data.sql ohkouchi@loop-az.jp-20100825073846-mzg8ka4y21o1nk6o
html/require.php ohkouchi@loop-az.jp-20100917043318-0tabp11gm7myhq3v ohkouchi@loop-az.jp-20100917043051-klyair2x9gha0ike- bzr:text-revisions:
data/Smarty/templates/default/admin/products/product_class.tpl ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
data/class/SC_Product.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
data/class/helper/SC_Helper_CSV.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/contents/LC_Page_Admin_Contents_RecommendSearch.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/customer/LC_Page_Admin_Customer.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/mail/LC_Page_Admin_Mail_Preview.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/products/LC_Page_Admin_Products.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/admin/products/LC_Page_Admin_Products_ProductSelect.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/mypage/LC_Page_Mypage_Favorite.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/products/LC_Page_Products_Detail.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/products/LC_Page_Products_List.php ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
data/class/pages/rss/LC_Page_Rss_Products.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/class/pages/shopping/LC_Page_Shopping_Complete.php nanasess@fsm.ne.jp-20100920101522-xuj8voqfwpoh4ajv
data/require_classes.php ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
html/install/index.php ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
html/install/sql/create_table_mysql.sql ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
html/install/sql/create_table_pgsql.sql ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
html/install/sql/create_view.sql ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
html/install/sql/drop_table.sql ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
html/install/sql/drop_view.sql ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
html/install/sql/insert_data.sql ohkouchi@loop-az.jp-20100917110247-1czbf0nui8rcj7ht
test/class/page/LC_Page_Admin_Products_ProductClass_Test.php ohkouchi@loop-az.jp-20100910102335-0e7jvlwqa13j60hg- bzr:timestamp:
- 2010-09-20 20:39:58.994999886 +0900
- bzr:user-agent:
- bzr2.1.1+bzr-svn1.0.2
- svn:original-date:
- 2010-09-20T11:39:58.995000Z
- Location:
- branches/version-2_5-dev/data/class/pages/admin/products
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products.php
r18792 r18815 244 244 $order = "update_date DESC, product_id DESC"; 245 245 $objQuery = new SC_Query(); 246 246 $objProduct = new SC_Product(); 247 247 switch($_POST['mode']) { 248 248 case 'csv': … … 253 253 // CSVを送信する。正常終了の場合、終了。 254 254 $objCSV->sfDownloadProductsCsv($where, $arrval, $order) && exit; 255 256 255 break; 257 256 case 'delete_all': 258 257 // 検索結果をすべて削除 259 $where = "product_id IN (SELECT product_id FROM vw_products_allclass_detail AS alldtl WHERE $where)"; 258 $where = "product_id IN (SELECT product_id FROM " 259 . $objProduct->alldtlSQL() . " WHERE $where)"; 260 260 $sqlval['del_flg'] = 1; 261 261 $objQuery->update("dtb_products", $sqlval, $where, $arrval); … … 269 269 // 読み込む列とテーブルの指定 270 270 $col = "product_id, name, main_list_image, status, product_code_min, product_code_max, price02_min, price02_max, stock_min, stock_max, stock_unlimited_min, stock_unlimited_max, update_date"; 271 $from = "vw_products_allclass_detail AS alldtl ";271 $from = $objProduct->alldtlSQL(); 272 272 273 273 // 行数の取得 -
branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php
r18788 r18815 66 66 67 67 $masterData = new SC_DB_MasterData_Ex(); 68 $this->arrSRANK = $masterData->getMasterData("mtb_srank");69 68 $this->arrDISP = $masterData->getMasterData("mtb_disp"); 70 69 $this->arrCLASS = $masterData->getMasterData("mtb_class"); … … 292 291 293 292 if((isset($this->arrForm[$keyname]) && !empty($this->arrForm[$keyname])) && $this->arrForm[$delkey] != 1) { 294 $ arrRet = $objQuery->select("main_list_image, product_code_min, name", "vw_products_allclass AS allcls", "product_id = ?", array($this->arrForm[$keyname]));295 $arrRecommend[$i] = $ arrRet[0];293 $objProduct = new SC_Product(); 294 $arrRecommend[$i] = $objProduct->getDetail($this->arrForm[$keyname]); 296 295 $arrRecommend[$i]['product_id'] = $this->arrForm[$keyname]; 297 296 $arrRecommend[$i]['comment'] = $this->arrForm[$commentkey]; … … 352 351 353 352 $col = "*"; 354 $table = "vw_products_nonclass AS noncls "; 353 $table = <<< __EOF__ 354 dtb_products AS T1 355 LEFT JOIN ( 356 SELECT product_id AS product_id_sub, 357 product_code, 358 price01, 359 price02, 360 stock, 361 stock_unlimited, 362 sale_limit, 363 sale_unlimited, 364 point_rate 365 FROM dtb_products_class 366 WHERE class_combination_id IS NULL 367 ) AS T2 368 ON T1.product_id = T2.product_id_sub 369 __EOF__; 355 370 $where = "product_id = ?"; 356 371 … … 431 446 432 447 // 配列の添字を定義 433 $checkArray = array("name", "status", "product_flag",434 "main_list_comment", "main_comment", "point_rate",448 $checkArray = array("name", "status", 449 "main_list_comment", "main_comment", 435 450 "deliv_fee", "comment1", "comment2", "comment3", 436 451 "comment4", "comment5", "comment6", "main_list_comment", … … 441 456 $sqlval['name'] = $arrList['name']; 442 457 $sqlval['status'] = $arrList['status']; 443 $sqlval['product_flag'] = $arrList['product_flag'];444 458 $sqlval['main_list_comment'] = $arrList['main_list_comment']; 445 459 $sqlval['main_comment'] = $arrList['main_comment']; 446 $sqlval['point_rate'] = $arrList['point_rate'];447 $sqlval['deliv_fee'] = $arrList['deliv_fee'];448 460 $sqlval['comment1'] = $arrList['comment1']; 449 461 $sqlval['comment2'] = $arrList['comment2']; … … 453 465 $sqlval['comment6'] = $arrList['comment6']; 454 466 $sqlval['main_list_comment'] = $arrList['main_list_comment']; 455 $sqlval['sale_limit'] = $arrList['sale_limit'];456 467 $sqlval['deliv_date_id'] = $arrList['deliv_date_id']; 457 468 $sqlval['maker_id'] = $arrList['maker_id']; … … 843 854 if ($objDb->sfHasProductClass($product_id)) return; 844 855 845 // 既存規格の削除846 $where = 'product_id = ?';847 $objQuery->delete('dtb_products_class', $where, array($product_id));848 849 856 // 配列の添字を定義 850 $checkArray = array('product_class_id', 'product_id', 'product_code', 'stock', 'stock_unlimited', 'price01', 'price02' );857 $checkArray = array('product_class_id', 'product_id', 'product_code', 'stock', 'stock_unlimited', 'price01', 'price02', 'sale_limit', 'sale_unlimited', 'deliv_fee', 'point_rate', 'del_flg'); 851 858 $sqlval = SC_Utils_Ex::sfArrayIntersectKeys($arrList, $checkArray); 852 859 $sqlval = SC_Utils_Ex::arrayDefineIndexes($sqlval, $checkArray); 853 860 861 $sqlval['stock_unlimited'] = $sqlval['stock_unlimited'] ? '1' : '0'; 862 $sqlval['creator_id'] = strlen($_SESSION['member_id']) >= 1 ? $_SESSION['member_id'] : '0'; 863 854 864 if (strlen($sqlval['product_class_id']) == 0) { 855 865 $sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id'); 856 } 857 $sqlval['classcategory_id1'] = '0'; 858 $sqlval['classcategory_id2'] = '0'; 859 $sqlval['stock_unlimited'] = $sqlval['stock_unlimited'] ? '1' : '0'; 860 $sqlval['creator_id'] = strlen($_SESSION['member_id']) >= 1 ? $_SESSION['member_id'] : '0'; 861 $sqlval['create_date'] = 'now()'; 862 863 // INSERTの実行 864 $objQuery->insert('dtb_products_class', $sqlval); 865 } 866 $sqlval['create_date'] = 'now()'; 867 $sqlval['update_date'] = 'now()'; 868 // INSERTの実行 869 $objQuery->insert('dtb_products_class', $sqlval); 870 } else { 871 $sqlval['update_date'] = 'now()'; 872 // UPDATEの実行 873 $objQuery->update('dtb_products_class', $sqlval, "product_class_id = ?", array($sqlval['product_class_id'])); 874 875 } 876 } 877 866 878 /* ダウンロードファイル情報の初期化 */ 867 879 function lfInitDownFile() { -
branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php
r18788 r18815 49 49 $this->tpl_subno = 'product'; 50 50 $this->tpl_subtitle = '商品登録(商品規格)'; 51 52 $masterData = new SC_DB_MasterData_Ex(); 53 $this->arrSRANK = $masterData->getMasterData("mtb_srank"); 54 $this->arrDISP = $masterData->getMasterData("mtb_disp"); 55 $this->arrCLASS = $masterData->getMasterData("mtb_class"); 56 $this->arrSTATUS = $masterData->getMasterData("mtb_status"); 57 $this->tpl_onload = ""; 58 } 59 60 /** 61 * Page のプロセス. 62 * 63 * @return void 64 */ 51 } 52 65 53 function process() { 66 $objView = new SC_AdminView(); 67 // 認証可否の判定 68 $objSess = new SC_Session(); 69 SC_Utils_Ex::sfIsSuccess($objSess); 70 71 // 検索パラメータの引き継ぎ 72 foreach ($_POST as $key => $val) { 73 if (ereg("^search_", $key)) { 74 $this->arrSearchHidden[$key] = $val; 75 } 76 } 54 $this->authorization(); 55 56 $this->arrSearchHidden = $this->createSearchParams($_POST); 77 57 78 58 $this->tpl_product_id = 79 59 isset($_POST['product_id']) ? $_POST['product_id'] : "" ; 80 81 60 $this->tpl_pageno = isset($_POST['pageno']) ? $_POST['pageno'] : ""; 82 83 61 if (!isset($_POST['mode'])) $_POST['mode'] = ""; 84 62 85 switch($_POST['mode']) { 86 // 規格削除要求 87 case 'delete': 88 $objQuery = new SC_Query(); 89 $objDb = new SC_Helper_DB_Ex(); 90 91 $objQuery->setLimitOffset(1); 92 $where = "product_id = ? AND NOT (classcategory_id1 = 0 AND classcategory_id2 = 0)"; 93 $objQuery->setOrder("rank1 DESC, rank2 DESC"); 94 $arrRet = $objQuery->select("*", "vw_cross_products_class AS crs_prd", $where, array($_POST['product_id'])); 95 96 if(count($arrRet) > 0) { 97 98 $sqlval['product_id'] = $arrRet[0]['product_id']; 99 $sqlval['classcategory_id1'] = '0'; 100 $sqlval['classcategory_id2'] = '0'; 101 $sqlval['product_code'] = $arrRet[0]['product_code']; 102 $sqlval['stock'] = $arrRet[0]['stock']; 103 $sqlval['price01'] = $arrRet[0]['price01']; 104 $sqlval['price02'] = $arrRet[0]['price02']; 105 $sqlval['creator_id'] = $_SESSION['member_id']; 106 $sqlval['create_date'] = "now()"; 107 $sqlval['update_date'] = "now()"; 108 109 $objQuery->begin(); 110 $where = "product_id = ?"; 111 $objQuery->delete("dtb_products_class", $where, array($_POST['product_id'])); 112 $sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id'); 113 $objQuery->insert("dtb_products_class", $sqlval); 114 115 $objQuery->commit(); 116 } 117 118 // 在庫無し商品の非表示対応 119 if (NOSTOCK_HIDDEN === true) { 120 // 件数カウントバッチ実行 121 $objDb->sfCategory_Count($objQuery); 122 } 123 124 $this->lfProductClassPage(); // 規格登録ページ 125 break; 126 127 // 編集要求 128 case 'pre_edit': 129 $objQuery = new SC_Query(); 130 $where = "product_id = ? AND NOT(classcategory_id1 = 0 AND classcategory_id2 = 0) "; 131 $ret = $objQuery->count("dtb_products_class", $where, array($_POST['product_id'])); 132 133 if($ret > 0) { 134 // 規格組み合わせ一覧の取得(DBの値を優先する。) 135 $this->arrClassCat = $this->lfGetClassCatListEdit($_POST['product_id']); 136 } 137 $this->lfProductClassPage(); // 規格登録ページ 138 break; 139 140 // 規格組み合わせ表示 141 case 'disp': 142 $this->arrForm['select_class_id1'] = $_POST['select_class_id1']; 143 $this->arrForm['select_class_id2'] = $_POST['select_class_id2']; 144 145 $this->arrErr = $this->lfClassError(); 146 if (count($this->arrErr) == 0) { 147 // 規格組み合わせ一覧の取得 148 $this->arrClassCat = $this->lfGetClassCatListDisp($_POST['select_class_id1'], $_POST['select_class_id2']); 149 } 150 $this->lfProductClassPage(); // 規格登録ページ 151 break; 152 153 // 規格登録要求 63 switch ($_POST['mode']) { 154 64 case 'edit': 155 65 // 入力値の変換 156 66 $this->arrForm = $this->lfConvertParam($_POST); 67 157 68 // エラーチェック 158 69 $this->arrErr = $this->lfProductClassError($this->arrForm); 159 160 if(count($this->arrErr) == 0) { 161 // 確認ページ設定 70 if (SC_Utils_Ex::isBlank($this->arrErr)) { 162 71 $this->tpl_mainpage = 'products/product_class_confirm.tpl'; 163 72 $this->lfProductConfirmPage(); // 確認ページ表示 73 164 74 } else { 165 // 規格組み合わせ一覧の取得 166 $this->arrClassCat = $this->lfGetClassCatListDisp($_POST['class_id1'], $_POST['class_id2'], false); 167 $this->lfProductClassPage(); // 規格登録ページ 75 $this->doPreEdit(false); 168 76 } 169 77 break; 170 171 // 確認ページからの戻り 78 79 case 'delete': 80 $this->doDelete(); 81 break; 82 83 case 'pre_edit': 84 $this->doPreEdit(); 85 break; 86 87 case 'disp': 88 $this->doDisp(); 89 break; 90 172 91 case 'confirm_return': 173 92 // フォームパラメータの引き継ぎ … … 176 95 $this->arrForm['select_class_id1'] = ""; 177 96 $this->arrForm['select_class_id2'] = ""; 178 // 規格組み合わせ一覧の取得(デフォルト値は出力しない) 179 $this->arrClassCat = $this->lfGetClassCatListDisp($_POST['class_id1'], $_POST['class_id2'], false); 180 $this->lfProductClassPage(); // 規格登録ページ 97 $this->doPreEdit(false); 181 98 break; 182 99 183 100 case 'complete': 184 101 // 完了ページ設定 185 102 $this->tpl_mainpage = 'products/product_class_complete.tpl'; 186 103 // 商品規格の登録 187 $this-> lfInsertProductClass($_POST, $_POST['product_id']);104 $this->registerProductClass($_POST, $_POST['product_id']); 188 105 break; 189 106 190 107 default: 191 $this->lfProductClassPage(); // 規格登録ページ 192 break; 193 } 194 195 $objView->assignobj($this); 196 $objView->display(MAIN_FRAME); 108 } 109 110 $this->arrClass = $this->getAllClass(); 111 $this->arrForm['product_name'] = $this->getProductName($_POST['product_id']); 112 $this->assignView(); 197 113 } 198 114 … … 206 122 } 207 123 208 /* 規格登録ページ表示用 */ 209 function lfProductClassPage() { 124 /** 125 * 規格の登録または更新を行う. 126 * 127 * TODO dtb_class_combination は, dtb_product_categories に倣って, 128 * DELETE to INSERT だが, UPDATE を検討する. 129 * 130 * @param array $arrList 入力フォームの内容 131 * @param integer $product_id 登録を行う商品ID 132 */ 133 function registerProductClass($arrList, $product_id) { 134 $objQuery =& SC_Query::getSingletonInstance(); 210 135 $objDb = new SC_Helper_DB_Ex(); 211 136 212 $this->arrHidden = $_POST;213 $this->arrHidden['select_class_id1'] = "";214 $this->arrHidden['select_class_id2'] = "";215 $arrClass = $objDb->sfGetIDValueList("dtb_class", 'class_id', 'name');216 217 // 規格分類が登録されていない規格は表示しないようにする。218 $arrClassCatCount = SC_Utils_Ex::sfGetClassCatCount();219 if (count($arrClass) > 0) {220 foreach($arrClass as $key => $val) {221 if($arrClassCatCount[$key] > 0) {222 $this->arrClass[$key] = $arrClass[$key];223 }224 }225 }226 // 商品名を取得227 $objQuery = new SC_Query();228 $product_name = $objQuery->getOne("SELECT name FROM dtb_products WHERE product_id = ?", array($_POST['product_id']));229 $this->arrForm['product_name'] = $product_name;230 }231 232 /**233 * デフォルトの表示234 *235 * @param object $objQuery236 * @param integer $product_id 製品のID237 * @param integer $max 表示される最大値238 */239 function lfSetDefaultClassCat($objQuery, $product_id, $max) {240 241 // デフォルト値の読込242 $col = "product_class_id, product_code, price01, price02, stock, stock_unlimited";243 $arrRet = $objQuery->select($col, "dtb_products_class", "product_id = ? AND classcategory_id1 = 0 AND classcategory_id2 = 0", array($product_id));;244 245 if(count($arrRet) > 0) {246 $no = 1;247 for($cnt = 0; $cnt < $max; $cnt++) {248 $this->arrForm["product_class_id:".$no] = $arrRet[0]['product_class_id'];249 $this->arrForm["product_code:".$no] = $arrRet[0]['product_code'];250 $this->arrForm['stock:'.$no] = $arrRet[0]['stock'];251 $this->arrForm['price01:'.$no] = $arrRet[0]['price01'];252 $this->arrForm['price02:'.$no] = $arrRet[0]['price02'];253 $this->arrForm['stock_unlimited:'.$no] = $arrRet[0]['stock_unlimited'];254 $no++;255 }256 }257 }258 259 /* 規格組み合わせ一覧の取得 */260 function lfGetClassCatListDisp($class_id1, $class_id2, $default = true) {261 $objQuery = new SC_Query();262 263 if($class_id2 != "") {264 // 規格1と規格2265 $sql = "SELECT * ";266 $sql.= "FROM vw_cross_class AS crs_cls ";267 $sql.= "WHERE class_id1 = ? AND class_id2 = ? ORDER BY rank1 DESC, rank2 DESC;";268 $arrRet = $objQuery->getAll($sql, array($class_id1, $class_id2));269 } else {270 // 規格1のみ271 $sql = "SELECT * ";272 $sql.= "FROM vw_cross_class AS crs_cls ";273 $sql.= "WHERE class_id1 = ? AND class_id2 = 0 ORDER BY rank1 DESC;";274 $arrRet = $objQuery->getAll($sql, array($class_id1));275 276 }277 278 $max = count($arrRet);279 280 if($default) {281 // デフォルト値を設定282 $this->lfSetDefaultClassCat($objQuery, $_POST['product_id'], $max);283 }284 285 $this->arrForm["class_id1"] = $arrRet[0]['class_id1'];286 $this->arrForm["class_id2"] = $arrRet[0]['class_id2'];287 $this->tpl_onload.= "fnCheckAllStockLimit('$max', '" . DISABLED_RGB . "');";288 289 return $arrRet;290 }291 292 /* 規格組み合わせ一覧の取得(編集画面) */293 function lfGetClassCatListEdit($product_id) {294 // 既存編集の場合295 $objQuery = new SC_Query();296 297 $col = "class_id1, class_id2, name1, name2, rank1, rank2, ";298 $col.= "product_class_id, product_id, T1_classcategory_id AS classcategory_id1, T2_classcategory_id AS classcategory_id2, ";299 $col.= "product_code, stock, stock_unlimited, sale_limit, price01, price02, status";300 301 $sql = "SELECT $col FROM ";302 $sql.= "( ";303 $sql.= "SELECT T1.class_id AS class_id1, T2.class_id AS class_id2, T1.classcategory_id AS T1_classcategory_id, T2.classcategory_id AS T2_classcategory_id, T1.name AS name1, T2.name AS name2, T1.rank AS rank1, T2.rank AS rank2 ";304 $sql.= "FROM dtb_classcategory AS T1, dtb_classcategory AS T2 ";305 $sql.= "WHERE T1.class_id IN (SELECT class_id1 FROM vw_cross_products_class AS crs_prd WHERE product_id = ? GROUP BY class_id1, class_id2) AND T2.class_id IN (SELECT class_id2 FROM vw_cross_products_class AS crs_prd WHERE product_id = ? GROUP BY class_id1, class_id2)";306 $sql.= ") AS T1 ";307 308 $sql.= "LEFT JOIN (SELECT * FROM dtb_products_class WHERE product_id = ?) AS T3 ";309 $sql.= "ON T1_classcategory_id = T3.classcategory_id1 AND T2_classcategory_id = T3.classcategory_id2 ";310 $sql.= "ORDER BY rank1 DESC, rank2 DESC";311 312 $arrList = $objQuery->getAll($sql, array($product_id, $product_id, $product_id));313 314 $this->arrForm["class_id1"] = $arrList[0]['class_id1'];315 $this->arrForm["class_id2"] = $arrList[0]['class_id2'];316 317 $max = count($arrList);318 319 // デフォルト値を設定320 $this->lfSetDefaultClassCat($objQuery, $product_id, $max);321 $no = 1;322 for($cnt = 0; $cnt < $max; $cnt++) {323 $this->arrForm["classcategory_id1:".$no] = $arrList[$cnt]['classcategory_id1'];324 $this->arrForm["classcategory_id2:".$no] = $arrList[$cnt]['classcategory_id2'];325 $this->arrForm["product_class_id:".$no] = $arrList[$cnt]['product_class_id'];326 if($arrList[$cnt]['product_id'] != "") {327 $this->arrForm["product_code:".$no] = $arrList[$cnt]['product_code'];328 $this->arrForm['stock:'.$no] = $arrList[$cnt]['stock'];329 $this->arrForm['stock_unlimited:'.$no] = $arrList[$cnt]['stock_unlimited'];330 $this->arrForm['price01:'.$no] = $arrList[$cnt]['price01'];331 $this->arrForm['price02:'.$no] = $arrList[$cnt]['price02'];332 // JavaScript初期化用文字列333 $line.= "'check:".$no."',";334 }335 $no++;336 }337 338 $line = ereg_replace(",$", "", $line);339 $this->tpl_javascript = "list = new Array($line);";340 $color = DISABLED_RGB;341 $this->tpl_onload.= "fnListCheck(list); fnCheckAllStockLimit('$max', '$color');";342 343 return $arrList;344 }345 346 /* 規格の登録 */347 function lfInsertProductClass($arrList, $product_id) {348 $objQuery = new SC_Query();349 $objDb = new SC_Helper_DB_Ex();350 351 137 $objQuery->begin(); 352 138 353 // 既存規格の削除 354 $where = "product_id = ?"; 355 $objQuery->delete("dtb_products_class", $where, array($product_id)); 356 357 $cnt = 1; 358 // すべての規格を登録する。 359 while($arrList["classcategory_id1:".$cnt] != "") { 360 if($arrList["check:".$cnt] == 1) { 361 $sqlval = array(); 362 $sqlval['product_id'] = $product_id; 363 $sqlval['classcategory_id1'] = $arrList["classcategory_id1:".$cnt]; 364 $sqlval['classcategory_id2'] = $arrList["classcategory_id2:".$cnt]; 365 if( strlen($arrList["product_class_id:".$cnt]) > 0 ){ 366 $sqlval['product_class_id'] = $arrList["product_class_id:".$cnt]; 367 } 368 $sqlval['product_code'] = $arrList["product_code:".$cnt]; 369 $sqlval['stock'] = $arrList["stock:".$cnt]; 370 $sqlval['stock_unlimited'] = ($arrList["stock_unlimited:".$cnt]) ? '1' : '0'; 371 $sqlval['price01'] = $arrList['price01:'.$cnt]; 372 $sqlval['price02'] = $arrList['price02:'.$cnt]; 373 $sqlval['creator_id'] = $_SESSION['member_id']; 374 $sqlval['create_date'] = "now()"; 375 $sqlval['update_date'] = "now()"; 376 // INSERTの実行 377 $objQuery->insert("dtb_products_class", $sqlval); 378 } 379 $cnt++; 380 } 381 139 $productsClass = $objQuery->select("*", "dtb_products_class", "product_id = ?", array($product_id)); 140 141 $exists = array(); 142 foreach ($productsClass as $val) { 143 $exists[$val['product_class_id']] = $val; 144 } 145 146 $i = 1; 147 while (isset($arrList['classcategory_id1:' . $i])) { 148 $pVal = array(); 149 $pVal['product_id'] = $product_id;; 150 $pVal['product_code'] = $arrList["product_code:".$i]; 151 $pVal['stock'] = $arrList["stock:".$i]; 152 $pVal['stock_unlimited'] = ($arrList["stock_unlimited:".$i]) ? '1' : '0'; 153 $pVal['price01'] = $arrList['price01:'.$i]; 154 $pVal['price02'] = $arrList['price02:'.$i]; 155 $pVal['creator_id'] = $_SESSION['member_id']; 156 $pVal['update_date'] = "now()"; 157 158 if($arrList["check:".$i] == 1) { 159 $pVal['del_flg'] = 0; 160 } else { 161 $pVal['del_flg'] = 1; 162 } 163 164 // 更新 or 登録 165 $isUpdate = false; 166 if (!SC_Utils_Ex::isBlank($arrList["product_class_id:".$i])) { 167 $isUpdate = true; 168 // 更新の場合は規格組み合わせを検索し, 削除しておく 169 $class_combination_id = $exists[$arrList["product_class_id:".$i]]['class_combination_id']; 170 $existsCombi = $objQuery->getRow("dtb_class_combination", 171 "*", "class_combination_id = ?", 172 array($class_combination_id)); 173 174 $objQuery->delete("dtb_class_combination", 175 "class_combination_id IN (?, ?)", 176 array($existsCombi['class_combination_id'], 177 $existsCombi['parent_class_combination_id'])); 178 } 179 180 // 規格組み合わせを登録 181 $cVal1['class_combination_id'] = $objQuery->nextVal('dtb_class_combination_class_combination_id'); 182 183 $cVal1['classcategory_id'] = $arrList["classcategory_id1:".$i]; 184 $cVal1['level'] = 1; 185 $objQuery->insert("dtb_class_combination", $cVal1); 186 187 $pVal['class_combination_id'] = $cVal1['class_combination_id']; 188 189 // 規格2も登録する場合 190 if (!SC_Utils_Ex::isBlank($arrList["classcategory_id2:".$i])) { 191 $cVal2['class_combination_id'] = $objQuery->nextVal('dtb_class_combination_class_combination_id'); 192 $cVal2['classcategory_id'] = $arrList["classcategory_id2:".$i]; 193 $cVal2['parent_class_combination_id'] = $cVal1['class_combination_id']; 194 $cVal2['level'] = 2; 195 $objQuery->insert("dtb_class_combination", $cVal2); 196 197 $pVal['class_combination_id'] = $cVal2['class_combination_id']; 198 } 199 200 // 更新 201 if ($isUpdate) { 202 $pVal['product_class_id'] = $arrList["product_class_id:".$i]; 203 $objQuery->update("dtb_products_class", $pVal, 204 "product_class_id = ?", 205 array($pVal['product_class_id'])); 206 } 207 // 新規登録 208 else { 209 $pVal['create_date'] = "now()"; 210 $pVal['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id'); 211 $objQuery->insert("dtb_products_class", $pVal); 212 } 213 $i++; 214 } 215 216 // 規格無し用の商品規格を非表示に 217 $bVal['del_flg'] = 1; 218 $bVal['update_date'] = 'now()'; 219 $objQuery->update("dtb_products_class", $bVal, 220 "product_class_id = ? AND class_combination_id IS NULL", 221 array($pVal['product_class_id'])); 222 382 223 // 件数カウントバッチ実行 383 224 $objDb->sfCategory_Count($objQuery); 384 385 225 $objQuery->commit(); 386 226 } … … 467 307 $this->tpl_count = $cnt; 468 308 } 309 310 /** 311 * 規格の組み合わせ一覧を表示する. 312 * 313 * 1. 規格1, 規格2を組み合わせた場合の妥当性を検証する. 314 * 2. 規格1, 規格2における規格分類のすべての組み合わせを取得し, 315 * 該当商品の商品規格の内容を取得し, フォームに設定する. 316 */ 317 function doDisp() { 318 $this->arrForm['select_class_id1'] = $_POST['select_class_id1']; 319 $this->arrForm['select_class_id2'] = $_POST['select_class_id2']; 320 321 $this->arrErr = $this->lfClassError(); 322 if (SC_Utils_Ex::isBlank($this->arrErr)) { 323 $this->arrClassCat = $this->getAllClassCategory($_POST['select_class_id1'], $_POST['select_class_id2']); 324 325 $productsClass = $this->getProductsClass($_POST['product_id']); 326 327 $total = count($this->arrClassCat); 328 for ($i = 1; $i <= $total; $i++) { 329 foreach ($productsClass as $key => $val) { 330 $this->arrForm[$key . ":" . $i] = $val; 331 } 332 } 333 } 334 $this->tpl_onload.= "fnCheckAllStockLimit('$total', '" . DISABLED_RGB . "');"; 335 } 336 337 /** 338 * 規格編集画面を表示する. 339 */ 340 function doPreEdit($existsValue = true) { 341 $existsProductsClass = $this->getProductsClassAndClasscategory($_POST['product_id']); 342 $productsClass = $this->getProductsClass($_POST['product_id']); 343 $this->arrForm["class_id1"] = $existsProductsClass[0]['class_id1']; 344 $this->arrForm["class_id2"] = $existsProductsClass[0]['class_id2']; 345 $this->arrForm['select_class_id1'] = $this->arrForm["class_id1"]; 346 $this->arrForm['select_class_id2'] = $this->arrForm["class_id2"]; 347 348 $this->arrClassCat = $this->getAllClassCategory($this->arrForm["class_id1"], $this->arrForm["class_id2"]); 349 $total = count($this->arrClassCat); 350 for ($i = 1; $i <= $total; $i++) { 351 if ($existsValue) { 352 foreach ($productsClass as $key => $val) { 353 $this->arrForm[$key . ":" . $i] = $val; 354 } 355 } 356 foreach ($existsProductsClass[$i] as $key => $val) { 357 $this->arrForm[$key . ":" . $i] = $val; 358 } 359 if (!SC_Utils_Ex::isBlank($this->arrForm['product_id:' . $i]) 360 && $this->arrForm["del_flg:" . $i] == 0) { 361 $line .= "'check:" . $i . "',"; 362 } 363 } 364 365 $line = preg_replace("/,$/", "", $line); 366 $this->tpl_javascript = "list = new Array($line);"; 367 $color = DISABLED_RGB; 368 $this->tpl_onload.= "fnListCheck(list); fnCheckAllStockLimit('$total', '$color');"; 369 } 370 371 function doDelete() { 372 $objQuery =& SC_Query::getSingletonInstance(); 373 374 $objQuery->begin(); 375 $val['del_flg'] = 0; 376 $objQuery->update("dtb_products_class", $val, "product_id = ? AND class_combination_id IS NULL", array($_POST['product_id'])); 377 378 $val['del_flg'] = 1; 379 $objQuery->update("dtb_products_class", $val, "product_id = ? AND class_combination_id IS NOT NULL", array($_POST['product_id'])); 380 381 $objQuery->commit(); 382 383 // 在庫無し商品の非表示対応 384 if (NOSTOCK_HIDDEN === true) { 385 // 件数カウントバッチ実行 386 //$objDb->sfCategory_Count($objQuery); 387 } 388 } 389 390 /** 391 * 規格ID1, 規格ID2の規格分類すべてを取得する. 392 * 393 * @param integer $class_id1 規格ID1 394 * @param integer $class_id2 規格ID2 395 * @return array 規格と規格分類の配列 396 */ 397 function getAllClassCategory($class_id1, $class_id2 = null) { 398 $objQuery =& SC_Query::getSingletonInstance(); 399 400 $col = "T1.class_id AS class_id1, " 401 . " T1.classcategory_id AS classcategory_id1, " 402 . " T1.name AS name1, " 403 . " T1.rank AS rank1 "; 404 405 if(SC_Utils_Ex::isBlank($class_id2)) { 406 $table = "dtb_classcategory T1 "; 407 $objQuery->setWhere("T1.class_id = ?") 408 ->setOrder("T1.rank DESC"); 409 $val = array($class_id1); 410 } else { 411 $col .= "," 412 . "T2.class_id AS class_id2," 413 . "T2.classcategory_id AS classcategory_id2," 414 . "T2.name AS name2," 415 . "T2.rank AS rank2"; 416 $table = "dtb_classcategory AS T1, dtb_classcategory AS T2"; 417 $objQuery->setWhere("T1.class_id = ? AND T2.class_id = ?") 418 ->setOrder("T1.rank DESC, T2.rank DESC"); 419 $val = array($class_id1, $class_id2); 420 } 421 return $objQuery->select($col, $table, "", $val); 422 } 423 424 /** 425 * 商品名を取得する. 426 * 427 * @access private 428 * @param integer $product_id 商品ID 429 * @return string 商品名の文字列 430 */ 431 function getProductName($product_id) { 432 $objQuery =& SC_Query::getSingletonInstance(); 433 return $objQuery->getOne("SELECT name FROM dtb_products WHERE product_id = ?", array($product_id)); 434 } 435 436 /** 437 * 検索パラメータを生成する. 438 * 439 * "search_" で始まるパラメータのみを生成して返す. 440 * 441 * TODO パラメータの妥当性検証 442 * 443 * @access private 444 * @param array $params 生成元の POST パラメータ 445 * @return array View にアサインするパラメータの配列 446 */ 447 function createSearchParams($params) { 448 $results = array(); 449 foreach ($params as $key => $val) { 450 if (substr($key, 0, 7) == "search_") { 451 $results[$key] = $val; 452 } 453 } 454 return $results; 455 } 456 457 /** 458 * 規格分類の登録された, すべての規格を取得する. 459 * 460 * @access private 461 * @return array 規格分類の登録された, すべての規格 462 */ 463 function getAllClass() { 464 $objDb = new SC_Helper_DB_Ex(); 465 $arrClass = $objDb->sfGetIDValueList("dtb_class", 'class_id', 'name'); 466 467 // 規格分類が登録されていない規格は表示しないようにする。 468 $arrClassCatCount = SC_Utils_Ex::sfGetClassCatCount(); 469 470 $results = array(); 471 if (!SC_Utils_Ex::isBlank($arrClass)) { 472 foreach($arrClass as $key => $val) { 473 if($arrClassCatCount[$key] > 0) { 474 $results[$key] = $arrClass[$key]; 475 } 476 } 477 } 478 return $results; 479 } 480 481 /** 482 * 商品IDをキーにして, 商品規格を取得する. 483 * 484 * @param integer $product_id 商品ID 485 * @return array 商品規格の配列 486 */ 487 function getProductsClass($product_id) { 488 $objQuery =& SC_Query::getSingletonInstance(); 489 return $objQuery->getRow("dtb_products_class", "*", "product_id = ?", array($product_id)); 490 } 491 492 /** 493 * 登録済みの商品規格, 規格, 規格分類を取得する. 494 * 495 * @param integer $product_id 商品ID 496 * @return array 商品規格, 規格, 規格分類の配列 497 */ 498 function getProductsClassAndClasscategory($productId) { 499 $objProduct = new SC_Product(); 500 return $objProduct->getProductsClassFullByProductId($productId); 501 } 502 503 /** 504 * @access private 505 */ 506 function authorization() { 507 SC_Utils_Ex::sfIsSuccess(new SC_Session()); 508 } 509 510 /** 511 * @access private 512 */ 513 function assignView() { 514 $objView = new SC_AdminView(); 515 $objView->assignobj($this); 516 $objView->display(MAIN_FRAME); 517 } 469 518 } 470 519 ?> -
branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php
r18701 r18815 139 139 /* 商品読み込み */ 140 140 function lfGetProduct($category_id) { 141 // FIXME SC_Product クラスを使用した実装 141 142 $objQuery = new SC_Query(); 142 143 $col = "product_id, name, main_list_image, product_code_min, product_code_max, status"; -
branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductSelect.php
r18789 r18815 105 105 $order = "update_date DESC, product_id DESC "; 106 106 107 // 読み込む列とテーブルの指定108 $col = "product_id, name, category_id, main_list_image, status, product_code, price01, stock, stock_unlimited";109 $from = "vw_products_nonclass AS noncls ";110 111 107 $objQuery = new SC_Query(); 112 108 // 行数の取得 … … 135 131 $objQuery->setOrder($order); 136 132 137 // viewも絞込みをかける(mysql用)138 //sfViewWhere("&&noncls_where&&", $where, $arrval, $objQuery->order . " " . $objQuery->setLimitOffset($page_max, $startno, true));139 140 133 // 検索結果の取得 141 $this->arrProducts = $objQuery->select($col, $from, $where, $arrval); 134 // FIXME 商品コードの表示 135 $this->arrProducts = $objQuery->select("*", SC_Product::alldtlSQL(), $where, $arrval); 142 136 } 143 137
Note: See TracChangeset
for help on using the changeset viewer.