/** * Рексизиты финансов. Утверждение/удаление записи * * @param string $stream_id идентификатор потока * @param int $user_id идентификатор модератора * @param int $from_id идентификатор пользователя * @param int $rec_id идентификатор записи * @param int $rec_type тип записи * @param int $action действие: 1 - утверждено, 2 - удалено * @param string $is_sent было ли отправлено уведомление * @param string $reason причина удаления */ function resolveSbrReqv($stream_id = '', $user_id = 0, $from_id = 0, $rec_id = 0, $rec_type = 0, $action = 1, $is_sent = '', $reason = '') { $bRet = false; $sQuery = 'UPDATE moderation SET moder_num = ?i, status = ?i WHERE rec_id = ?i AND rec_type = ?i AND stream_id = ? RETURNING rec_id'; $sRecId = $GLOBALS['DB']->val($sQuery, $this->nResolveCnt, $action, $rec_id, self::MODER_SBR_REQV, $stream_id); if ($sRecId) { $data = $GLOBALS['DB']->row("\n SELECT \n sr.*,\n COALESCE(srb.src_id::boolean, FALSE) AS is_blocked \n FROM sbr_reqv AS sr\n LEFT JOIN sbr_reqv_blocked AS srb ON srb.src_id = sr.user_id\n WHERE sr.user_id = ?i\n LIMIT 1\n ", $rec_id); if ($data) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/Finance/FinanceSmail.php'; $finSmail = new FinanceSmail(); $bRet = true; if ($action == 1 && $data['is_blocked'] == 't') { //разблокируем если было блокированно $GLOBALS['DB']->query("\n DELETE FROM sbr_reqv_blocked \n WHERE src_id = ?i\n ", $rec_id); //Обновляем статус на "Проверенные данные" if ($GLOBALS['DB']->update('sbr_reqv', array('validate_status' => 2), 'user_id = ?i', $rec_id)) { $finSmail->financeUnBlocked($rec_id); } } elseif ($action == 2 && $data['is_blocked'] != 't') { //блокируем $sBlockId = $GLOBALS['DB']->val("\n INSERT INTO sbr_reqv_blocked (\n src_id, \n admin, \n reason, \n reason_id, \n blocked_time) \n VALUES(?i, ?i, ?, ?i, NOW()) RETURNING id\n ", $rec_id, $user_id, $reason, 0); //Обновляем статус на "Отклоненные данные" if ($GLOBALS['DB']->update('sbr_reqv', array('validate_status' => -1), 'user_id = ?i', $rec_id)) { $finSmail->financeBlocked($rec_id, $reason); } } } } return $bRet; }
/** * Разблокирование сущности, ввиде гномика ;) * * @param string $sId составной уникальный ID сущности */ function unBlocked($sId) { session_start(); $objResponse = new xajaxResponse(); $uid = get_uid(FALSE); list($rec_content_id, $rec_id, $rec_type) = explode('_', $sId); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/permissions.php'; $aPermissions = permissions::getUserPermissions($uid); $user_content = new user_content($uid, $aPermissions); if ($user_content->hasContentPermissions($rec_content_id)) { switch ($rec_content_id) { case user_content::MODER_TSERVICES: require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/tservices/tservices.php'; $tserviceObj = new tservices(); $tserviceObj->unBlocked($rec_id, $uid); $objResponse->script("\$\$('#__tservices_blocked,#__tservices_unblocked').toggleClass('b-button_hide');"); break; case user_content::MODER_SBR_REQV: require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/Finance/FinanceSmail.php'; if (sbr_meta::reqvUnBlocked($rec_id, $uid, $_SESSION['login'])) { $finSmail = new FinanceSmail(); $finSmail->financeUnBlocked($rec_id); $objResponse->script("\$\$('#__finance_blocked,#__finance_unblocked').toggleClass('b-button_hide');"); } break; } } return $objResponse; }