package lk // pageTemplates — встроенные страницы Личного кабинета (без внешних зависимостей, // чтобы модуль был одним файлом и ставился на любой веб-сервер). // // Визуальный мир — «Табло» (см. DESIGN.md, раздел «Личный кабинет клиента»): // графитовая доска состояния сверху, светлая бумага реестра, янтарь — «в пути» // и первичное действие, все величины моноширинные табличные. Шрифты грузятся с // Google Fonts, при недоступности сети подхватываются системные аналоги. const pageTemplates = ` {{define "head"}} {{.Title}} {{end}} {{define "money"}}{{if gt . 0.0}}{{fmtmoney .}} ₽{{else}}—{{end}}{{end}} {{define "mark"}}{{end}} {{define "nav"}}
{{template "mark" .}}{{.Title}} Новое поручение {{with .FullName}}{{.}}{{end}}{{with .Contract}} · {{.}}{{end}}
{{if .AsClient}}
Вы в кабинете клиента {{.AsClient}} от имени сотрудника. Поручение можно подготовить, подписывает его клиент.
{{end}}{{end}} {{define "login"}}{{template "head" .}}
{{template "mark" .}}{{.Title}}

Ваши бумаги, поручения и выплаты — на одном табло

01Реестр бумаг по счетам депо и остаток, свободный к переводу 02Поручения депозитарию и их состояние по шагам 03Перевод бумаг в другой депозитарий через сервис MOEX МОСТ

Кабинет работает на сервере депозитария и обращается к учётной системе по защищённому каналу. Данные о вас хранятся в учётной системе, а не в кабинете.

Вход

{{if .Error}}
{{.Error}}
{{end}} {{if .Flash}}
{{.Flash}}
{{end}}

Логин выдаёт депозитарий. Сотрудник входит под своей учётной записью и не знает пароль клиента.

{{end}} {{define "portfolio"}}{{template "head" .}}{{template "nav" .}}{{$p := .P}}
Стоимость портфеля{{if eq .View "archive"}} на {{$p.AsOf}}{{end}}
{{fmtmoney $p.Total}} ₽
{{with .FullName}}Клиент{{.}}{{end}} {{with .Contract}}Договор{{.}}{{end}} {{with $p.AsOf}}{{if eq $.View "archive"}}На дату{{else}}Данные на{{end}}{{.}}{{end}}
Бумаги{{fmtmoney $p.Securities}} ₽ Деньги{{fmtmoney $p.CashRUB}} ₽ Результат{{if ne $p.Cost 0.0}}{{fmtsigned $p.PnL}} ₽ · {{fmtpct $p.PnLPct}}{{else}}—{{end}}
{{if .Flash}}
{{.Flash}}
{{end}} {{if .Error}}
{{.Error}}
{{end}}
Онлайн Архив {{if eq .View "archive"}}
{{end}} {{if eq .View "archive"}}Портфель по брокерскому учёту на выбранную дату{{else if eq $p.Source "quik"}}Позиции и деньги в торговой системе, цены биржи{{else}}Портфель по брокерскому учёту{{end}}
{{if .Structure}}

Структура портфеля

{{range .Structure}}{{end}}
{{range .Structure}} {{.Kind}} {{fmtpct1 .Share}} {{fmtmoney .Value}} ₽ {{end}}
{{end}} {{if and .ShowCash $p.Cash}}

Денежные средства

{{range $p.Cash}}{{fmtmoney .Amount}} {{if eq .Currency "SUR"}}₽{{else}}{{.Currency}}{{end}}{{end}}
{{end}}

Бумаги

{{len $p.Positions}} позиций{{if $p.Positions}}, с ценой {{$p.Priced}}{{end}}
{{if $p.Positions}}
{{range $p.Positions}}{{end}}
БумагаКол-воСредняяЦенаСтоимостьРезультатДоля
{{if .ISIN}}{{.Name}}{{else}}{{.Name}}{{end}}
{{.Kind}}{{if .ISIN}} · {{.ISIN}}{{end}}{{if .Note}} · {{.Note}}{{end}}
{{fmtnum .Quantity}} {{if gt .AvgPrice 0.0}}{{fmtprice .AvgPrice}}{{if .InPct}}%{{end}}{{else}}—{{end}} {{if gt .Price 0.0}}{{fmtprice .Price}}{{if .InPct}}%{{end}}{{if ne .DayPct 0.0}}
{{fmtpct .DayPct}}
{{end}}{{else}}—{{end}}
{{template "money" .Value}} {{if ne .Cost 0.0}}{{fmtsigned .PnL}}
{{fmtpct .PnLPct}}
{{else}}—{{end}}
{{if gt .Share 0.0}}{{fmtpct1 .Share}}{{else}}—{{end}}
{{else}}

