M2M incoming: жёсткий запрет частичного решения по ИИС-переводу
Перевод по договору ИИС принимается только целиком: если в одном решении есть и подтверждённые, и отклонённые бумаги — answerIncoming отказывается отправлять такое решение. Частичный приём ИИС привёл бы к неполному переводу и двум ИИС у клиента с потерей льгот. Запрет не обойти ручным решением оператора и переживёт смягчение политики приёма ИИС (iisDecisions). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -105,6 +105,14 @@ func answerIncoming(ctx context.Context, deps incomingDeps, id string, decisions
|
|||||||
markMap[sec.ReferenceID] = mark
|
markMap[sec.ReferenceID] = mark
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Защита ИИС: перевод по договору ИИС принимается только ЦЕЛИКОМ — все бумаги
|
||||||
|
// или ни одной. Частичное решение (часть принять, часть отклонить) дало бы
|
||||||
|
// неполный перевод ИИС и два ИИС у клиента с потерей льгот. Этот запрет не
|
||||||
|
// обойти ни ручным решением оператора, ни будущим смягчением политики приёма.
|
||||||
|
if incomingIsIIS(it) && confirmed > 0 && rejected > 0 {
|
||||||
|
return fmt.Errorf("перевод на ИИС принимается только целиком: нельзя принять часть бумаг (%d) и отклонить часть (%d) — примите все бумаги или отклоните весь перевод", confirmed, rejected)
|
||||||
|
}
|
||||||
|
|
||||||
dec := &m2m.M2MTransferDecision{
|
dec := &m2m.M2MTransferDecision{
|
||||||
Header: m2m.DecisionHeader{
|
Header: m2m.DecisionHeader{
|
||||||
GUID: m2m.UUID(it.GUID), // GUID из запроса робота!
|
GUID: m2m.UUID(it.GUID), // GUID из запроса робота!
|
||||||
|
|||||||
Reference in New Issue
Block a user