M2M ИИС: приём «всё или ничего» (настройка AcceptIIS, по умолчанию выкл)
Правильная обработка входящих переводов на ИИС вместо прежнего сплошного отказа.
Настройка AcceptIIS (карточка «Кто отвечает на переводы M2M»):
- выкл (по умолчанию) — поведение не меняется: перевод на ИИС отклоняется целиком (M2M06);
- вкл — ИИС принимается ТОЛЬКО целиком: все бумаги зачисляются на ИИС-счёт клиента;
если хоть одной бумаги нет в учёте / не проходит сверку — отказ по ВСЕМУ переводу.
Изменения:
- iisDecisions: «всё или ничего» (при выкл — отказ всем; при вкл — либо все принять,
либо все отклонить, сохраняя реальные коды отказа по проблемным бумагам);
- depo_check: при вкл приёме ИИС убран искусственный отказ «Перевод не на ИИС»,
добавлена проверка «Счёт зачисления — ИИС» (partyChecks получил флаг wantIIS);
- настройка AcceptIIS в Settings + геттер/сеттер + обработчик /admin/setup/accept-iis
+ тумблер в part_nsd.html; тесты обновлены.
Жёсткий запрет частичного ИИС в answerIncoming (коммит dc8b785) остаётся как страховка.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -32,14 +32,33 @@
|
||||
</form>
|
||||
<details style="margin-top:6px"><summary style="cursor:pointer;color:var(--accent);font-size:13px">Что bj делает сам в автоматическом режиме</summary>
|
||||
<ul class="muted" style="font-size:13px;line-height:1.5;margin:8px 0 0;padding-left:18px">
|
||||
<li><b>Входящие переводы</b> — отвечает по свежей сверке с DEPO, по каждой бумаге отдельно (возможен частичный приём). Переводы на ИИС — отказ M2M06; бумага для квалифицированных инвесторов, а у клиента нет квалификации, — отказ M2M08.</li>
|
||||
<li><b>Входящие переводы</b> — отвечает по свежей сверке с DEPO, по каждой бумаге отдельно (возможен частичный приём). Переводы на ИИС — только ЦЕЛИКОМ (если включён приём ИИС ниже: все бумаги на ИИС-счёт клиента, иначе отказ по всему переводу; выключено — отказ M2M06). Бумага для квалифицированных инвесторов, а у клиента нет квалификации, — отказ M2M08.</li>
|
||||
<li><b>Поручение 16/1</b> — подаёт, как только НРД пришлёт черновик после нашего согласия.</li>
|
||||
<li><b>Исходящие переводы</b> — поручение 16 подаёт после согласия контрагента.</li>
|
||||
<li>Если DEPO или шлюз НРД недоступны, bj повторяет каждые 3 минуты и шлёт оповещение; без сверки ничего не принимается.</li>
|
||||
<li>При включении берутся переводы, пришедшие не раньше чем за сутки до этого. Кнопки в карточках остаются для ручной работы.</li>
|
||||
</ul>
|
||||
</details>
|
||||
<form method="post" action="/admin/setup/accept-iis" id="accept-iis-form" class="dq" style="margin-top:10px;border-top:1px solid var(--border,#e5e7eb);padding-top:10px">
|
||||
<label style="display:flex;gap:8px;align-items:flex-start;cursor:pointer">
|
||||
<input type="checkbox" name="enabled" value="1" {{if .D.Settings.AcceptIIS}}checked{{end}} style="margin-top:3px">
|
||||
<span><b>Принимать входящие переводы на ИИС</b><br><small class="muted">ИИС принимается только ЦЕЛИКОМ: все бумаги зачисляются на ИИС-счёт клиента, иначе отказ по всему переводу — частичного ИИС (двух ИИС у клиента с потерей льгот) не бывает. Выключено — любой перевод на ИИС отклоняется (M2M06).</small></span>
|
||||
</label>
|
||||
<p class="dq-note" id="accept-iis-st" aria-live="polite">{{if .D.Settings.AcceptIIS}}Включено: ИИС принимается целиком.{{else}}Выключено: переводы на ИИС отклоняются.{{end}}</p>
|
||||
<noscript><button type="submit" class="btn">Сохранить</button></noscript>
|
||||
</form>
|
||||
</div>
|
||||
<script>(function(){
|
||||
var fi=document.getElementById("accept-iis-form"), si=document.getElementById("accept-iis-st");
|
||||
if(fi&&window.fetch){
|
||||
fi.addEventListener("change", function(){
|
||||
fetch(fi.action,{method:"POST",body:new URLSearchParams(new FormData(fi)),headers:{"Content-Type":"application/x-www-form-urlencoded","X-BJ-Ajax":"1"},cache:"no-store"})
|
||||
.then(function(r){ return r.text().then(function(t){ si.textContent=(r.ok?"\u2713 ":"\u2717 ")+t; }); })
|
||||
.catch(function(){ si.textContent="\u2717 Не сохранилось — обновите страницу."; });
|
||||
});
|
||||
fi.addEventListener("submit", function(e){ e.preventDefault(); });
|
||||
}
|
||||
})();</script>
|
||||
<script>(function(){
|
||||
var f=document.getElementById('m2m-auto-form'), st=document.getElementById('m2m-auto-st'); if(!f||!window.fetch) return;
|
||||
f.addEventListener('change', function(){
|
||||
|
||||
Reference in New Issue
Block a user