Files
Bridge-and-Join-s/internal/lkgateway/web/templates/admin_quik_instructions.html
T

101 lines
8.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{{define "content"}}
{{if .Flash}}<div style="padding:12px 16px;background:var(--ok-weak);border-radius:8px;margin-bottom:16px">{{.Flash}}</div>{{end}}
<p class="muted" style="font-size:12.5px;margin:0 0 10px">{{quikRecipientsInfo}}</p>
<div class="card">
<style>
.qk-steps{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.qk-step{padding:6px 10px;border-radius:9px;border:1.5px solid var(--border);font-size:12.5px;background:var(--card-2)}
.qk-step.ok{border-color:color-mix(in srgb,#16a34a 45%,transparent);background:color-mix(in srgb,#16a34a 12%,var(--card));color:#0f7a37;font-weight:600}
.qk-step.bad{border-color:color-mix(in srgb,#dc2626 45%,transparent);background:color-mix(in srgb,#dc2626 10%,var(--card));color:#b3261e;font-weight:600}
.qk-state{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700}
.qk-state.registered{background:color-mix(in srgb,#d97706 15%,var(--card));color:#9a6b12}
.qk-state.signed,.qk-state.deposited{background:color-mix(in srgb,#16a34a 15%,var(--card));color:#0f7a37}
.qk-state.denied{background:var(--card-2);color:var(--muted)}
.qk-state.error{background:color-mix(in srgb,#dc2626 15%,var(--card));color:#b3261e}
.qk-state.manual{background:color-mix(in srgb,#2563eb 12%,var(--card));color:#1d4ed8}
</style>
<h2>Цикл M2M: поручения, которые ведёт bj</h2>
<p class="muted" style="font-size:12.5px">Записи в МНП: <b>{{if .Cycle.WritesEnabled}}включены{{else}}выключены{{end}}</b> · исходящие: {{if .Cycle.AutoOut}}авто{{else}}вручную{{end}} · входящие: {{if .Cycle.AutoIn}}авто{{else}}вручную{{end}} · поручения из терминала: {{if .Cycle.PollTerminal}}подхватываются{{else}}не отслеживаются{{end}} — <a href="/admin/setup#sec-quik-cycle">настроить</a>.</p>
{{if not .Links}}<p class="muted">Пока пусто.</p>{{else}}
<table style="font-size:12.5px">
<thead><tr><th>Когда</th><th>Перевод</th><th>Направление</th><th>Клиент</th><th>Бумага</th><th>Поручение МНП</th><th>Состояние</th><th>Последний шаг</th></tr></thead>
<tbody>{{range .Links}}<tr>
<td style="white-space:nowrap">{{msk .UpdatedAt}}</td>
<td>{{if .IsTerminal}}<span class="muted">из терминала</span>{{else}}<a href="/admin/claims?guid={{.GUID}}"><code>{{short 8 .GUID}}</code></a>{{end}}</td>
<td>{{if eq .Direction "out"}}↗ вывод{{else}}↘ ввод{{end}}</td>
<td><code>{{.ClientID}}</code>{{if .Contract}} <span class="muted">{{.Contract}}</span>{{end}}</td>
<td><code>{{.ISIN}}</code> × {{.Qty}}</td>
<td>{{if .InstrNo}}<b>№{{.InstrNo}}</b>{{else}}—{{end}}</td>
<td><span class="qk-state {{.State}}">{{.StateRu}}</span>{{if .Err}}<div style="color:#b3261e;font-size:11.5px">{{.Err}}</div>{{end}}</td>
<td class="muted" style="font-size:11.5px">{{with .LastStep}}{{.Action}}: {{.Reply}}{{end}}</td>
</tr>{{end}}</tbody>
</table>{{end}}
</div>
{{if .Cycle.PollTerminal}}
<div class="hero">
<h1 class="hero-greeting">Поручения QUIK (M2M)</h1>
<span class="hero-status">Неторговые поручения на вывод/ввод ЦБ из Модуля неторговых поручений QUIK. Бумаги по ним уже заблокированы на позиции клиента. Режим — только чтение{{if .DBName}} (БД {{.DBName}}){{end}}.</span>
</div>
<div class="card">
<h2>Как это работает</h2>
<p class="muted" style="line-height:1.7">
Клиент подаёт «Вывод ЦБ (M2M)» из терминала QUIK / мобильного / ЛК → сервер QUIK проверяет остаток и <strong>блокирует бумаги</strong> → поручение попадает в экспортную таблицу МНП → <strong>bj читает его отсюда</strong>, проверяет по депозитарию и отправляет перевод в НРД (MOEX МОСТ) → по ответу НРД поручение <em>подписывается</em> (списание) либо <em>снимается</em> (разблокировка).
<br>Сейчас реализовано <strong>чтение</strong>; запись (подпись/снятие/регистрация) — следующий этап.</p>
</div>
<div class="card">
<h2>
{{if .OnlyActive}}Активные поручения{{else}}Все поручения M2M{{end}} ({{len .Items}})
<span style="float:right;font-size:13px;font-weight:400">
{{if .OnlyActive}}<a href="/admin/quik?all=1">показать все</a>{{else}}<a href="/admin/quik">только активные</a>{{end}}
· <a href="/admin/setup#quik">настройки</a>
</span>
</h2>
{{if .Error}}<p style="color:var(--err)">{{.Error}}</p>{{end}}
{{if .Items}}
<div style="overflow-x:auto">
<table>
<thead><tr>
<th>№ / ID</th><th>Зарегистрировано</th><th>Клиент</th><th>Договор</th>
<th>Бумага (ISIN)</th><th>Кол-во</th><th>Заблок.</th><th>Депозитарий получателя (ИНН)</th><th>Статус</th>
</tr></thead>
<tbody>
{{range .Items}}
<tr>
<td><code>{{.Number}}</code><br><span class="muted" style="font-size:11px">id {{.InstrID}}{{if .ExtID}} · ext {{.ExtID}}{{end}}</span></td>
<td style="white-space:nowrap">{{.Registered}}</td>
<td><code>{{.ClientID}}</code></td>
<td>{{.AgreeServ}}</td>
<td>{{if .ISIN}}<code>{{.ISIN}}</code>{{end}}{{if .SecCode}}<br><span class="muted" style="font-size:11px">{{.SecCode}} / {{.ClassCode}}</span>{{end}}</td>
<td style="text-align:right">{{.Volume}}</td>
<td style="text-align:right">{{if .QtyBlocked}}<b>{{.QtyBlocked}}</b>{{else}}—{{end}}</td>
<td>{{if .RecipINN}}<code>{{.RecipINN}}</code>{{else}}<span class="muted">—</span>{{end}}
{{if .PassExpense}}<br><span class="muted" style="font-size:11px">+ расходы</span>{{end}}
{{if .CloseIIA}}<br><span class="muted" style="font-size:11px">закрытие ИИС</span>{{end}}</td>
<td>
{{if eq .Status 0}}<span class="badge awaiting_decision">{{.StatusName}}</span>
{{else if eq .Status 1}}<span class="badge confirmed">{{.StatusName}}</span>
{{else}}<span class="badge rejected">{{.StatusName}}</span>{{end}}
{{if .Deny}}<br><span class="muted" style="font-size:11px">{{.Deny}}</span>{{end}}
</td>
</tr>
{{end}}
</tbody>
</table>
</div>
{{else if not .Error}}
<p class="muted">Поручений M2M пока нет{{if .OnlyActive}} в активном статусе — <a href="/admin/quik?all=1">посмотреть все</a>{{end}}. Они появятся, когда клиент подаст «Вывод ЦБ (M2M)» в QUIK.</p>
{{end}}
</div>
{{else}}
<div class="card">
<h2>Поручения из терминала QUIK — не отслеживаются</h2>
<p class="muted" style="line-height:1.6">Опция «Принимаем поручения M2M из QUIK» выключена: клиентам и фирме не разрешена подача «Вывод ЦБ (M2M)» из терминала / мобильного приложения, поэтому bj их не опрашивает и не показывает. Все переводы ведутся через заявки bj (таблица выше).
<br>Если брокер откроет клиентам эту возможность (классы INSTROUTM2M/INSTRINM2M в QuikAdmin), включите опцию в <a href="/admin/setup#quik">Настройка → QUIK МНП → Цикл M2M</a> — bj начнёт подхватывать такие поручения и создавать по ним заявки оператору.
<br><span style="font-size:12px">В перспективе: при подключении модуля управления правами клиентов (QuikAdmin) опция будет назначаться клиенту автоматически вместе с нужными классами.</span></p>
</div>
{{end}}
{{end}}