/** * カテゴリの削除を実行する. * * 下記の場合は削除を実施せず、エラーメッセージを表示する. * * - 削除対象のカテゴリに、子カテゴリが1つ以上ある場合 * - 削除対象のカテゴリを、登録商品が使用している場合 * * カテゴリの削除は、物理削除で行う. * * @param SC_FormParam $objFormParam * @param SC_Helper_Db $objDb * @return void */ public function doDelete(&$objFormParam, &$objDb) { $category_id = $objFormParam->getValue('category_id'); $objQuery =& SC_Query_Ex::getSingletonInstance(); // 子カテゴリのチェック $where = 'parent_category_id = ? AND del_flg = 0'; $exists = $objQuery->exists('dtb_category', $where, array($category_id)); if ($exists) { $this->arrErr['category_name'] = '※ 子カテゴリが存在するため削除できません。<br/>'; return; } // 登録商品のチェック $table = 'dtb_product_categories AS T1 LEFT JOIN dtb_products AS T2 ON T1.product_id = T2.product_id'; $where = 'T1.category_id = ? AND T2.del_flg = 0'; $exists = $objQuery->exists($table, $where, array($category_id)); if ($exists) { $this->arrErr['category_name'] = '※ カテゴリ内に商品が存在するため削除できません。<br/>'; return; } // ランク付きレコードの削除(※処理負荷を考慮してレコードごと削除する。) $objDb->sfDeleteRankRecord('dtb_category', 'category_id', $category_id, '', true); }
/** * カテゴリの削除を実行する. * * 下記の場合は削除を実施せず、エラーメッセージを表示する. * * - 削除対象のカテゴリに、子カテゴリが1つ以上ある場合 * - 削除対象のカテゴリを、登録商品が使用している場合 * * カテゴリの削除は、物理削除で行う. * * @param SC_FormParam $objFormParam * @param SC_Helper_Db $objDb * @return void */ function doDelete(&$objFormParam, &$objDb) { $category_id = $objFormParam->getValue('category_id'); $objQuery =& SC_Query_Ex::getSingletonInstance(); // 子カテゴリのチェック $where = 'parent_category_id = ? AND del_flg = 0'; $exists = $objQuery->exists('dtb_category', $where, array($category_id)); if ($exists) { $this->arrErr['category_name'] = t('c_* Cannot be deleted since a subcategory exists.<br/>_01'); return; } // 登録商品のチェック $table = 'dtb_product_categories AS T1 LEFT JOIN dtb_products AS T2 ON T1.product_id = T2.product_id'; $where = 'T1.category_id = ? AND T2.del_flg = 0'; $exists = $objQuery->exists($table, $where, array($category_id)); if ($exists) { $this->arrErr['category_name'] = t('c_* The category cannot be deleted since there are products in the category.<br/>_01'); return; } // ランク付きレコードの削除(※処理負荷を考慮してレコードごと削除する。) $objDb->sfDeleteRankRecord('dtb_category', 'category_id', $category_id, '', true); }
/** * カテゴリの削除を実行する. * * 下記の場合は削除を実施せず、エラーメッセージを表示する. * * - 削除対象のカテゴリに、子カテゴリが1つ以上ある場合 * - 削除対象のカテゴリを、登録商品が使用している場合 * * カテゴリの削除は、物理削除で行う. * * @param SC_FormParam $objFormParam * @param SC_Helper_Db $objDb * @return void */ function doDelete(&$objFormParam, &$objDb) { $category_id = $objFormParam->getValue('category_id'); $objQuery =& SC_Query_Ex::getSingletonInstance(); // 子カテゴリのチェック $where = "parent_category_id = ? AND del_flg = 0"; $count = $objQuery->count("dtb_category", $where, array($category_id)); if ($count > 0) { $this->arrErr['category_name'] = "※ 子カテゴリが存在するため削除できません。<br/>"; return; } // 登録商品のチェック $table = "dtb_product_categories AS T1 LEFT JOIN dtb_products AS T2 ON T1.product_id = T2.product_id"; $where = "T1.category_id = ? AND T2.del_flg = 0"; $count = $objQuery->count($table, $where, array($category_id)); if ($count > 0) { $this->arrErr['category_name'] = "※ カテゴリ内に商品が存在するため削除できません。<br/>"; return; } // ランク付きレコードの削除(※処理負荷を考慮してレコードごと削除する。) $objDb->sfDeleteRankRecord("dtb_category", "category_id", $category_id, "", true); }