Входящие M2M: пакет только целиком и отказ M2M08 для бумаг «для квалифицированных инвесторов»

Сверка с DEPO: у бумаги проверяется опция RESTRICTED («Ограничение ценной бумаги по обращению»,
1 — предназначена для квалифицированных инвесторов). Если инвестор не квалифицирован — отказ M2M08;
квалифицирован по всем видам — проходит; по части видов — предупреждение, решает оператор.

Пакет принимается только целиком (решение 16.09): при отказе хотя бы по одной бумаге рекомендация —
отказ по всем с кодом первой отказной, и так же нормализуется отправляемое решение (packageDecisions);
в форме выбор отказа по одной бумаге переключает на отказ все.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-16 14:45:43 +03:00
parent be0081c139
commit 4b62d00ac2
5 changed files with 201 additions and 24 deletions
@@ -138,6 +138,7 @@
{{end}}
</tbody>
</table>
<p class="muted" style="font-size:12.5px;margin:10px 0 0">Пакет принимается только целиком: при отказе по одной бумаге отказ ставится всем бумагам с тем же кодом (так и будет отправлено).</p>
<div style="display:flex;gap:8px;margin-top:14px;flex-wrap:wrap">
<button type="submit" class="btn btn-ok">Отправить решение роботу</button>
<button type="button" class="btn" onclick="m2mSetAll('confirm')">Принять все</button>
@@ -155,7 +156,19 @@
if(dash) dash.style.display = show ? 'none' : '';
}
document.querySelectorAll('input.dec').forEach(function(r){
r.addEventListener('change', function(){ toggle(r.getAttribute('data-ref')); });
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){
document.querySelectorAll('input.dec[value="'+val+'"]').forEach(function(r){