Своя организация в настройках (справочник НРД или вручную) вместо зашитого ИНН; ручной ввод: поиск клиента и бумаг в DEPO, одна бумага на поручение
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -32,15 +32,14 @@ import (
|
||||
|
||||
// Идентификаторы M2M на стороне QUIK (фиксированы инструкцией + наши данные).
|
||||
const (
|
||||
quikFirmID = "MC0413600000" // наш код фирмы (таблица Firms, FirmId=2)
|
||||
quikTypeWithdrawM2M = 100 // InstrTypeID «Вывод ЦБ М2М»
|
||||
quikTypeDepositM2M = 101 // InstrTypeID «Ввод ЦБ М2М»
|
||||
quikBaseTypeWithdraw = 9 // базовый Type для вывода (Поставка ЦБ из ДКК)
|
||||
quikBaseTypeDeposit = 8 // базовый Type для ввода (Получение ЦБ в ДКК)
|
||||
quikSecWithdraw = "RUROUTM2M" // МНП-инструмент вывода
|
||||
quikSecDeposit = "RURINM2M" // МНП-инструмент ввода
|
||||
quikSignFlagDepo = 16 // FLG_DEPO — подпись «Депозитарий»
|
||||
quikCheckViaAPI = 1 // @CheckType=1 — через QuikAPI (проверка+блокировка)
|
||||
quikTypeWithdrawM2M = 100 // InstrTypeID «Вывод ЦБ М2М»
|
||||
quikTypeDepositM2M = 101 // InstrTypeID «Ввод ЦБ М2М»
|
||||
quikBaseTypeWithdraw = 9 // базовый Type для вывода (Поставка ЦБ из ДКК)
|
||||
quikBaseTypeDeposit = 8 // базовый Type для ввода (Получение ЦБ в ДКК)
|
||||
quikSecWithdraw = "RUROUTM2M" // МНП-инструмент вывода
|
||||
quikSecDeposit = "RURINM2M" // МНП-инструмент ввода
|
||||
quikSignFlagDepo = 16 // FLG_DEPO — подпись «Депозитарий»
|
||||
quikCheckViaAPI = 1 // @CheckType=1 — через QuikAPI (проверка+блокировка)
|
||||
)
|
||||
|
||||
// errQuikWritesDisabled — предохранитель: пишущие операции запрещены, пока
|
||||
@@ -124,8 +123,8 @@ func quikRegisterWithdrawal(ctx context.Context, s QuikMNPSettings, p QuikWithdr
|
||||
sql.Named("ISIN", p.ISIN),
|
||||
sql.Named("QtyScale", nullInt(p.QtyScale)),
|
||||
sql.Named("Account", nullStr(p.Account)),
|
||||
sql.Named("QuikFirm", quikFirmID),
|
||||
sql.Named("FirmID", quikFirmID),
|
||||
sql.Named("QuikFirm", quikFirmID()),
|
||||
sql.Named("FirmID", quikFirmID()),
|
||||
sql.Named("CanSplit", 0),
|
||||
sql.Named("BlockS", p.Quantity),
|
||||
sql.Named("M2MDepoRecipientINN", nullStr(p.RecipientINN)),
|
||||
@@ -169,8 +168,8 @@ func quikRegisterDeposit(ctx context.Context, s QuikMNPSettings, clientID, isin,
|
||||
sql.Named("QuikClassCode", nil),
|
||||
sql.Named("ISIN", isin),
|
||||
sql.Named("Account", nullStr(account)),
|
||||
sql.Named("QuikFirm", quikFirmID),
|
||||
sql.Named("FirmID", quikFirmID),
|
||||
sql.Named("QuikFirm", quikFirmID()),
|
||||
sql.Named("FirmID", quikFirmID()),
|
||||
sql.Named("CanSplit", 0),
|
||||
sql.Named("BlockS", qty),
|
||||
sql.Named("CheckType", quikCheckViaAPI),
|
||||
@@ -203,7 +202,7 @@ func quikSignWithdrawal(ctx context.Context, s QuikMNPSettings, queryNo float64,
|
||||
sql.Named("ClientID", nullStr(clientID)),
|
||||
sql.Named("Volume", nil), // при подписи всегда NULL
|
||||
sql.Named("IntSecCode", quikSecWithdraw),
|
||||
sql.Named("FirmID", quikFirmID),
|
||||
sql.Named("FirmID", quikFirmID()),
|
||||
sql.Named("SignFlag", quikSignFlagDepo),
|
||||
sql.Named("CheckType", quikCheckViaAPI),
|
||||
)
|
||||
@@ -280,3 +279,11 @@ func nullInt(v int) any {
|
||||
}
|
||||
return v
|
||||
}
|
||||
|
||||
// quikFirmID — код фирмы в QUIK (таблица Firms) = код участника нашей организации.
|
||||
func quikFirmID() string {
|
||||
if globalRC == nil {
|
||||
return ""
|
||||
}
|
||||
return orgCode(globalRC.Snapshot())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user