<?php
/**
* СодеÑÐ¶Ð¸Ñ ÐºÐ»Ð°ÑÑ ProductStatusEditor
*
* @package energine
* @subpackage shop
* @author dr.Pavka
* @copyright ColoCall 2007
* @version $Id: ProductStatusEditor.class.php,v 1.3 2007/12/17 14:24:30 pavka Exp $
*/
//require_once('core/modules/share/components/Grid.class.php');
/**
* РедакÑÐ¾Ñ ÑÑаÑÑÑов пÑодÑкÑов
*
* @package energine
* @subpackage shop
*/
class ProductStatusEditor extends Grid {
/**
* ÐонÑÑÑÑкÑÐ¾Ñ ÐºÐ»Ð°ÑÑа
*
* @param string $name
* @param string $module
* @param Document $document
* @param array $params
* @access public
*/
public function __construct($name, $module, Document $document, array $params = null) {
parent::__construct($name, $module, $document, $params);
$this->setTableName('shop_product_statuses');
}
/**
* ÐизейблиÑÑÑ Ð´ÐµÑолÑное знаÑение
*
* @return void
* @access protected
*/
protected function edit() {
parent::edit();
if($this->getData()->getFieldByName('ps_is_default')->getRowData(0) === true) {
$this->getDataDescription()->getFieldDescriptionByName('ps_is_default')->setMode(FieldDescription::FIELD_MODE_READ);
}
}
/**
* ÐÑи добавлении вÑÑÑавлÑем ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¿Ñав в минималÑно возможнÑй видимÑй
*
* @return void
* @access protected
*/
protected function add() {
parent::add();
$this->getData()->getFieldByName('right_id')->setData(FieldDescription::FIELD_MODE_READ);
$this->getData()->getFieldByName('ps_is_visible')->setData(true);
}
/**
* Снимаем пÑизнак деÑолÑного знаÑениÑ
*
* @return mixed
* @access protected
*/
protected function saveData() {
if (isset($_POST[$this->getTableName()]['ps_is_default']) && $_POST[$this->getTableName()]['ps_is_default']) {
$this->dbh->modify(QAL::UPDATE, $this->getTableName(), array('ps_is_default'=>0), array('ps_is_default'=>1));
}
parent::saveData();
}
/**
* Ðе даем ÑдалиÑÑ Ð´ÐµÑолÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ
*
* @return void
* @access protected
*/
protected function deleteData($id) {
if ($this->dbh->select($this->getTableName(), array('ps_id'), array('ps_is_default'=>1, 'ps_id'=>$id)) !== true) {
throw new SystemException('ERR_DEFAULT_STATUS', SystemException::ERR_CRITICAL);
}
parent::deleteData($id);
}
/**
* ÐозвÑаÑÐ°ÐµÑ Ð¿ÐµÑеÑÐµÐ½Ñ ÑÑаÑÑÑов ÑоваÑов видимÑÑ
Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм ÑÑовнем пÑав
*
* @param int ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¿Ñав
* @return array
* @access public
* @static
*/
static public function getVisibleStatuses($rightsLevel) {
return simplifyDBResult(DBWorker::$dbhInstance->select('shop_product_statuses', 'ps_id', 'right_id <= '.$rightsLevel),'ps_id');
}
/**
* ÐозвÑаÑÐ°ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ Ð´ÐµÑолÑного ÑÑаÑÑÑа
*
* @return int
* @access public
* @static
*/
static public function getDefaultStatus() {
return simplifyDBResult(DBWorker::$dbhInstance->select('shop_product_statuses', 'ps_id', array('ps_is_default'=>1)), 'ps_id', true);
}
}