Esempio n. 1
0
 /**
  * Пишет отзыв от одного участника к другому. При необходимости в этой же транзакции пишет отзыв сервису.
  *
  * @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;
 }
Esempio n. 2
0
 /**
  * Пишет отзыв сервису СБР от пользователя.
  * @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;
 }