DEPO: полное наименование организации из OD_U_FACES, действующая версия лица

Автоопределение читало исходную запись лица (2016) и брало MNEM как краткое
наименование. Теперь — действующая версия (SELF_ID/LAST_FLAG=1): краткое —
OD_FACES.NAME, полное — OD_U_FACES.FULL_NAME, английские — ENG_FULL_NAME и
ENG_NAME. Анкета участника заполняется из DEPO без справочника НРД;
английские — только парой. Проверено на DEPO 28: полное есть у 141 из 145
участников, английские после замены кавычек совпали с ответом НРД.
Если OD_U_FACES нет — прежний запрос и подсказка уточнить у НРД.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-22 10:28:42 +03:00
parent c546773840
commit 890e575d3d
4 changed files with 69 additions and 22 deletions
+16 -6
View File
@@ -27,9 +27,11 @@ type DepoRequisites struct {
Sections []string // все открытые разделы счёта
OrgCode string // = DeponentCode
OrgINN string
OrgName string
OrgShort string
OrgEng string
OrgName string // краткое (OD_FACES.NAME)
OrgShort string // = OrgName (MNEM в DEPO — мнемоника, не наименование)
OrgEng string // английское краткое
OrgFull string // полное (OD_U_FACES.FULL_NAME)
OrgEngFull string // английское полное
Notes []string // что не нашли / на что обратить внимание
At time.Time
}
@@ -127,15 +129,23 @@ func depoDetectRequisites(ctx context.Context, fs FancyMSSQLSettings) (*DepoRequ
}
// организация по коду участника
if res.DeponentCode != "" {
var name, inn, mnem, eng string
err := db.QueryRowContext(ctx, fsql.Det02, sql.Named("code", res.DeponentCode)).Scan(&name, &inn, &mnem, &eng)
var name, inn, mnem, eng, full, engFull string
err := db.QueryRowContext(ctx, fsql.Det03, sql.Named("code", res.DeponentCode)).Scan(&name, &inn, &mnem, &eng, &full, &engFull)
if err != nil && err != sql.ErrNoRows {
err = db.QueryRowContext(ctx, fsql.Det02, sql.Named("code", res.DeponentCode)).Scan(&name, &inn, &mnem, &eng)
}
switch {
case err == sql.ErrNoRows:
res.Notes = append(res.Notes, "лицо с кодом "+res.DeponentCode+" в DEPO не найдено — ИНН и наименование организации введите вручную")
case err != nil:
res.Notes = append(res.Notes, "карточка организации: "+err.Error())
default:
res.OrgCode, res.OrgINN, res.OrgName, res.OrgShort, res.OrgEng = res.DeponentCode, strings.TrimSpace(inn), strings.TrimSpace(name), strings.TrimSpace(mnem), strings.TrimSpace(eng)
_ = mnem
res.OrgCode, res.OrgINN, res.OrgName, res.OrgShort, res.OrgEng = res.DeponentCode, strings.TrimSpace(inn), strings.TrimSpace(name), strings.TrimSpace(name), strings.TrimSpace(eng)
res.OrgFull, res.OrgEngFull = strings.TrimSpace(full), strings.TrimSpace(engFull)
if res.OrgFull == "" {
res.Notes = append(res.Notes, "полного наименования организации в DEPO нет — для анкеты участника уточните его у НРД")
}
}
}
return res, nil