{{if eq .View "archive"}}На эту дату бумаг на счёте не было.{{else}}Бумаг на счёте нет.{{end}}

{{end}} {{with $p.Note}}

{{.}}

{{end}}
{{if and (ne .View "archive") .Upcoming}}

Ближайшие выплаты · 90 дней

{{if gt .UpcomingTotal 0.0}}к получению ≈ {{fmtmoney .UpcomingTotal}} ₽{{end}}
{{range .Upcoming}}{{end}}
ДатаБумагаСобытиеНа бумагуВсего
{{.Date}} {{.Security}}
{{.ISIN}} · {{fmtnum .Quantity}} шт.
{{.Kind}}{{if gt .Percent 0.0}}
{{fmtpct1 .Percent}} годовых
{{end}}
{{if gt .PerUnit 0.0}}{{fmtmoney .PerUnit}} ₽{{else if eq .Kind "купон"}}ставка ещё не определена{{else}}по решению эмитента{{end}} {{if gt .Total 0.0}}{{fmtmoney .Total}} ₽{{else}}—{{end}}

Суммы до удержания налога, по данным справочника депозитария; оферта и погашение — при предъявлении бумаг.

{{end}}
{{end}} {{define "transfer"}}{{template "head" .}}{{template "nav" .}}
{{if .Error}}
{{.Error}}
{{end}}

Поручение депозитарию

Заполняется по видам, как и другие поручения кабинета
Черновик {{.Today}}
1. Вид поручения
2. Что переводим {{if .Positions}}
{{range .Positions}}{{end}}
ВыпускСвободноКоличество
{{if and .Transferable (gt .Available 0.0)}}{{end}}
{{.ISIN}}{{if not .Transferable}} · иностранный выпуск, перевод недоступен{{else if eq .Available 0.0}} · свободного остатка нет{{end}}
{{fmtnum .Available}} {{if and .Transferable (gt .Available 0.0)}}{{else}}недоступно{{end}}
{{else}}

Свободных бумаг для перевода нет.

{{end}}
3. Куда переводим
10 цифр для организации. ИНН можно спросить у депозитария, куда переводите бумаги.
Отмена

Переводятся только российские выпуски. Бумаги для квалифицированных инвесторов принимающая сторона может не принять. После отправки в НРД отменить поручение нельзя — состояние будет видно в разделе «Поручения».

{{end}} {{define "claims"}}{{template "head" .}}{{template "nav" .}}
Поручения депозитарию
все виды поручений кабинета
Всего{{.Total}} В работе{{.Active}} Исполнено{{.Done}}
{{if .Flash}}
{{.Flash}}
{{end}} {{if .Error}}
{{.Error}}
{{end}} {{if .Claims}}
{{range .Claims}}{{end}}
НомерДатаВид порученияБумагСостояниеПримечание
{{shortid .GUID}} {{.CreatedAt}} Перевод в другой депозитарий {{.Securit}} {{.StatusRu}} {{if .Reason}}{{.Reason}}{{else}}—{{end}}

Пока поручение в работе, бумаги остаются на счёте, но перевести их повторно нельзя. Если принимающая сторона откажет, бумаги освободятся в тот же день, а причина появится в примечании.

{{else}}

Поручений пока нет.

{{end}}
{{end}} {{define "install"}}{{template "head" .}}{{$d := .D}}
{{template "mark" .}}Установка кабинета

Три шага — и кабинет работает

01Проверка сервера{{if gt $d.Step 1}} — готово{{end}} 02Связь с ядром депозитария{{if gt $d.Step 2}} — готово{{end}} 03Администратор кабинета

Кабинет ничего не хранит у себя: пользователи, пароли и данные клиентов живут в ядре. Здесь сохраняется только способ связи с ним.

{{if $d.Error}}
{{$d.Error}}
{{end}} {{if $d.Notice}}
{{$d.Notice}}
{{end}} {{if lt $d.Step 3}}

Сервер и связь с ядром

