6fc0ff5d3d
Квитанции ЭДО НРД (пакеты C, «Уведомление о получении Пакетов…») разбираются: для нашей анкеты (#M2MPF…) — отметка «доставлена в НРД» с временем, ошибка первичной обработки — отказ с текстом квитанции. Ответ сервиса: INFO — «принята в обработку», OK — принята, ERROR — отказ с кодом; документ-ответ M2MTransferParticipantForm — регистрация подтверждена. Всё видно в строке «Исходящих», на странице анкеты и в плашке раздела НРД. После запуска bj перечитывает квитанции за день отправки, если отметки ещё нет (22.10 на 9 квитанция пришла раньше). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
40 lines
3.6 KiB
HTML
40 lines
3.6 KiB
HTML
{{define "content"}}
|
|
{{if .Flash}}<div class="card" style="background:var(--accent-weak,#e7f0fb)">{{.Flash}}</div>{{end}}
|
|
<div class="card">
|
|
<h2>Журнал заявок <span class="muted">({{.List.Total}})</span></h2>
|
|
{{template "listTools" .List}}
|
|
<table>
|
|
<thead><tr><th>Создана</th><th>ID</th><th>GUID M2M</th><th>Инвестор</th><th>ЦБ</th><th>Передающий</th><th>Принимающий</th><th>Статус</th><th></th></tr></thead>
|
|
<tbody id="claims-body">
|
|
{{range .Rows}}{{template "claimrow" .}}{{end}}
|
|
</tbody>
|
|
</table>
|
|
{{if not .Rows}}<p class="muted">{{if .List.Q.FromS}}За выбранный период ничего нет.{{else}}Пусто.{{end}}</p>{{end}}
|
|
{{template "listMore" .List}}
|
|
</div>
|
|
{{end}}
|
|
|
|
{{/* Строка «Исходящих»: заявка на перевод или анкета участника M2M (исходящий пакет в НРД и ответ на него). */}}
|
|
{{define "claimrow"}}{{if .R}}{{with .R}}<tr>
|
|
<td>{{.SentAt.Format "02.01 15:04:05"}}</td>
|
|
<td><code>{{.PkgID}}</code></td>
|
|
<td><span class="muted">—</span></td>
|
|
<td><strong>Анкета участника M2M</strong>{{if .Name}}<br><span style="font-size:11px">{{.Name}}</span>{{end}}</td>
|
|
<td><span class="muted">—</span></td>
|
|
<td><span style="font-size:11px">{{index orgEff "Name"}}</span></td>
|
|
<td><span style="font-size:11px">НРД</span></td>
|
|
<td><span class="badge {{.StatusClass}}">{{.StatusText}}</span>{{if .RespText}}<div class="live live-{{if eq .StatusClass "rejected"}}bad{{else}}ok{{end}}">{{.RespAt.Format "02.01 15:04"}} · {{.RespText}}</div>{{end}}{{if and .RespAt.IsZero (not .DeliveredAt.IsZero)}}<div class="live live-wait">квитанция НРД {{.DeliveredAt.Format "02.01 15:04:05"}}: пакет получен, ошибок нет</div>{{end}}</td>
|
|
<td><a href="/admin/setup/participant-form">анкета →</a></td>
|
|
</tr>{{end}}{{else}}{{with .C}}
|
|
<tr>
|
|
<td>{{.CreatedAt.Format "02.01 15:04:05"}}</td>
|
|
<td><code>{{short 8 .ID}}</code></td>
|
|
<td><code>{{short 8 (printf "%s" .M2MGUID)}}</code></td>
|
|
<td>{{.Investor.LastName}} {{initial .Investor.FirstName}}</td>
|
|
<td>{{len .Securities}}</td>
|
|
<td>{{$f := m2mParty .TransferringDepositoryINN}}{{if $f}}<span style="font-size:11px">{{$f}}</span><br>{{end}}<code style="font-size:11px">{{.TransferringDepositoryINN}}</code></td>
|
|
<td>{{$t := m2mParty .ReceivingDepositoryINN}}{{if $t}}<span style="font-size:11px">{{$t}}</span><br>{{end}}<code style="font-size:11px">{{.ReceivingDepositoryINN}}</code></td>
|
|
<td>{{$l := liveOut .}}<span class="badge {{.Status}}">{{ruState .Status}}</span><div class="live live-{{$l.Kind}}" data-live="out:{{.ID}}"{{if $l.Active}} data-active="1"{{else}} title="Завершено: состояние больше не проверяется"{{end}}>{{$l.Text}}</div></td>
|
|
<td><a href="/admin/claims/{{.ID}}">детали →</a>{{if and (or (eq .Status "draft") (eq .Status "validated")) (can "operate")}}<form method="post" action="/admin/claims/{{.ID}}/delete-draft" style="margin:4px 0 0" onsubmit="return confirm('Удалить заявку? Она ещё не уходила в НРД. Если по ней бумаги заблокированы в QUIK МНП, блокировка будет снята.');"><button type="submit" class="btn" style="padding:2px 10px;font-size:12px;background:var(--card);color:var(--err,#c0392b);border:1px solid var(--err,#c0392b)">Удалить</button></form>{{end}}</td>
|
|
</tr>{{end}}{{end}}{{end}}
|