Журнал: ответы НРД ищутся только по сделкам в работе; завершённые помечены «не проверяется»
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
@@ -41,7 +41,7 @@ func form16Snapshot() map[string]*OutgoingDeal {
|
||||
}
|
||||
m := map[string]*OutgoingDeal{}
|
||||
if globalOutgoingStore != nil {
|
||||
for _, d := range scanForm16Drafts(globalOutgoingStore) {
|
||||
for _, d := range scanForm16DraftsOpt(globalOutgoingStore, false) { // ответы — только по сделкам в работе, ниже
|
||||
m[d.GUID] = d
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,13 @@ func liveOutgoing(c ClaimView) LiveStatus {
|
||||
guid := string(c.M2MGUID)
|
||||
var depo *OutgoingDeal
|
||||
if guid != "" && c.Status == "confirmed" { // каталог нужен только на этапе депо-исполнения
|
||||
depo = form16Snapshot()[guid]
|
||||
if d := form16Snapshot()[guid]; d != nil {
|
||||
cp := *d
|
||||
if cp.Submitted && len(cp.Responses) == 0 && !cp.Done {
|
||||
cp.Responses, cp.Done = outgoingResponses(cp.ContrDIDs) // ответы ищем только для этой, живой сделки
|
||||
}
|
||||
depo = &cp
|
||||
}
|
||||
}
|
||||
var watch *OrderWatch
|
||||
if guid != "" && globalOrderWatch != nil {
|
||||
|
||||
@@ -188,6 +188,13 @@ func mf010Text(p string, info os.FileInfo) (string, bool) {
|
||||
}
|
||||
|
||||
func scanForm16Drafts(store *OutgoingStore) []*OutgoingDeal {
|
||||
return scanForm16DraftsOpt(store, true)
|
||||
}
|
||||
|
||||
// scanForm16DraftsOpt — то же, но ответы НРД (MS010 и др.) собираются только при withResponses:
|
||||
// поиск ответов по номерам поручений — самая дорогая часть, и для журнала она нужна лишь
|
||||
// по сделкам в работе, а не по всем, что когда-либо были.
|
||||
func scanForm16DraftsOpt(store *OutgoingStore, withResponses bool) []*OutgoingDeal {
|
||||
byGUID := map[string]*OutgoingDeal{}
|
||||
_ = filepath.Walk(igwInboxDir, func(p string, info os.FileInfo, err error) error {
|
||||
if err != nil || info.IsDir() {
|
||||
@@ -238,7 +245,9 @@ func scanForm16Drafts(store *OutgoingStore) []*OutgoingDeal {
|
||||
d.OrderAt = sub.OrderAt
|
||||
d.OrderXML = sub.OrderXML
|
||||
d.ContrDIDs = sub.ContrDIDs
|
||||
d.Responses, d.Done = outgoingResponses(sub.ContrDIDs)
|
||||
if withResponses {
|
||||
d.Responses, d.Done = outgoingResponses(sub.ContrDIDs)
|
||||
}
|
||||
}
|
||||
}
|
||||
out = append(out, d)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
{{if .Flash}}<div class="card" style="background:var(--accent-weak,#e7f0fb)">{{.Flash}}</div>{{end}}
|
||||
<div class="card">
|
||||
<h2>Заявка <code>{{slice .Claim.ID 0 8}}</code> · <span class="badge {{.Claim.Status}}">{{ruState .Claim.Status}}</span></h2>
|
||||
{{$l := liveOut .Claim}}<div class="live live-big live-{{$l.Kind}}" data-live="out:{{.Claim.ID}}"{{if $l.Active}} data-active="1"{{end}}>{{$l.Text}}</div>
|
||||
{{$l := liveOut .Claim}}<div class="live live-big live-{{$l.Kind}}" data-live="out:{{.Claim.ID}}"{{if $l.Active}} data-active="1"{{else}} title="Завершено: состояние больше не проверяется"{{end}}>{{$l.Text}}</div>
|
||||
<table>
|
||||
<tr><td style="width:200px" class="muted">Создана</td><td>{{.Claim.CreatedAt.Format "02.01.2006 15:04:05"}}</td></tr>
|
||||
<tr><td class="muted">Обновлена</td><td>{{.Claim.UpdatedAt.Format "02.01.2006 15:04:05"}}</td></tr>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<td>{{len .Securities}}</td>
|
||||
<td>{{$f := m2mParty .TransferringDepositoryINN}}{{if $f}}<span style="font-size:11px">{{$f}}</span><br>{{end}}<code style="font-size:11px">{{.TransferringDepositoryINN}}</code></td>
|
||||
<td>{{$t := m2mParty .ReceivingDepositoryINN}}{{if $t}}<span style="font-size:11px">{{$t}}</span><br>{{end}}<code style="font-size:11px">{{.ReceivingDepositoryINN}}</code></td>
|
||||
<td>{{$l := liveOut .}}<span class="badge {{.Status}}">{{ruState .Status}}</span><div class="live live-{{$l.Kind}}" data-live="out:{{.ID}}"{{if $l.Active}} data-active="1"{{end}}>{{$l.Text}}</div></td>
|
||||
<td>{{$l := liveOut .}}<span class="badge {{.Status}}">{{ruState .Status}}</span><div class="live live-{{$l.Kind}}" data-live="out:{{.ID}}"{{if $l.Active}} data-active="1"{{else}} title="Завершено: состояние больше не проверяется"{{end}}>{{$l.Text}}</div></td>
|
||||
<td><a href="/admin/claims/{{.ID}}">детали →</a></td>
|
||||
</tr>
|
||||
{{end}}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<td><code>{{short 8 .GUID}}</code></td>
|
||||
<td>{{$nm := m2mParty .SenderCode}}{{if not $nm}}{{$nm = m2mParty .SenderINN}}{{end}}{{if $nm}}<strong>{{$nm}}</strong><br>{{end}}<code>{{.SenderCode}}</code>{{if .SenderINN}} · ИНН {{.SenderINN}}{{end}}</td>
|
||||
<td>{{len .Securities}}</td>
|
||||
<td>{{$s := inStatus .}}<span class="badge {{$s.Class}}">{{$s.Text}}</span>{{if $s.Outcome}} <span class="badge {{if eq $s.Outcome "Принято"}}confirmed{{else if eq $s.Outcome "Отказано"}}rejected{{else}}awaiting_decision{{end}}">{{$s.Outcome}}</span>{{end}}{{if .DepoSummary}}<br><span class="badge {{if eq .DepoRecommend "confirm"}}confirmed{{else if eq .DepoRecommend "reject"}}rejected{{else}}awaiting_decision{{end}}" style="font-size:11px;margin-top:4px" title="Сверка с DEPO — {{if devOn}}эмуляция ответа{{else}}рекомендация{{end}}, ничего не отправлено">сверка: {{.DepoSummary}}</span>{{end}}{{$l := liveIn .}}<div class="live live-{{$l.Kind}}" data-live="in:{{.ID}}"{{if $l.Active}} data-active="1"{{end}}>{{$l.Text}}</div></td>
|
||||
<td>{{$s := inStatus .}}<span class="badge {{$s.Class}}">{{$s.Text}}</span>{{if $s.Outcome}} <span class="badge {{if eq $s.Outcome "Принято"}}confirmed{{else if eq $s.Outcome "Отказано"}}rejected{{else}}awaiting_decision{{end}}">{{$s.Outcome}}</span>{{end}}{{if .DepoSummary}}<br><span class="badge {{if eq .DepoRecommend "confirm"}}confirmed{{else if eq .DepoRecommend "reject"}}rejected{{else}}awaiting_decision{{end}}" style="font-size:11px;margin-top:4px" title="Сверка с DEPO — {{if devOn}}эмуляция ответа{{else}}рекомендация{{end}}, ничего не отправлено">сверка: {{.DepoSummary}}</span>{{end}}{{$l := liveIn .}}<div class="live live-{{$l.Kind}}" data-live="in:{{.ID}}"{{if $l.Active}} data-active="1"{{else}} title="Завершено: состояние больше не проверяется"{{end}}>{{$l.Text}}</div></td>
|
||||
<td><a href="/admin/incoming/{{.ID}}">{{if eq .Status "answered"}}просмотр{{else}}ответить{{end}} →</a></td>
|
||||
</tr>
|
||||
{{end}}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<h2>Входящий перевод <code>{{short 8 .It.GUID}}</code>
|
||||
{{if $answered}}<span class="badge confirmed">отвечено</span>{{else}}<span class="badge awaiting_decision">ждёт решения</span>{{end}}
|
||||
</h2>
|
||||
{{$l := liveIn .It}}<div class="live live-big live-{{$l.Kind}}" data-live="in:{{.It.ID}}"{{if $l.Active}} data-active="1"{{end}}>{{$l.Text}}</div>
|
||||
{{$l := liveIn .It}}<div class="live live-big live-{{$l.Kind}}" data-live="in:{{.It.ID}}"{{if $l.Active}} data-active="1"{{else}} title="Завершено: состояние больше не проверяется"{{end}}>{{$l.Text}}</div>
|
||||
<table>
|
||||
<tr><td style="width:220px" class="muted">Запрос сформирован (отправитель)</td><td>{{msk .It.RequestCreated}}</td></tr>
|
||||
<tr><td class="muted">Забрали из шлюза (получено нами)</td><td>{{msk .It.ReceivedAt}}{{if not .It.RequestCreated.IsZero}} <span class="muted" style="font-size:12px">· прохождение: {{transit .It.RequestCreated .It.ReceivedAt}}</span>{{end}}</td></tr>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<td>{{if eq .DirKind "out"}}<span class="badge" style="background:#e7f0fb;color:#1f4e79">↗ Исходящий</span>{{else}}<span class="badge" style="background:#e6f4ea;color:#1a7f37">↘ Входящий</span>{{end}}</td>
|
||||
<td>{{.Party}}</td>
|
||||
<td>{{.SecN}}</td>
|
||||
<td><span class="badge {{.Status}}">{{.StatusText}}</span>{{if .Outcome}} <span class="badge {{if eq .Outcome "Принято"}}confirmed{{else if eq .Outcome "Отказано"}}rejected{{else}}awaiting_decision{{end}}">{{.Outcome}}</span>{{end}}<div class="live live-{{.Live.Kind}}" data-live="{{.LiveKey}}"{{if .Live.Active}} data-active="1"{{end}}>{{.Live.Text}}</div></td>
|
||||
<td><span class="badge {{.Status}}">{{.StatusText}}</span>{{if .Outcome}} <span class="badge {{if eq .Outcome "Принято"}}confirmed{{else if eq .Outcome "Отказано"}}rejected{{else}}awaiting_decision{{end}}">{{.Outcome}}</span>{{end}}<div class="live live-{{.Live.Kind}}" data-live="{{.LiveKey}}"{{if .Live.Active}} data-active="1"{{else}} title="Завершено: состояние больше не проверяется"{{end}}>{{.Live.Text}}</div></td>
|
||||
<td><a href="{{.Href}}" class="muted">открыть →</a></td>
|
||||
</tr>
|
||||
{{end}}
|
||||
|
||||
Reference in New Issue
Block a user