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]

Процент

Ответ

У данной функции отсутствует описание параметров ответа