From 320d03ae59420bcd0521614b75f8ae41828eca4e Mon Sep 17 00:00:00 2001 From: Arsen Mirzaev Tatyano-Muradovich Date: Fri, 17 May 2024 19:10:39 +0700 Subject: [PATCH] =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20?= =?UTF-8?q?=D1=81=D0=BE=D1=82=D1=80=D1=83=D0=B4=D0=BD=D0=B8=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B5=D1=81=D0=BB=D0=B8=20=D0=BD=D0=B0=D0=B7=D0=BD=D0=B0=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B4=D1=80=D1=83=D0=B3=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../registry/requests/system/public/robot.php | 48 +++++++++++-------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/mirzaev/spetsresurs/telegram/registry/requests/system/public/robot.php b/mirzaev/spetsresurs/telegram/registry/requests/system/public/robot.php index 27284af..2bb61b2 100755 --- a/mirzaev/spetsresurs/telegram/registry/requests/system/public/robot.php +++ b/mirzaev/spetsresurs/telegram/registry/requests/system/public/robot.php @@ -348,35 +348,41 @@ function request_confirmed(Context $ctx): void // Инициализация инстанции task в базе данных (выбранного задания) $task = collection::search($arangodb->session, sprintf("FOR d IN task FILTER d._key == '%s' && d.published == true && d.completed != true && worker == null RETURN d", $_key)); - if ($worker ??= worker($account->getId())) { - // Найден сотрудник + if ($task instanceof _document) { + // Найдена заявка (подразумевается, что не занята) - // Запись идентификатора нового сотрудника - $task->worker = $worker->id; + if ($worker ??= worker($account->getId())) { + // Найден сотрудник - // Снятие с публикации - $task->published = false; + // Запись идентификатора нового сотрудника + $task->worker = $worker->id; - if (document::update($arangodb->session, $task)) { - // Записано обновление в базу данных + // Снятие с публикации + $task->published = false; - $ctx->getChatDataItem("request_all")->then(function ($requests = []) use ($ctx) { - // Удаление сообщений связанных с запросом - foreach ($requests ?? [] as $_message) $ctx->deleteMessage($_message->getChat()->getId(), $_message->getMessageId()); - }); - $ctx->setChatDataItem("request_all", []); + if (document::update($arangodb->session, $task)) { + // Записано обновление в базу данных - $ctx->getChatDataItem("request_confirmation")->then(function ($message) use ($ctx) { - $ctx->deleteMessage($message->getChat()->getId(), $message->getMessageId()); - }); - $ctx->setChatDataItem("request_confirmation_target", null); + $ctx->getChatDataItem("request_all")->then(function ($requests = []) use ($ctx) { + // Удаление сообщений связанных с запросом + foreach ($requests ?? [] as $_message) $ctx->deleteMessage($_message->getChat()->getId(), $_message->getMessageId()); + }); + $ctx->setChatDataItem("request_all", []); - $ctx->sendMessage("✅ *Вы зарегистрировались на заявку:* \#$_key", ['reply_markup' => ['remove_keyboard' => true]])->then(function () use ($ctx) { + $ctx->getChatDataItem("request_confirmation")->then(function ($message) use ($ctx) { + $ctx->deleteMessage($message->getChat()->getId(), $message->getMessageId()); + }); + $ctx->setChatDataItem("request_confirmation_target", null); + + $ctx->sendMessage("✅ *Вы зарегистрировались на заявку:* \#$_key", ['reply_markup' => ['remove_keyboard' => true]])->then(function () use ($ctx) { + generateMenu($ctx); + }); + + // End of the process + $ctx->endConversation(); + } else $ctx->sendMessage("❎ *Не удалось принять заявку:* \#$_key", ['reply_markup' => ['remove_keyboard' => true]])->then(function () use ($ctx) { generateMenu($ctx); }); - - // End of the process - $ctx->endConversation(); } else $ctx->sendMessage("❎ *Не удалось принять заявку:* \#$_key", ['reply_markup' => ['remove_keyboard' => true]])->then(function () use ($ctx) { generateMenu($ctx); });