Входящие M2M: частичный приём — каждая бумага решается сама по себе (НРД допускает: по каждой принятой свой черновик 16/1); переводы на ИИС не принимаем — отказ M2M07 по всем бумагам
- finishResult: итог confirm / reject / partial, без отказа всем пакетом; - autoDecisions и ручной ответ: без правила «целиком», квал-предупреждение — отказ только по своей бумаге; - признак ИИС из заголовка запроса (IIAAgreementDetails), у сохранённых раньше — по исходному XML; - форма оператора: без автоматического «отказ всем», подсказка про ИИС; тексты и тесты. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
.dc-rec{display:inline-block;padding:5px 14px;border-radius:999px;font-weight:700;font-size:14px}
|
||||
.dc-rec.confirm{background:var(--ok-weak,#e6f4ea);color:var(--ok,#12813f)}
|
||||
.dc-rec.reject{background:var(--err-weak,#fbe9e7);color:var(--err,#b3261e)}
|
||||
.dc-rec.partial,.dc-rec.mixed{background:var(--warn-weak,#fff4e0);color:var(--warn,#9a6b12)}
|
||||
.dc-rec.mixed{background:var(--warn-weak,#fff4e0);color:var(--warn,#9a6b12)}
|
||||
</style>
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<h2>Ход исполнения</h2>
|
||||
<ol>
|
||||
<li><b>Пакет отправлен в НРД.</b> Сервис MOEX МОСТ проверяет формат и присылает квитанцию. Если есть ошибка, поручение завершается отказом с кодом, а блокировка снимается.</li>
|
||||
<li><b>Решение принимающего депозитария.</b> Депозитарий соглашается или отказывает (код отказа виден в карточке). Пакет принимается только целиком.</li>
|
||||
<li><b>Решение принимающего депозитария.</b> Депозитарий соглашается или отказывает по каждой бумаге отдельно (код отказа виден в карточке): возможен частичный приём. Переводы на ИИС не принимаются.</li>
|
||||
<li><b>Черновик поручения 16.</b> После согласия НРД присылает черновик поручения на списание.</li>
|
||||
<li><b>Поручение 16 подано.</b> Нажмите «Подать поручение 16 по черновику». Если включён автоматический режим M2M, bj подаёт поручение сам.</li>
|
||||
<li><b>Отчёт НРД об исполнении.</b> Когда отчёт (MS010) получен, бумаги списаны. Кнопка «Документы НРД» скачивает архив с квитанциями и отчётом, в том числе в PDF.</li>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
.dc-rec{display:inline-block;padding:4px 12px;border-radius:999px;font-weight:700;font-size:13px}
|
||||
.dc-rec.confirm{background:var(--ok-weak,#e6f4ea);color:var(--ok,#12813f)}
|
||||
.dc-rec.reject{background:var(--err-weak,#fbe9e7);color:var(--err,#b3261e)}
|
||||
.dc-rec.mixed{background:var(--warn-weak,#fff4e0);color:var(--warn,#9a6b12)}
|
||||
.dc-rec.mixed,.dc-rec.partial{background:var(--warn-weak,#fff4e0);color:var(--warn,#9a6b12)}
|
||||
</style>
|
||||
<div style="display:flex;align-items:center;gap:10px;flex-wrap:wrap">
|
||||
<h2 style="margin:0">Сверка с DEPO — {{if devOn}}эмуляция ответа{{else}}рекомендация по ответу{{end}}</h2>
|
||||
@@ -141,7 +141,7 @@
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="muted" style="font-size:12.5px;margin:10px 0 0">Пакет принимается только целиком: при отказе по одной бумаге отказ ставится всем бумагам с тем же кодом (так и будет отправлено).</p>
|
||||
<p class="muted" style="font-size:12.5px;margin:10px 0 0">Решение по каждой бумаге отдельно: принятые бумаги НРД переведёт (по каждой придёт свой черновик 16/1), по остальным уйдёт отказ с выбранным кодом.{{if and $.It (isIIS $.It)}} <b>Перевод на ИИС — такие мы не принимаем: отказ M2M07 по всем бумагам будет отправлен в любом случае.</b>{{end}}</p>
|
||||
<div style="display:flex;gap:8px;margin-top:14px;flex-wrap:wrap">
|
||||
<button type="submit" class="btn btn-ok">Отправить решение{{if devOn}} роботу{{end}}</button>
|
||||
<button type="button" class="btn" onclick="m2mSetAll('confirm')">Принять все</button>
|
||||
@@ -161,16 +161,6 @@
|
||||
document.querySelectorAll('input.dec').forEach(function(r){
|
||||
r.addEventListener('change', function(){
|
||||
toggle(r.getAttribute('data-ref'));
|
||||
// Пакет целиком: отказ по одной бумаге — отказ по всем с тем же кодом.
|
||||
if(r.value === 'reject' && r.checked){
|
||||
var src = document.querySelector('select[name="reject_'+r.getAttribute('data-ref')+'"]');
|
||||
document.querySelectorAll('input.dec[value="reject"]').forEach(function(o){
|
||||
if(o.checked) return;
|
||||
o.checked = true; toggle(o.getAttribute('data-ref'));
|
||||
var sel = document.querySelector('select[name="reject_'+o.getAttribute('data-ref')+'"]');
|
||||
if(sel && src) sel.value = src.value;
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
window.m2mSetAll = function(val){
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
.dc-rec{display:inline-block;padding:4px 12px;border-radius:999px;font-weight:700;font-size:13px}
|
||||
.dc-rec.confirm{background:var(--ok-weak,#e6f4ea);color:var(--ok,#12813f)}
|
||||
.dc-rec.reject{background:var(--err-weak,#fbe9e7);color:var(--err,#b3261e)}
|
||||
.dc-rec.partial,.dc-rec.mixed{background:var(--warn-weak,#fff4e0);color:var(--warn,#9a6b12)}
|
||||
.dc-rec.mixed{background:var(--warn-weak,#fff4e0);color:var(--warn,#9a6b12)}
|
||||
</style>
|
||||
<div style="margin-top:18px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--card)">
|
||||
|
||||
@@ -313,7 +313,7 @@
|
||||
{{template "orgSection" .}}
|
||||
<div class="card" id="m2m-auto">
|
||||
<h2><span class="dot {{if .Settings.M2MAuto.Enabled}}ok{{else}}warn{{end}}"></span>Автоматический режим M2M</h2>
|
||||
<p class="muted">Без участия оператора, чтобы соблюдать сроки: <strong>ответ на входящие переводы</strong> по свежей сверке с DEPO (пакет принимается только целиком; бумага для квалифицированных инвесторов при неполной или непрочитанной квалификации клиента — отказ M2M08), <strong>подача поручения 16/1</strong>, как только НРД пришлёт черновик после нашего согласия, и <strong>подача поручения 16</strong> по исходящим после согласия контрагента. Если DEPO или ИШ недоступны — bj повторяет каждые 3 минуты и шлёт оповещение; без сверки ничего не принимается. Обрабатывается только то, что пришло не раньше чем за сутки до включения. Кнопки в карточках остаются для ручной работы.</p>
|
||||
<p class="muted">Без участия оператора, чтобы соблюдать сроки: <strong>ответ на входящие переводы</strong> по свежей сверке с DEPO (решение по каждой бумаге отдельно — возможен частичный приём; переводы на ИИС — отказ M2M07; бумага для квалифицированных инвесторов при неполной или непрочитанной квалификации клиента — отказ M2M08), <strong>подача поручения 16/1</strong>, как только НРД пришлёт черновик после нашего согласия, и <strong>подача поручения 16</strong> по исходящим после согласия контрагента. Если DEPO или ИШ недоступны — bj повторяет каждые 3 минуты и шлёт оповещение; без сверки ничего не принимается. Обрабатывается только то, что пришло не раньше чем за сутки до включения. Кнопки в карточках остаются для ручной работы.</p>
|
||||
<form method="post" action="/admin/setup/m2m-auto" style="display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px">
|
||||
<input type="hidden" name="section" value="m2m-auto">
|
||||
<label style="display:flex;gap:8px;align-items:center;font-weight:600;margin:0"><input type="checkbox" name="enabled" value="1" {{if .Settings.M2MAuto.Enabled}}checked{{end}}> Автоматический режим включён</label>
|
||||
|
||||
Reference in New Issue
Block a user