public function delete()
{
if ($this->_recordState === self::STATE_LOADED) {
$gateway = $this->getRecordGateway();
$param = new TActiveRecordChangeEventParameter();
$this->onDelete($param);
if ($param->getIsValid() && $gateway->delete($this)) {
$this->_recordState = self::STATE_DELETED;
return true;
}
} else {
throw new TActiveRecordException('ar_delete_invalid', get_class($this));
}
return false;
}