Exemple #1
0
 /**
  * Устанавливает статус "Документы пришли" на юзеров в определенных этапах.
  *
  * @param array $suids массив ключей этап_юзер.
  * @param bool  $mode  если NULL, то развернуть противоположно, иначе жестко установить в заданное значение.
  *
  * @return array данные по первой записи sbr_stages_users с флагом docs_ready -- документы на месте, можно отправлять в "Выплаты".
  */
 public function setDocsReceived($suids, $mode = null)
 {
     if (!is_array($suids)) {
         $suids = array($suids);
     }
     $suids = array_map('pg_escape_string', $suids);
     $mode = $mode === null ? 'NOT(docs_received)' : ($mode ? 'true' : 'false');
     $sql = "UPDATE sbr_stages_users SET docs_received = ?b WHERE stage_id||'_'||user_id IN (?l) RETURNING *, (uploaded_docs & " . sbr::DOCS_REQUIRED . ') = ' . sbr::DOCS_REQUIRED . ' as docs_ready';
     $sql = $this->db()->parse($sql, $mode, $suids);
     if (($res = pg_query(self::connect(), $sql)) && pg_num_rows($res)) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/smail.php';
         $smail = new smail();
         $smail->docsReceivedSBR($suids);
         return pg_fetch_assoc($res);
     }
     return;
 }