28c0ed7349
Пакеты НРД из INBOX ИШ (K…, 508…) распознаются по содержимому: квитанция о регистрации (или отказ), уведомление GS036, отчёт о статусе GS116 (сквитовано / не сквитовано), отчёт об исполнении MS010, ошибка. В ZIP ответа НРД и выгрузках для регулятора (16 и 16/1) — папки «01 Квитанция о регистрации поручения — K1699092» и т. д., «Опись.txt» с назначением и реквизитами каждого документа и «Документы НРД.pdf» (читаемое представление, печать через Chromium; без него — HTML). В карточке перевода ответы НРД подписаны так же. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
31 lines
1.0 KiB
Go
31 lines
1.0 KiB
Go
//go:build live
|
|
|
|
package lkgateway
|
|
|
|
import (
|
|
"archive/zip"
|
|
"bytes"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
// Живой прогон: документы НРД по поручению 20608 (исходящий 16.09) → ZIP с папками, описью и PDF.
|
|
// go test -c -tags live ./internal/lkgateway/ ; запуск от bj: -test.run TestNSDDocsLive -test.v
|
|
func TestNSDDocsLive(t *testing.T) {
|
|
docs := nsdOrderDocs("20608")
|
|
for i, d := range docs {
|
|
t.Logf("%s | %v", nsdDocFolder(i, d), d.Fields)
|
|
}
|
|
var buf bytes.Buffer
|
|
zw := zip.NewWriter(&buf)
|
|
writeNSDDocsZip(zw, "", "Документы НРД по поручению 16 (списание) № 20608", docs, true)
|
|
zw.Close()
|
|
zr, _ := zip.NewReader(bytes.NewReader(buf.Bytes()), int64(buf.Len()))
|
|
for _, f := range zr.File {
|
|
if f.Name == "Опись.txt" || f.Name == "Документы НРД.pdf" || f.Name == "Документы НРД.html" {
|
|
t.Logf("в архиве: %s (%d байт)", f.Name, f.UncompressedSize64)
|
|
}
|
|
}
|
|
_ = os.WriteFile(os.TempDir()+"/nsd-docs-20608.zip", buf.Bytes(), 0o644)
|
|
}
|