/** * Устанавливает статус "Документы пришли" на юзеров в определенных этапах. * * @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; }