Первичная настройка, часть 1: префикс торгового счёта DEPO — настройка с подсказкой по учёту (был зашит «ВТНКЦ» в 7 запросах); шаг 8 — адрес ИШ вместо ONYX, профили prod-gost/prod-rsa (пункт prod уводил bj в имитацию), без неиспользуемого контейнера, перезапуск bj после смены контура; реквизиты НРД на шаге 4; точная проверка процедур bj2depo и таблиц Fancy M2M; QUIK — объекты M2M и справочник получателей, без зашитого IP; сертификаты из справочника ИШ (FindCertificates — заглушка), уведомления о сроке за 30/14/7/3/1 день; тексты мастера, нумерация, режим разработки; уникальные id оповещений с русскими заголовками
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
{{define "accPrefix"}}
|
||||
<div class="acc-prefix" style="border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin:10px 0;max-width:680px">
|
||||
<div style="font-weight:600;margin-bottom:4px">Торговые счета клиентов в DEPO</div>
|
||||
<p class="muted" style="font-size:12.5px;margin:0 0 8px">По началу номера счёта в <code>OD_CLIENTS</code> bj находит счёт инвестора: при проверке перевода, в цикле QUIK и при ручном вводе. Если префикс неверный, все входящие переводы получат отказ «нет счёта».</p>
|
||||
<form class="acc-form" style="display:flex;gap:8px;align-items:center;flex-wrap:wrap" onsubmit="return false">
|
||||
<input name="account_prefix" list="acc-cands" placeholder="{{depoAccPrefix}}" style="width:160px;padding:6px 8px;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px">
|
||||
<datalist id="acc-cands"></datalist>
|
||||
<button type="button" class="btn acc-save" style="padding:5px 12px">Сохранить</button>
|
||||
<span class="acc-out" style="font-size:13px"></span>
|
||||
</form>
|
||||
<div class="acc-cands muted" style="font-size:12.5px;margin-top:6px"></div>
|
||||
</div>
|
||||
<script>
|
||||
(function(){
|
||||
var box=document.currentScript.previousElementSibling, f=box.querySelector('.acc-form'), out=box.querySelector('.acc-out'), cl=box.querySelector('.acc-cands'), dl=box.querySelector('datalist');
|
||||
function esc(s){return String(s).replace(/[&<>"]/g,function(c){return{'&':'&','<':'<','>':'>','"':'"'}[c]})}
|
||||
function show(d){
|
||||
if(!d.ok){ out.innerHTML='<span style="color:var(--err)">✗ '+esc(d.error)+'</span>'; return; }
|
||||
f.account_prefix.value=d.set?d.prefix:'';
|
||||
f.account_prefix.placeholder=d.prefix;
|
||||
if(d.error){ out.innerHTML='<span style="color:var(--warn)">учёт недоступен: '+esc(d.error)+'</span>'; return; }
|
||||
if(d.count===undefined){ out.textContent='сейчас: '+d.prefix+'…'; return; }
|
||||
out.innerHTML=d.count>0?'<span style="color:var(--ok)">✓ «'+esc(d.prefix)+'…» — открытых счетов: '+d.count+'</span>':'<span style="color:var(--err)">✗ открытых счетов «'+esc(d.prefix)+'…» в учёте нет — выберите префикс ниже</span>';
|
||||
var c=d.candidates||[];
|
||||
dl.innerHTML=c.map(function(x){return '<option value="'+esc(x.prefix)+'">'}).join('');
|
||||
cl.innerHTML=c.length?('Префиксы открытых счетов в учёте: '+c.map(function(x){return '<a href="#" data-p="'+esc(x.prefix)+'"><code>'+esc(x.prefix)+'</code></a> — '+x.count}).join(', ')):'';
|
||||
cl.querySelectorAll('a[data-p]').forEach(function(a){ a.onclick=function(e){ e.preventDefault(); f.account_prefix.value=a.dataset.p; f.account_prefix.focus(); }; });
|
||||
}
|
||||
function load(body){ out.textContent=body?'сохраняю…':'проверяю учёт…';
|
||||
fetch('/admin/setup/fancy/acc-prefix',{method:body?'POST':'GET',body:body,cache:'no-store'}).then(function(r){return r.json()}).then(show).catch(function(){ out.textContent='не удалось проверить'; }); }
|
||||
box.querySelector('.acc-save').onclick=function(){ var p=new URLSearchParams(); p.set('account_prefix',f.account_prefix.value.trim()); load(p); };
|
||||
load();
|
||||
})();
|
||||
</script>
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user