Files
Bridge-and-Join-s/internal/lkgateway/web/templates/admin_incoming.html
T
zuevav da12a9ec1c feat(bj): модуль ЛК на PostgreSQL, обмен с DEPO, боевой ЛК с имитатором НРД, QUIK, НПР
- bj_exchange и «кран» Fancy убраны: данные модуля ЛК в PostgreSQL (схема lk)
- трансферные таблицы FTV_M2M: создание при установке, события, справочник участников
- сверка с DEPO: счёт, ФИО, дата рождения, ИИС по договору, квал-инвестор из опции DEPO
- боевой ЛК ЕСИА Финанс при тестовом ИШ: журнал, отказ через DEPO, статусы в ЛК
- онлайн-лицензирование в bj, план тестирования M2M для контрагента (интерактивный HTML)
- модули QUIK МНП, экспорт QUIK, НПР/УДС; документы и тестовые материалы

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 19:41:12 +03:00

52 lines
3.1 KiB
HTML

{{define "content"}}
<div class="hero">
<h1 class="hero-greeting">Входящие переводы</h1>
<span class="hero-status">Запросы на перевод, где контрагент (или робот в сценарии 3333) — передающая сторона. Нужно ответить: принять или отказать по каждой бумаге.</span>
</div>
<div class="card">
<h2>Список ({{len .Items}})</h2>
{{if .Items}}
<table>
<thead><tr><th>Получен</th><th>GUID</th><th>От кого</th><th>ЦБ</th><th>Статус</th><th></th></tr></thead>
<tbody>
{{range .Items}}
<tr>
<td>{{msk .ReceivedAt}}</td>
<td><code>{{short 8 .GUID}}</code></td>
<td>{{$nm := m2mParty .SenderCode}}{{if not $nm}}{{$nm = m2mParty .SenderINN}}{{end}}{{if $nm}}<strong>{{$nm}}</strong><br>{{end}}<code>{{.SenderCode}}</code>{{if .SenderINN}} · ИНН {{.SenderINN}}{{end}}</td>
<td>{{len .Securities}}</td>
<td>{{$s := inStatus .}}<span class="badge {{$s.Class}}">{{$s.Text}}</span>{{if $s.Outcome}} <span class="badge {{if eq $s.Outcome "Принято"}}confirmed{{else if eq $s.Outcome "Отказано"}}rejected{{else}}awaiting_decision{{end}}">{{$s.Outcome}}</span>{{end}}{{if .DepoSummary}}<br><span class="badge {{if eq .DepoRecommend "confirm"}}confirmed{{else if eq .DepoRecommend "reject"}}rejected{{else}}awaiting_decision{{end}}" style="font-size:11px;margin-top:4px" title="Сверка с DEPO — эмуляция ответа, ничего не отправлено">сверка: {{.DepoSummary}}</span>{{end}}</td>
<td><a href="/admin/incoming/{{.ID}}">{{if eq .Status "answered"}}просмотр{{else}}ответить{{end}} →</a></td>
</tr>
{{end}}
</tbody>
</table>
{{else}}
<p class="muted">Входящих переводов нет. Они появляются, когда другая сторона инициирует перевод к нам (напр. робот НРД в сценарии 3333 «Выступить принимающей стороной»).</p>
{{end}}
<p class="muted" style="font-size:12px;margin-top:10px">🔄 Страница обновляется автоматически при появлении нового входящего.</p>
</div>
<script>
// Авто-обновление: раз в 7с опрашиваем фид; если состав/статусы входящих
// изменились — перезагружаем страницу, чтобы всегда видеть актуальные данные.
(function(){
function sig(d){
if(!d||!d.pending) return String(d&&d.count||0);
return d.pending.map(function(p){return p.id+':'+(p.count||0);}).sort().join(',');
}
var last=null;
async function tick(){
try{
var r=await fetch('/admin/incoming/feed',{headers:{'X-Requested-With':'fetch'}});
if(!r.ok) return;
var d=await r.json(); var s=sig(d);
if(last!==null && s!==last){ location.reload(); return; }
last=s;
}catch(e){}
}
tick(); setInterval(tick, 7000);
})();
</script>
{{end}}