fix(payments): убрать обязательное поле «КПП банка» из реквизитов счёта #81

Merged
ant merged 1 commits from fix/remove-bank-kpp into dev 2026-06-04 19:21:20 +00:00
Owner

Снимает обязательное поле «КПП банка» из банковских реквизитов счёта (IBankAccount.details.kpp).

Причина

КПП — реквизит юрлица; у ИП и физлиц его нет. Общий тип реквизитов счёта требовал КПП у всех держателей (фронт через notEmpty, бэкенд через @IsNotEmpty), поэтому ИП не мог зарегистрироваться — пустой КПП заворачивался.

Что сделано (все точки входа)

  • cooptypes: тип IBankAccount.details; шаблон 100.ParticipantApplication — render-аргументы trans и перенумерация плейсхолдеров (банковский КПП реально печатался в заявлении ИП/юрлица); mock defaultBankAccount.details в registry.
  • controller: BankAccountDetailsInput/BankAccountDetails DTO, domain-интерфейсы, init-config.
  • factory: ajv-схема BankAccountSchema (properties + required) + тестовые mock.
  • sdk: bankAccountSelector + перегенерённый zeus (generate-schema → generate-client).
  • desktop: формы ИП/юрлица, реквизиты (PaymentDetails/BankDetailsCard/PaymentMethods), добавление способа оплаты, CSV-импорт участников.

НЕ затронуто

КПП организации/кооператива (details.kpp, отчётность, qrpay/sberpoll QR) — легитимный реквизит юрлица, оставлен.

Проверки

  • cooptypes/factory/sdk сборка (unbuild + tsc) — зелёные
  • controller generate-schema (56 резолверов) + generate-client — ок; в schema.gql у BankAccountDetails(Input) остались только bik/corr
  • ESLint по изменённым desktop-файлам — чисто
  • Полный vue-tsc по desktop — на CI

Generated with Claude Code

Снимает обязательное поле «КПП банка» из банковских реквизитов счёта (IBankAccount.details.kpp). ## Причина КПП — реквизит юрлица; у ИП и физлиц его нет. Общий тип реквизитов счёта требовал КПП у всех держателей (фронт через notEmpty, бэкенд через @IsNotEmpty), поэтому ИП не мог зарегистрироваться — пустой КПП заворачивался. ## Что сделано (все точки входа) - cooptypes: тип IBankAccount.details; шаблон 100.ParticipantApplication — render-аргументы trans и перенумерация плейсхолдеров (банковский КПП реально печатался в заявлении ИП/юрлица); mock defaultBankAccount.details в registry. - controller: BankAccountDetailsInput/BankAccountDetails DTO, domain-интерфейсы, init-config. - factory: ajv-схема BankAccountSchema (properties + required) + тестовые mock. - sdk: bankAccountSelector + перегенерённый zeus (generate-schema → generate-client). - desktop: формы ИП/юрлица, реквизиты (PaymentDetails/BankDetailsCard/PaymentMethods), добавление способа оплаты, CSV-импорт участников. ## НЕ затронуто КПП организации/кооператива (details.kpp, отчётность, qrpay/sberpoll QR) — легитимный реквизит юрлица, оставлен. ## Проверки - cooptypes/factory/sdk сборка (unbuild + tsc) — зелёные - controller generate-schema (56 резолверов) + generate-client — ок; в schema.gql у BankAccountDetails(Input) остались только bik/corr - ESLint по изменённым desktop-файлам — чисто - Полный vue-tsc по desktop — на CI Generated with Claude Code
claude added 1 commit 2026-06-04 11:41:02 +00:00
fix(payments): убрать обязательное поле «КПП банка» из реквизитов счёта
Typecheck / desktop (pull_request) Successful in 13m21s
Typecheck / controller (pull_request) Successful in 13m24s
93b94326ca
КПП — реквизит юрлица, у ИП и физлиц его нет. Общий тип реквизитов
банковского счёта (IBankAccount.details.kpp) требовал КПП у всех держателей
счёта, из-за чего индивидуальный предприниматель не мог пройти регистрацию
(и фронт, и бэкенд заворачивали пустой КПП).

Поле снято во всех слоях:
- cooptypes: тип IBankAccount.details + шаблон ParticipantApplication
  (render-аргументы и плейсхолдеры) + mock-данные registry
- controller: BankAccountDetails(Input) DTO, domain-интерфейсы, init-config
- factory: ajv-схема BankAccountSchema (properties + required)
- sdk: zeus-селектор bankAccountSelector + перегенерённый zeus-клиент
- desktop: формы ИП/юрлица/физлица, реквизиты, добавление способа оплаты,
  CSV-импорт участников

КПП организации/кооператива (details.kpp, отчётность, qrpay/sberpoll)
НЕ затронут — это легитимный реквизит юрлица.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ant approved these changes 2026-06-04 19:21:14 +00:00
ant merged commit 85e2f05bdb into dev 2026-06-04 19:21:20 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: C9S/mono#81