Автоматический режим M2M и имитация QUIK МНП
Автоматический режим (Настройка → НРД, выключен по умолчанию): входящие переводы — решение по свежей сверке с DEPO без оператора (пакет только целиком; бумага для квал. инвесторов при неполной или непрочитанной квалификации — отказ M2M08), поручение 16/1 — как только пришёл черновик MF010, поручение 16 по исходящим — по черновику. Нет сверки или ИШ — повтор каждые 3 минуты и оповещение, без сверки ничего не принимается. Обрабатывается только появившееся не раньше суток до включения (старые черновики в INBOX не подаются). Решение не отправляется повторно по уже отвеченному переводу. Имитация QUIK МНП (Настройка → QUIK МНП → цикл): регистрация, подпись, снятие и зачисление проходят как выполненные с пометкой «имитация», в МНП ничего не пишется; события в DEPO — как обычно. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -45,7 +45,7 @@ func quikSecISIN(s m2m.RequestSecurity) string {
|
||||
// ОТМЕНЯЕМ (нельзя переводить то, что не заблокировано).
|
||||
func quikOutgoingBeforeSend(ctx context.Context, rc *RuntimeConfig, req *m2m.M2MTransferRequest) error {
|
||||
q := rc.Snapshot().Quik
|
||||
if !q.WritesEnabled || !q.AutoOut || req == nil {
|
||||
if !quikActive(q) || !q.AutoOut || req == nil {
|
||||
return nil
|
||||
}
|
||||
guid := string(req.Header.GUID)
|
||||
@@ -89,7 +89,7 @@ func quikOutgoingBeforeSend(ctx context.Context, rc *RuntimeConfig, req *m2m.M2M
|
||||
// quikOnDecision — ответ контрагента: по отказанным бумагам снимаем поручения.
|
||||
func quikOnDecision(ctx context.Context, rc *RuntimeConfig, svc *Service, decision *m2m.M2MTransferDecision) {
|
||||
q := rc.Snapshot().Quik
|
||||
if !q.WritesEnabled || !q.AutoOut || decision == nil {
|
||||
if !quikActive(q) || !q.AutoOut || decision == nil {
|
||||
return
|
||||
}
|
||||
guid := string(decision.Header.GUID)
|
||||
@@ -120,7 +120,7 @@ func quikOnDecision(ctx context.Context, rc *RuntimeConfig, svc *Service, decisi
|
||||
// quikOnServiceError — сервис МОСТ отверг перевод целиком: снимаем все поручения.
|
||||
func quikOnServiceError(ctx context.Context, rc *RuntimeConfig, guid, reason string) {
|
||||
q := rc.Snapshot().Quik
|
||||
if !q.WritesEnabled || !q.AutoOut {
|
||||
if !quikActive(q) || !q.AutoOut {
|
||||
return
|
||||
}
|
||||
for _, l := range globalQuikLinks.ForGUID(guid) {
|
||||
@@ -148,7 +148,7 @@ func orderRespVerdict(resps []orderResponse) (done, rejected bool, text string)
|
||||
// quikCycleTick — один проход опросчика.
|
||||
func quikCycleTick(ctx context.Context, rc *RuntimeConfig) {
|
||||
q := rc.Snapshot().Quik
|
||||
if !q.WritesEnabled || q.Server == "" {
|
||||
if !quikActive(q) || q.Server == "" {
|
||||
return
|
||||
}
|
||||
// исходящие: наше поручение 16 принято НРД → подпись; отказ → снятие
|
||||
@@ -303,7 +303,7 @@ func registerQuikOps(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
}
|
||||
guid, isin, op := strings.TrimSpace(r.FormValue("guid")), strings.TrimSpace(r.FormValue("isin")), r.FormValue("op")
|
||||
q := rc.Snapshot().Quik
|
||||
if !q.WritesEnabled {
|
||||
if !quikActive(q) {
|
||||
flash("QUIK МНП: записи в МНП выключены (Настройка → QUIK МНП → Автоматический цикл)")
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user