КРЕДИТНЫЕ ДОГОВОРА
СТРУКТУРА КРЕДИТНОГО ДОГОВОРА
Суррогатом, связывающим запись договора в таблице loan с записями в других таблицах является список из полей loan.contract и loan.cont-code с разделителем - запятая.
УСЛОВИЯ ДОГОВОРА
Условий по договору может быть несколько. Так например, при досрочном гашении или изменении процентных ставок вводится новое условие. Для определения параметров из условия договора на дату, необходимо предварительно определить действующее на запрашиваемую дату условие договора.
СЧЕТА ДОГОВОРА
Для каждого договора заводиться свой набор счетов связанных с ним. Счета привязываются к договору с определенной ролью и на определенную дату, так с течением времени счет привязанный к договору с определенной ролью в силу каких-то причин может быть изменен.
Определение счета договора с указанной ролью на определенную дату:
FIND LAST loan-acct OF loan WHERE loan-acct.acct-type EQ iRoleAcct
AND loan-acct.since LE iDate
NO-LOCK NO-ERROR.
iRoleAcct - роль счета;
iDate - расчетная дата.
Все счета договора на дату:
FOR EACH loan-acct OF loan
WHERE loan-acct.since LE iDate
AND NOT CAN-FIND(FIRST b-loan-acct OF loan
WHERE b-loan-acct.acct-type EQ loan-acct.acct-type
AND b-loan-acct.since LE iDate
AND b-loan-acct.since GT loan-acct.since
NO-LOCK):
...
END.
ГРАФИКИ ПЛАТЕЖЕЙ
Все графики кредитного договора хранятся в таблице term-obl. Разделения записей относящихся к тому или иному графику осуществляется по значению поля term-obl.idnt.
IDNT | Описание |
1 | Плановые платежи по %% |
2 | Плановый остаток |
3 | Плановое погашение ссуды |
10 | График комиссий |
ОБЕСПЕЧЕНИЕ
Обеспечения по договору (залоги, поручительство и т.д.), так же как и графики хранятся в таблице term-obl, при этом значение term-obl.idnt = 5.
ПОРТФЕЛИ ОДНОРОДНЫХ ССУД
История перехода договора по портфелям однородных ссуд ведется в таблице term-obl, при этом значение term-obl.idnt = 128.
Сами ПОСы описаны как договора в таблице loan со значением loan.contract = "ПОС".
Определение ПОСа договора на заданную дату iDate:
DEF VAR iDate AS DATE NO-UNDO.
DEF VAR vPosName AS CHAR NO-UNDO.
FIND LAST term-obl WHERE term-obl.cont-code EQ loan.cont-code
AND term-obl.contract EQ loan.contract
AND term-obl.idnt EQ 128
AND term-obl.end-date LE iDate
AND ((term-obl.sop-date EQ ?)
OR (term-obl.sop-date GE iDate))
NO-LOCK NO-ERROR.
IF AVAIL term-obl THEN vPosName = DelFilFromLoan(term-obl.lnk-cont-code).
ELSE vPosName = "".
СОСТОЯНИЕ ДОГОВОРА (ПАРАМЕТРЫ И ОПЕРАЦИИ)
Состояние договора определяется набор параметров на которых отражаются суммы текущей задолженности, просроченной задолженности, штрафов и т.д. Состояние договора определяется на дату расчета договора, которая храниться в поле loan.since. Для получения состояния договора на другую дату, договор необходимо пересчитать на эту дату.
Параметры договоров имеют свой уникальный код и описаны в таблице loan-par.
Значения параметров договора, отражающих состояние договора на дату, определяются набор операций списаний и начислений. Таким образом, у операции есть параметр по дебету (поле loan-int.id-d) и параметр по кредиту (поле loan-int.id-k).
Все операции по договорам описаны в справочнике "Виды операций" (таблица chowhe). Каждая операция имеет свой уникальный код (id-op), код параметра к которому относится данная операция (amt-id) и фиксированные значения id-d и id-k.
Операции по договору так же можно разделить на 2 типа: автоматические и не автоматические. Тип операции в таблице loan-int определяется логическим полем loan-int.avt. Для автоматических операций данное поле имеет значение YES, для не автоматических - NO. Автоматические операции создаются/удаляются непосредственно при пересчете договора самой системой, в то время как не автоматические операции создаются транзакциями обработки кредитных договоров, и как правило имеют связь с проводками проведенными по балансу по счетам кредитного договора.
Связь операции с проводкой проведенной по балансу, осуществляется посредством полей loan-in.op и loan-int.op-entry.
При этом op-entry.kau-db или op-entry.kau-cr заполняются значениями сформированными следующим образом <contract>,<cont-code>,<Код операции>
vPosName