Анкета участника M2M: ссылка в разделе НРД + предзаполнение по фирме
- В «Настройка → НРД» добавлена карточка «Регистрация участника M2M» со ссылкой на /admin/setup/participant-form (раньше страница была только по URL). - participantFormPrefill теперь заполняет анкету по реквизитам фирмы, а не только из автоопределения DEPO: берёт ИНН/коды из настроек НРД и наименования (полное/сокращённое/отображаемое/англ.) из справочника участников НРД (по MC-коду, затем по ИНН); DisplayName/Short подставляются, если пусты. - org.go: добавлен handbookByINN. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -63,8 +63,48 @@ func participantFormPrefill(rc *RuntimeConfig) participantFormData {
|
||||
d.DepoCode = strings.TrimSpace(r.DeponentCode)
|
||||
}
|
||||
}
|
||||
if d.DepoCode == "" && rc != nil {
|
||||
d.DepoCode = strings.TrimSpace(rc.Snapshot().NSD.DeponentCode)
|
||||
if rc != nil {
|
||||
s := rc.Snapshot()
|
||||
// Реквизиты нашей организации из настроек НРД и справочника участников —
|
||||
// заполняем то, чего не дало автоопределение DEPO.
|
||||
if d.INN == "" {
|
||||
d.INN = orgINN(s)
|
||||
}
|
||||
if d.DepoCode == "" {
|
||||
d.DepoCode = strings.ToUpper(strings.TrimSpace(pick(s.NSD.DeponentCode, s.NSD.OrgCode)))
|
||||
}
|
||||
// Карточка нашей фирмы в справочнике участников НРД: по MC-коду, затем по ИНН.
|
||||
hb, ok := handbookByCode(orgCode(s))
|
||||
if !ok && d.INN != "" {
|
||||
hb, ok = handbookByINN(d.INN)
|
||||
}
|
||||
if ok {
|
||||
if d.FullName == "" {
|
||||
d.FullName = strings.TrimSpace(pick(hb.FullName, hb.Name))
|
||||
}
|
||||
if d.ShortName == "" {
|
||||
d.ShortName = strings.TrimSpace(hb.Name)
|
||||
}
|
||||
if d.DisplayName == "" {
|
||||
d.DisplayName = strings.TrimSpace(pick(hb.DisplayName, hb.Name))
|
||||
}
|
||||
if d.EngFull == "" {
|
||||
d.EngFull = strings.TrimSpace(hb.EngName)
|
||||
}
|
||||
if hb.Kind == "broker" && d.BrokerCode == "" {
|
||||
d.BrokerCode = strings.ToUpper(strings.TrimSpace(hb.Code))
|
||||
}
|
||||
}
|
||||
if d.FullName == "" {
|
||||
d.FullName = strings.TrimSpace(s.NSD.OrgName)
|
||||
}
|
||||
}
|
||||
// DisplayName/Short обязательны в анкете — подставим из того, что есть.
|
||||
if d.DisplayName == "" {
|
||||
d.DisplayName = strings.TrimSpace(pick(d.ShortName, d.FullName))
|
||||
}
|
||||
if d.ShortName == "" {
|
||||
d.ShortName = strings.TrimSpace(pick(d.DisplayName, d.FullName))
|
||||
}
|
||||
return d
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user