|
Есть подсистема учета выданных кредитов, которая должна обеспечивать расчет графиков платежей, учет платежей от заемщиков, учет остатков по платежам и просроченных платежей, начисления пени и штрафов и т.д.
Сейчас это реализовано с помощью одного основного документа “График платежей”, в котором храниться вся информация. Это достаточно неудобно как с точки зрения удобства работы с данными - все сосредоточено в одном месте, код слишком перегружен, так с точки зрения модификации алгоритмов расчета, которые на текущий момент требуют серьезных изменений как по структуре хранения данных, так и по изменению кода.
Поставлена задача переделать этот участок для более гибкой и удобной работы. Нужен совет, как бы можно было организовать хранение данных для решения поставленных задач.
На текущий момент вырисовывается следующая возможная схема
1. Данные хранить в 2-х регистрах (возможно больше): ТекущаяЗадолженность Измерения: - Заемщик - Тип суммы (долг, проценты, пени и т.д.) Ресурсы - Сумма ПросроченнаяЗадолженность Измерения: - Заемщик - Тип суммы (долг, проценты, пени и т.д.) Ресурсы - Сумма
2. Документ “Начисления” Его задача один раз в месяц (1-го числа) начислять текущую задолженность по платежам по заемщикам, данные пишутся в регистр “ТекущаяЗадолженность”
3. Документ “Закрытие месяца” Его задача один раз в месяц (в последний день месяца) переносить остатки по регистру “ТекущаяЗадолженность” в регистр “ПросроченнаяЗадолженность” и начислять пени и штрафы на просроченные платежи (где хранить пока не решил, возможно в регистре “ТекущаяЗадолженность”, возможно в отдельном.
4. Прочие документы, которые также могут влиять на остатки по регистрам (например “Фактические платежи”, “Досрочное погашение”, “Списание пени” и т.д.)
Для определения текущей задолженности по платежам складываем остатки по регистрам, начисляем текущие пени на остатки по регистру “ПросроченнаяЗадолженность”.
Вроде все хорошо, но есть одно но.. По каждому заемщику задолженность имеет сложную структуру, т.е состоит из нескольких частей (долг, проценты, просроченный долг, просроченные проценты, пени, штрафы и т.д.)
Таким образом, например, документ “Начисление” должен иметь структуру табличной части: Строка 1 - Заемщик 1 Вид платежа 1 - Сумма Вид платежа 2 - Сумма .. Вид платежа N - Сумма Строка 2 - Заемщик 2 Вид платежа 1 - Сумма Вид платежа 2 - Сумма .. Вид платежа N - Сумма
Данную структуру довольно сложно реализовывать 7.7 (хотя различные варианты конечно существуют).
Возникла мысль реализовать это в виде одного общего документа вида Строка 1 - Заемщик 1 - Начисление 1 (ссылка на документ)
И набора подчиненных документов вида Строка 1 - Вид платежа 1 - Сумма Строка 2 - Вид платежа 2 - Сумма .. Строка N - Вид платежа N - Сумма
Аналогичную структуру имеют остальные документы (“Закрытие месяца”, “Фактические платежи” и т.д.)
Но тогда получим очень большое кол-во документов (заемщиков около 3000, по каждому начисление, закрытие, платежи каждый месяц, итого в год грубо от 90000 документов). Это конечно не такая уж и проблема, но журнал документов будет пухнуть со страшной силой.
Короче нужен совет, как бы это можно было еще организовать, думаю на этим уже 2-ю неделю, весь мозг сломал.
|