/** * Пишет отзыв от одного участника к другому. При необходимости в этой же транзакции пишет отзыв сервису. * * @param array $request данные по отзыву участнику. * @param array $sbr_request данные по отзыву сервису СБР. * @return array отзыв (пропущенный через базу) или false, если ошибка. */ function feedback($request, $sbr_request = NULL) { if ($request['id'] && $request['id'] != $this->data[$this->sbr->upfx . 'feedback_id']) { return false; } $inxact = !!sbr_meta::$XACT_ID; if ($inxact || $this->_openXact(TRUE)) { if ($_POST['sbr_sms_code'] != $_SESSION['close_sbr_smscode']) { $this->error['feedback']['sms'] = 1; } else { $ok = true; if ($sbr_request) { $ok = $this->sbr->feedback($sbr_request); } if (!$ok) { $this->error['sbr_feedback'] = true; } if (($feedback = parent::addFeedback($request, $this->feedback, $err)) && $ok) { $sql = "UPDATE sbr_stages SET {$this->sbr->upfx}feedback_id = ?i WHERE id = ?i"; $sql = $this->db()->parse($sql, $feedback['id'], $this->id); if (pg_query(self::connect(false), $sql)) { if (!$inxact) { $this->_commitXact(); } return $feedback; } } $this->error['feedback'] = $err; } $this->_abortXact(); } return false; }
/** * Пишет отзыв сервису СБР от пользователя. * @see sbr_meta::addFeedback() * * @param array $request данные пользовательского запроса с необходимыми полями. * @return boolean успешно? */ function feedback($request) { if ($request['descr'] == '') { $request['descr'] = ' '; } //return true; // Отзыв сервису теперь не обязателен if ($request['id'] && $request['id'] != $this->data[$this->upfx . 'feedback_id']) { return false; } $inxact = !!sbr_meta::$XACT_ID; if ($inxact || $this->_openXact(TRUE)) { if ($feedback = parent::addFeedback($request, $this->feedback, $err)) { $sql = "UPDATE sbr SET {$this->upfx}feedback_id = ?i WHERE id = ?i"; $sql = $this->db()->parse($sql, $feedback['id'], $this->id); if (pg_query(self::connect(false), $sql)) { if (!$inxact) { $this->_commitXact(); } return $feedback; } } $this->error['feedback'] = $err; $this->_abortXact(); } return false; }