diff --git a/Web/Presenters/SupportPresenter.php b/Web/Presenters/SupportPresenter.php
index c9267b18..1b930e88 100644
--- a/Web/Presenters/SupportPresenter.php
+++ b/Web/Presenters/SupportPresenter.php
@@ -169,6 +169,13 @@ final class SupportPresenter extends OpenVKPresenter
$_redirect = "/support?act=list";
}
+ $helpdeskChat = OPENVK_ROOT_CONF["openvk"]["credentials"]["telegram"]["helpdeskChat"];
+ if ($helpdeskChat) {
+ $serverUrl = ovk_scheme(true) . $_SERVER["SERVER_NAME"];
+ $telegramText = "❌ Тикет под названием "{$ticket->getName()}" от {$ticket->getUser()->getCanonicalName()} ({$ticket->getUser()->getRegistrationIP()}) был удалён.\n";
+ Telegram::send($helpdeskChat, $telegramText);
+ }
+
$ticket->delete();
$this->redirect($_redirect);
}
@@ -200,6 +207,16 @@ final class SupportPresenter extends OpenVKPresenter
$comment->setCreated(time());
$comment->save();
+ $helpdeskChat = OPENVK_ROOT_CONF["openvk"]["credentials"]["telegram"]["helpdeskChat"];
+ if ($helpdeskChat) {
+ $serverUrl = ovk_scheme(true) . $_SERVER["SERVER_NAME"];
+ $commentText = ovk_proc_strtr($this->postParam("text"), 1500);
+ $telegramText = "💬 Новый комментарий от автора тикета "{$ticket->getName()}"\n";
+ $telegramText .= "$commentText\n\n";
+ $telegramText .= "Автор: {$ticket->getUser()->getCanonicalName()} ({$ticket->getUser()->getRegistrationIP()})\n";
+ Telegram::send($helpdeskChat, $telegramText);
+ }
+
$this->redirect("/support/view/" . $id);
} else {
$this->flashFail("err", tr("error"), tr("you_have_not_entered_text"));
@@ -227,15 +244,33 @@ final class SupportPresenter extends OpenVKPresenter
{
$this->assertPermission('openvk\Web\Models\Entities\TicketReply', 'write', 0);
+ $support_names = new SupportAgents();
+ $agent = $support_names->get($this->user->id);
$ticket = $this->tickets->get($id);
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$this->willExecuteWriteAction();
+ $helpdeskChat = OPENVK_ROOT_CONF["openvk"]["credentials"]["telegram"]["helpdeskChat"];
+
if (!empty($this->postParam("text")) && !empty($this->postParam("status"))) {
- $ticket->setType($this->postParam("status"));
+ $status = $this->postParam("status");
+ $ticket->setType($status);
$ticket->save();
+ switch ($status) {
+ default:
+ # NOTICE falling through
+ case 0:
+ $state = "Вопрос на рассмотрении";
+ break;
+ case 1:
+ $state = "Есть ответ";
+ break;
+ case 2:
+ $state = "Закрыто";
+ }
+
$comment = new TicketComment();
$comment->setUser_id($this->user->id);
$comment->setUser_type(1);
@@ -243,9 +278,40 @@ final class SupportPresenter extends OpenVKPresenter
$comment->setTicket_Id($id);
$comment->setCreated(time());
$comment->save();
+
+ if ($helpdeskChat) {
+ $serverUrl = ovk_scheme(true) . $_SERVER["SERVER_NAME"];
+ $commentText = ovk_proc_strtr($this->postParam("text"), 1500);
+ $telegramText = "💬 Новый комментарий от агента к тикету "{$ticket->getName()}"\n";
+ $telegramText .= "Статус: {$state}\n\n";
+ $telegramText .= "$commentText\n\n";
+ $telegramText .= "Агент: user->id}'>{$agent->getCanonicalName()} ({$agent->getRealName()})\n";
+ Telegram::send($helpdeskChat, $telegramText);
+ }
} elseif (empty($this->postParam("text"))) {
- $ticket->setType($this->postParam("status"));
+ $status = $this->postParam("status");
+ $ticket->setType($status);
$ticket->save();
+
+ switch ($status) {
+ default:
+ # NOTICE falling through
+ case 0:
+ $state = "Вопрос на рассмотрении";
+ break;
+ case 1:
+ $state = "Есть ответ";
+ break;
+ case 2:
+ $state = "Закрыто";
+ }
+
+ if ($helpdeskChat) {
+ $serverUrl = ovk_scheme(true) . $_SERVER["SERVER_NAME"];
+ $telegramText = "🔔 Изменён статус тикета "{$ticket->getName()}": {$state}\n\n";
+ $telegramText .= "Агент: user->id}'>{$agent->getCanonicalName()} ({$agent->getRealName()})\n";
+ Telegram::send($helpdeskChat, $telegramText);
+ }
}
$this->flashFail("succ", tr("ticket_changed"), tr("ticket_changed_comment"));
@@ -442,6 +508,13 @@ final class SupportPresenter extends OpenVKPresenter
$ticket->setType(2);
$ticket->save();
+ $helpdeskChat = OPENVK_ROOT_CONF["openvk"]["credentials"]["telegram"]["helpdeskChat"];
+ if ($helpdeskChat) {
+ $serverUrl = ovk_scheme(true) . $_SERVER["SERVER_NAME"];
+ $telegramText = "🔒 Тикет под названием "{$ticket->getName()}" от {$ticket->getUser()->getCanonicalName()} ({$ticket->getUser()->getRegistrationIP()}) был закрыт автором.\n";
+ Telegram::send($helpdeskChat, $telegramText);
+ }
+
$this->flashFail("succ", tr("ticket_changed"), tr("ticket_changed_comment"));
}
}