{{range $d.Checks}}
{{if .OK}}✓{{else}}✗{{end}}{{.Name}}. {{.Note}}
{{end}}
{{if $d.Waiting}}
Настройки сохранены. Ждём, когда ядро подключится к кабинету по адресу {{$d.Host}}… Страница обновляется сама.

В настройках ядра (раздел «Кабинет клиента») выберите «Ядро подключается к кабинету» и укажите этот адрес. Ключ должен совпадать.

{{else}}

Создаётся в настройках ядра: «Кабинет клиента» → «Создать ключ».

{{end}} {{else}}

Администратор кабинета

Сотрудник депозитария, который входит в кабинет, видит список клиентов и может открыть кабинет клиента на просмотр. Учётная запись заводится в ядре. Если администратор уже есть — шаг можно пропустить.

{{end}}
{{end}} {{define "install_done"}}{{template "head" .}}
{{template "mark" .}}Установка кабинета

Кабинет установлен

Настройки — в файле {{.File}}. Чтобы пройти установку заново, удалите его.

Готово

Клиенты входят по логину и паролю, которые выдаёт депозитарий. Учётные записи заводятся в настройках ядра, раздел «Кабинет клиента».

{{end}} {{define "installed"}}{{template "head" .}}
{{template "mark" .}}Установка кабинета

Кабинет уже настроен

Установщик закрыт: настройки сохранены в {{.File}}. Чтобы изменить их, отредактируйте файл или удалите его и откройте эту страницу снова.

{{end}} {{define "relay_error"}}{{template "head" .}}
{{template "mark" .}}{{.Title}}

Кабинет временно недоступен

Страницы кабинета собирает учётная система депозитария; сейчас связи с ней нет.

{{.Error}}

Попробуйте обновить страницу через минуту. Если не помогает — сообщите в депозитарий.

{{end}} {{define "profile"}}{{template "head" .}}{{template "nav" .}}
Профиль
{{if .FullName}}{{.FullName}}{{else}}Клиент депозитария{{end}}
Договор{{.Contract}} Счетов депо{{.Accounts}} Подача поручений{{if .ReadOnly}}выключена{{else}}доступна{{end}}
{{if .Error}}
{{.Error}}
{{end}}

Счета депо

{{range .AccountList}}
{{.}}открыт
{{else}}

Счета не найдены.

{{end}}

Доступ и безопасность

Вход в кабинет{{.Login}}
Подача поручений{{if .ReadOnly}}выключена депозитарием{{else}}доступна{{end}}
{{if .AsClient}}
Сейчас в кабинетесотрудник депозитария
{{end}}
Завершить работу

Контакты, паспортные данные и реквизиты для выплат меняет депозитарий: обратитесь к своему менеджеру, изменения появятся в кабинете после внесения в анкету.

{{end}} {{define "clients"}}{{template "head" .}}{{template "nav" .}}
Режим сотрудника
Клиенты депозитария
Учётных записей{{len .Clients}} Договоров в учёте{{len .Depo}}
{{if .Error}}
{{.Error}}
{{end}}

Учётные записи кабинета

{{if .Clients}}
{{range .Clients}}{{end}}
КлиентЛогинДоговорСостояние
{{.FullName}}{{.Login}}{{.Contract}} {{if .Active}}активна{{else}}заблокирована{{end}}
{{else}}

Учётных записей кабинета пока нет.

{{end}}

Клиенты депозитария

{{if .DepoError}}
{{.DepoError}}
{{end}} {{if .Depo}}
{{range .Depo}}{{end}}
КлиентДоговорБумаг
{{.Name}}{{.Contract}}{{.Securities}}
{{else}}

Ничего не найдено.

{{end}}

В кабинете клиента сотрудник готовит поручение, подписывает его клиент. Каждый вход сотрудника записывается в журнал.

{{end}} {{define "security"}}{{template "head" .}}{{template "nav" .}} {{$s := .S}}
← Портфель
{{if $s.Name}}{{$s.Name}}{{else}}{{.ISIN}}{{end}}
{{.ISIN}}{{with $s.Kind}} · {{.}}{{end}}
{{with $s.Position}}В портфеле{{fmtnum .Quantity}} Свободно{{fmtnum .Available}}{{end}} {{if gt $s.Price 0.0}}Цена{{fmtmoney $s.Price}}{{end}} {{with $s.Position}}{{if gt .Value 0.0}}Оценка{{fmtmoney .Value}} ₽{{end}}{{end}}
{{if .Error}}
{{.Error}}
{{end}} {{with $s.Note}}
{{.}}
{{end}}

