Тестирование M2M: после изменения количества отправка заблокирована до пересчёта сверки; количество — в подтверждении отправки
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -74,7 +74,7 @@
|
|||||||
<td>{{if .Bad}}<span class="pill pill-bad">🔴</span>{{else}}<span class="pill pill-ok">🟢</span>{{end}}</td>
|
<td>{{if .Bad}}<span class="pill pill-bad">🔴</span>{{else}}<span class="pill pill-ok">🟢</span>{{end}}</td>
|
||||||
<td><code>{{.ISIN}}</code>{{if ne .Code .ISIN}} · {{.Code}}{{end}}</td>
|
<td><code>{{.ISIN}}</code>{{if ne .Code .ISIN}} · {{.Code}}{{end}}</td>
|
||||||
<td>{{.Name}}{{if .Bad}} <span class="muted" style="font-size:12px;color:#b3261e">— неверная для этого кейса</span>{{end}}</td>
|
<td>{{.Name}}{{if .Bad}} <span class="muted" style="font-size:12px;color:#b3261e">— неверная для этого кейса</span>{{end}}</td>
|
||||||
<td>{{if $.WeInitiate}}<input type="text" name="qty_{{.ISIN}}" value="{{.Qty}}" form="m2m-qty" inputmode="decimal" style="width:90px">{{else}}{{.Qty}}{{end}}</td>
|
<td>{{if $.WeInitiate}}<input type="text" name="qty_{{.ISIN}}" value="{{.Qty}}" data-checked="{{.Qty}}" class="m2m-qty-in" form="m2m-qty" inputmode="decimal" style="width:90px">{{else}}{{.Qty}}{{end}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{end}}
|
{{end}}
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -83,8 +83,21 @@
|
|||||||
<form id="m2m-qty" method="get" action="/admin/m2m-testing/preview" style="display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px">
|
<form id="m2m-qty" method="get" action="/admin/m2m-testing/preview" style="display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px">
|
||||||
<input type="hidden" name="id" value="{{.Case.ID}}">
|
<input type="hidden" name="id" value="{{.Case.ID}}">
|
||||||
<button type="submit" class="btn">↻ Пересчитать сверку с этим количеством</button>
|
<button type="submit" class="btn">↻ Пересчитать сверку с этим количеством</button>
|
||||||
<span class="muted" style="font-size:12px">Количество можно изменить (по плану — как в таблице кейсов); сверка DEPO и отправка берут то, что указано здесь после пересчёта.</span>
|
<span class="muted" style="font-size:12px">Количество можно изменить; сверка DEPO и отправка берут то, что указано здесь после пересчёта.</span>
|
||||||
</form>
|
</form>
|
||||||
|
<div id="m2m-qty-stale" hidden style="margin-top:8px;padding:8px 12px;border-radius:9px;font-size:13px;font-weight:600;background:color-mix(in srgb,#d97706 14%,var(--card));color:#9a6b12">Количество изменено — нажмите «Пересчитать сверку». Отправка заблокирована, пока сверка DEPO не пересчитана с новым количеством.</div>
|
||||||
|
<script>
|
||||||
|
(function(){
|
||||||
|
var ins = document.querySelectorAll('.m2m-qty-in');
|
||||||
|
function stale(){
|
||||||
|
var changed = false;
|
||||||
|
ins.forEach(function(i){ if(i.value.trim() !== i.getAttribute('data-checked')) changed = true; });
|
||||||
|
var b = document.getElementById('m2m-qty-stale'); if(b) b.hidden = !changed;
|
||||||
|
document.querySelectorAll('.m2m-send-btn').forEach(function(btn){ btn.disabled = changed; });
|
||||||
|
}
|
||||||
|
ins.forEach(function(i){ i.addEventListener('input', stale); });
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
@@ -122,10 +135,10 @@
|
|||||||
|
|
||||||
<div style="display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px">
|
<div style="display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px">
|
||||||
{{if .WeInitiate}}
|
{{if .WeInitiate}}
|
||||||
<form method="post" action="/admin/m2m-testing/initiate" onsubmit="return confirm('{{if .AlreadySent}}Отправить кейс {{.Case.ID}} ЗАНОВО? Уйдёт новая заявка с новым GUID (НРД примет как новую). Контрагент увидит ещё один перевод.{{else}}Отправить кейс {{.Case.ID}} контрагенту? Уйдёт реальный пакет в НРД (TEST3).{{end}}');">
|
<form method="post" action="/admin/m2m-testing/initiate" onsubmit="return confirm('{{if .AlreadySent}}Отправить кейс {{.Case.ID}} ЗАНОВО? Уйдёт новая заявка с новым GUID (НРД примет как новую). Контрагент увидит ещё один перевод.{{else}}Отправить кейс {{.Case.ID}} контрагенту? Уйдёт реальный пакет в НРД (TEST3).{{end}} Количество: {{range $i, $s := .Secs}}{{if $i}}, {{end}}{{$s.Code}} × {{$s.Qty}}{{end}}.');">
|
||||||
<input type="hidden" name="id" value="{{.Case.ID}}">
|
<input type="hidden" name="id" value="{{.Case.ID}}">
|
||||||
{{range .Secs}}<input type="hidden" name="qty_{{.ISIN}}" value="{{.Qty}}">{{end}}
|
{{range .Secs}}<input type="hidden" name="qty_{{.ISIN}}" value="{{.Qty}}">{{end}}
|
||||||
<button type="submit" class="btn {{if .AlreadySent}}{{else}}btn-ok{{end}}">{{if .AlreadySent}}▶ Отправить заново (новый GUID){{else}}▶ Подтвердить и отправить в НРД{{end}}</button>
|
<button type="submit" class="m2m-send-btn btn {{if .AlreadySent}}{{else}}btn-ok{{end}}">{{if .AlreadySent}}▶ Отправить заново (новый GUID){{else}}▶ Подтвердить и отправить в НРД{{end}}</button>
|
||||||
</form>
|
</form>
|
||||||
<a href="/admin/m2m-testing" class="btn">Отмена</a>
|
<a href="/admin/m2m-testing" class="btn">Отмена</a>
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|||||||
Reference in New Issue
Block a user