17-02-2021 22:15
Метод фасада для запуска возврата товара
POST   /bs-core/main/loans/recalc
Краткое описание логики работы метода:
- Валидация на заполнение обязательных полей, корректность сумм нового графика и проверка отсутствия просроченных сумм по кредитному контракту.
- Выяснение типа возврата - полный или частичный (полный в случае, если Сумма возврата совпадает с суммой текущего графика)
- Запуск кастомизированного документа Восстановление (при полном возврате восстанавливаются все погашения кроме штрафов, при частичном - восстанавливается только погашенная ОС)
- Если возврат полный - списываем все суммы по контракту с видом движения Корректировка
- Если частичный возврат - делается перерасчет графика по переданному новому графику (корректировка списания ОС, сохранение нового графика, корректировка выдача ОС на новый график - включая прошедшие транши)
- Получаем сумму, которую восстановили документом Восстановление выше и на эту сумму пополняем лицевой счет (пай) - новый документ для пополнения пая без ДДС
- Запускаем докумет Погашение реакцепт всех кредитных контрактов клиента за счет доп.пая - новый документ, работает также как документ погашения контрактов за счет пая, только создаёт операции с видом движения Погашение реакцепт.
Важно - метод создаёт документы как по кредитному контракту, так и по паю-лицевому счету, поэтому при необходимости отката нужно будет удалять документы по обоим этим контрактам.
Коды ошибок:
- 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 - Суммы ОС на траншах не соответствуют остатку ОС по контракту после возврата
- Коды ошибок для переданного графика (аналогичные проверки как и для метода выдачи займа)
Запрос
1. POST /bs-core/main/loans/recalc
{
"date": 1534411994456,
"contractName": "ttt133",
"returnAmount": 10000,
"newSchedule": {
"tranches": [
{
"repaymentDate": "2018-08-14",
"principal": 20000,
"interest": 0
},
{
"repaymentDate": "2018-08-21",
"principal": 20000,
"interest": 0
}
]
}
}
2. POST /bs-core/main/loans/recalc
{
"date": 1565943643000,
"contractName": "cont14",
"returnAmount": 8000,
"newIntFreeSchedule": {
"tranches": [
{
"repaymentDate": "2019-07-17",
"principal": 30000,
"interest": 0
}
]
},
"newSchedule": {
"tranches": [
{
"repaymentDate": "2019-07-17",
"principal": 15000,
"interest": 0
},
{
"repaymentDate": "2019-08-17",
"principal": 15000,
"interest": 0
}
]
}
}
Описание параметров
Параметр | Обязателен | Тип данных | Описание |
date | О | [timestamp] | Дата в формате unix timestamp в миллисекундах. Поле не является обязательным (если не передано - используется текущие дата-время). |
contractName | R | [string] | Номер контракта |
returnAmount | R | [float] | Сумма возврата |
newSchedule | О | [object] | Новый график. Поле newSchedule можно не передавать в случае если происходит полный возврат. |
newSchedule.tranches | О | [collection] | Транши |
newSchedule.tranches._.repaymentDate | О | [date] | Дата платежа в формате YYYY-MM-DD. |
newSchedule.tranches._.principal | О | [float] | ОС |
newSchedule.tranches._.interest | О | [float] | Процент |
Ответ
У данной функции отсутствует описание параметров ответа