diff --git a/internal/lkgateway/livestatus.go b/internal/lkgateway/livestatus.go index 0807e31..0e0ab00 100644 --- a/internal/lkgateway/livestatus.go +++ b/internal/lkgateway/livestatus.go @@ -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 { diff --git a/internal/lkgateway/outgoing_order.go b/internal/lkgateway/outgoing_order.go index 37304d2..7c3e00b 100644 --- a/internal/lkgateway/outgoing_order.go +++ b/internal/lkgateway/outgoing_order.go @@ -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) diff --git a/internal/lkgateway/web/templates/admin_claim.html b/internal/lkgateway/web/templates/admin_claim.html index 62160c7..6b169dc 100644 --- a/internal/lkgateway/web/templates/admin_claim.html +++ b/internal/lkgateway/web/templates/admin_claim.html @@ -31,7 +31,7 @@ {{if .Flash}}
{{.Flash}}
{{end}}

Заявка {{slice .Claim.ID 0 8}} · {{ruState .Claim.Status}}

- {{$l := liveOut .Claim}}
{{$l.Text}}
+ {{$l := liveOut .Claim}}
{{$l.Text}}
diff --git a/internal/lkgateway/web/templates/admin_claims.html b/internal/lkgateway/web/templates/admin_claims.html index fe671c3..2a8bfee 100644 --- a/internal/lkgateway/web/templates/admin_claims.html +++ b/internal/lkgateway/web/templates/admin_claims.html @@ -14,7 +14,7 @@ - + {{end}} diff --git a/internal/lkgateway/web/templates/admin_incoming.html b/internal/lkgateway/web/templates/admin_incoming.html index 9368b91..ede3dbd 100644 --- a/internal/lkgateway/web/templates/admin_incoming.html +++ b/internal/lkgateway/web/templates/admin_incoming.html @@ -16,7 +16,7 @@ - + {{end}} diff --git a/internal/lkgateway/web/templates/admin_incoming_detail.html b/internal/lkgateway/web/templates/admin_incoming_detail.html index 837239f..35b8965 100644 --- a/internal/lkgateway/web/templates/admin_incoming_detail.html +++ b/internal/lkgateway/web/templates/admin_incoming_detail.html @@ -21,7 +21,7 @@

Входящий перевод {{short 8 .It.GUID}} {{if $answered}}отвечено{{else}}ждёт решения{{end}}

- {{$l := liveIn .It}}
{{$l.Text}}
+ {{$l := liveIn .It}}
{{$l.Text}}
Создана{{.Claim.CreatedAt.Format "02.01.2006 15:04:05"}}
Обновлена{{.Claim.UpdatedAt.Format "02.01.2006 15:04:05"}}
{{len .Securities}} {{$f := m2mParty .TransferringDepositoryINN}}{{if $f}}{{$f}}
{{end}}{{.TransferringDepositoryINN}}
{{$t := m2mParty .ReceivingDepositoryINN}}{{if $t}}{{$t}}
{{end}}{{.ReceivingDepositoryINN}}
{{$l := liveOut .}}{{ruState .Status}}
{{$l.Text}}
{{$l := liveOut .}}{{ruState .Status}}
{{$l.Text}}
детали →
{{short 8 .GUID}} {{$nm := m2mParty .SenderCode}}{{if not $nm}}{{$nm = m2mParty .SenderINN}}{{end}}{{if $nm}}{{$nm}}
{{end}}{{.SenderCode}}{{if .SenderINN}} · ИНН {{.SenderINN}}{{end}}
{{len .Securities}}{{$s := inStatus .}}{{$s.Text}}{{if $s.Outcome}} {{$s.Outcome}}{{end}}{{if .DepoSummary}}
сверка: {{.DepoSummary}}{{end}}{{$l := liveIn .}}
{{$l.Text}}
{{$s := inStatus .}}{{$s.Text}}{{if $s.Outcome}} {{$s.Outcome}}{{end}}{{if .DepoSummary}}
сверка: {{.DepoSummary}}{{end}}{{$l := liveIn .}}
{{$l.Text}}
{{if eq .Status "answered"}}просмотр{{else}}ответить{{end}} →
diff --git a/internal/lkgateway/web/templates/admin_journal.html b/internal/lkgateway/web/templates/admin_journal.html index c805346..82cc9ae 100644 --- a/internal/lkgateway/web/templates/admin_journal.html +++ b/internal/lkgateway/web/templates/admin_journal.html @@ -12,7 +12,7 @@ - + {{end}}
Запрос сформирован (отправитель){{msk .It.RequestCreated}}
Забрали из шлюза (получено нами){{msk .It.ReceivedAt}}{{if not .It.RequestCreated.IsZero}} · прохождение: {{transit .It.RequestCreated .It.ReceivedAt}}{{end}}
{{if eq .DirKind "out"}}↗ Исходящий{{else}}↘ Входящий{{end}} {{.Party}} {{.SecN}}{{.StatusText}}{{if .Outcome}} {{.Outcome}}{{end}}
{{.Live.Text}}
{{.StatusText}}{{if .Outcome}} {{.Outcome}}{{end}}
{{.Live.Text}}
открыть →