Метод фасада для запуска возврата товара
Краткое описание логики работы метода:
-
Валидация на заполнение обязательных полей, корректность сумм нового графика и проверка отсутствия просроченных сумм по кредитному контракту.
-
Выяснение типа возврата - полный или частичный (полный в случае, если Сумма возврата совпадает с суммой текущего графика)
-
Запуск кастомизированного документа Восстановление (при полном возврате восстанавливаются все погашения кроме штрафов, при частичном - восстанавливается только погашенная ОС)
-
Если возврат полный - списываем все суммы по контракту с видом движения Корректировка
-
Если частичный возврат - делается перерасчет графика по переданному новому графику (корректировка списания ОС, сохранение нового графика, корректировка выдача ОС на новый график - включая прошедшие транши)
-
Получаем сумму, которую восстановили документом Восстановление выше и на эту сумму пополняем лицевой счет (пай) - новый документ для пополнения пая без ДДС
-
Запускаем докумет Погашение реакцепт всех кредитных контрактов клиента за счет доп.пая - новый документ, работает также как документ погашения контрактов за счет пая, только создаёт операции с видом движения Погашение реакцепт.
Важно - метод создаёт документы как по кредитному контракту, так и по паю-лицевому счету, поэтому при необходимости отката нужно будет удалять документы по обоим этим контрактам.
Коды ошибок:
-
NO_DATA_ERROR - никакие данные не переданы
-
NO_RETURN_AMOUNT_ERROR - Не указана сумма возврата
-
CONTRACT_NAME_IS_NOT_SPECIFIED_ERROR - Не передан номер кредитного контракта
-
CONTRACT_NOT_FOUND_BY_NAME_ERROR - Не найден кредитный контракт по переданному номеру
-
CONTRACT_MUST_BE_ISSUED_ERROR - Кредитный контракт не выдан
-
CONTRACT_IS_OVERDUE_ERROR - По контракту есть просроченные суммы
-
TRANCHE_TOTAL_PRINCIPAL_NOT_EQUAL_REMAINED_AMOUNT_ERROR - Суммы ОС на траншах не соответствуют остатку ОС по контракту после возврата
-
Коды ошибок для переданного графика (аналогичные проверки как и для метода выдачи займа)
Request Body
Номер контракта
Дата в формате unix timestamp в миллисекундах. Поле не является обязательным (если не передано - используется текущие дата-время)
"date-time"Идентификатор вида суммы. Это поле является условно обязательным. Если передается коллекция fees, то тогда этот параметр является обязательным
"int64""int64"Идентификатор момента начисления сбора. Это поле является условно обязательным. Если передается коллекция fees, то тогда этот параметр является обязательным
"int64"Штраф за просрочку. Это поле не обязательно. Его значение по умолчанию равно false
Участвует в расчёте ПСК. Это поле не обязательно. Его значение по умолчанию равно true
Не начислять. Это поле не обязательно. Его значение по умолчанию равно false
Не погашать. Это поле не обязательно. Его значение по умолчанию равно false
Значение
"double""int64"Транши
Новый график. Поле newSchedule можно не передавать в случае если происходит полный возврат
Транши
Сумма возврата
"double"Responses
OK
При успешном вызове возвращается пустая строка. Иначе метод возвращает ошибку
Статус запроса (ok/error)
"error""ok"Дата и время запроса (unix timestamp в мс)
"int64"