Выпуск

{{with $s.Issuer}}
Эмитент{{.}}
{{end}} {{with $s.Kind}}
Вид бумаги{{.}}
{{end}} {{if gt $s.Face 0.0}}
Номинал{{fmtmoney $s.Face}} ₽
{{end}} {{with $s.Maturity}}
Погашение{{.}}
{{end}} {{if $s.QualOnly}}
Доступтолько для квалифицированных инвесторов
{{end}} {{if gt $s.Price 0.0}}
Цена{{with $s.Board}} · {{.}}{{end}}{{fmtmoney $s.Price}}{{with $s.PriceIn}} {{.}}{{end}}
{{end}}
{{with $s.Position}}{{if and .Transferable (gt .Available 0.0)}} Перевести эту бумагу{{end}}{{end}}

График выплат и событий

{{if $s.Payments}}
{{range $s.Payments}}{{end}}
ДатаСобытиеНа бумагуСтавкаСостояние
{{.Date}} {{.Kind}}{{with .FixDate}}
фиксация {{.}}
{{end}}
{{if gt .Amount 0.0}}{{fmtmoney .Amount}} ₽{{else}}—{{end}} {{if gt .Percent 0.0}}{{fmtpct .Percent}}{{else}}—{{end}} {{if .Paid}}выплачено{{else}}ожидается{{end}}
{{else}}

Выплат по этой бумаге в справочнике депозитария нет.

{{end}}

Суммы приведены на одну бумагу по данным справочника депозитария. Фактическая выплата и удержанный налог появятся в операциях по счёту.

{{end}} {{define "operations"}}{{template "head" .}}{{template "nav" .}}
Операции
{{len .Rows}}
за период {{fmtdate .From}} — {{fmtdate .To}}
Покупки{{fmtmoney .BuyRUB}} ₽ Продажи{{fmtmoney .SellRUB}} ₽ Выплаты{{fmtmoney .IncomeRUB}} ₽
{{if .Error}}
{{.Error}}
{{end}} {{if .Note}}
{{.Note}}
{{end}}
{{if .Rows}}
{{range .Rows}}{{end}}
ДатаОперацияИнструментКол-воЦенаСумма
{{.Date}} {{.Kind}} {{if .ISIN}}{{.Name}}
{{.ISIN}}
{{else}}{{.Name}}{{end}}
{{if ne .Quantity 0.0}}{{fmtnum .Quantity}}{{else}}—{{end}} {{if gt .Price 0.0}}{{fmtprice .Price}}{{else}}—{{end}} {{if eq .Side "in"}}+{{else}}−{{end}}{{fmtmoney .AmountRUB}} ₽{{if and .Currency (ne .Currency "SUR")}}
{{fmtmoney .Amount}} {{.Currency}}
{{end}}
{{else}}

За выбранный период операций нет.

{{end}}
{{end}} {{define "documents"}}{{template "head" .}}{{template "nav" .}}
Документы депозитария
{{len .Ready}}
готовых документов{{if .Requests}} · заявок {{len .Requests}}{{end}}
{{if .Flash}}
{{.Flash}}
{{end}} {{if .Error}}
{{.Error}}
{{end}}

Готовые документы

{{if .Ready}}
{{range .Ready}}{{end}}
ДатаДокументПериодСчёт депоСостояние
{{.Date}} {{.Title}}{{with .Note}}
№ {{.}}
{{end}}
{{if .Period}}{{.Period}}{{else}}—{{end}} {{.Account}} {{if eq .State "исполнено"}}готов{{else}}{{.State}}{{end}}

Файлы документов выдаёт депозитарий: бумажный экземпляр в офисе или по электронной почте. В кабинете виден факт подготовки и период документа.

{{else}}

Готовых документов пока нет.

{{end}}

Мои заявки

{{if .Requests}}
{{range .Requests}}
{{.Title}}{{.Date}}{{if .Period}} · {{.Period}}{{end}}{{with .Note}}{{.}}{{end}} {{.State}}
{{end}}
{{else}}

Заявок пока нет.

{{end}}

Заказать документ

Заявка уходит сотруднику депозитария. Срок подготовки и стоимость — по тарифам депозитария; готовый документ появится в списке слева.

{{end}} `