Show/Hide Toolbars

Руководство администратора

Сопоставление плановых и фактических платежей

Ссылки Назад Вверх Вперед

В категории "Договоры" регистрируются заключенные договоры. Категории "Плановые платежи" и "Фактические платежи" связаны с ней с помощью ДП "Договор" (типа Lookup).
Задачи в категории "Плановые платежи" создаются в момент заключения договора — в каждой задаче указываются срок и сумма очередного платежа. Задачи в категории "Фактические платежи" создаются в момент поступления очередного платежа по договору. Сроки и суммы фактических платежей не всегда совпадают с плановыми. В момент поступления очередного фактического платежа эту сумму необходимо распределить между плановыми платежами так, чтобы он "закрывались" в порядке возрастания дат (т.е. чтобы сначала закрывались самые ранние платежи).

Распределение очередного фактического платежа между плановыми осуществляется итерационно:

payments_howto

Схема распределения платежей.

В категории "Плановые платежи" есть следующие ДП:

"Сумма план" — сумма планового платежа;

"Таблица оплаты" — таблица, в которую записываются фактические платежи, закрывающие его. В таблице есть две колонки: "Сумма оплаты" и "Дата поступления оплаты";

"Сумма факт" — сумма всех поступивших на текущий момент фактических платежей, закрывающих данных платеж. Этот ДП рассчитывается как итоговая сумма по всем строкам таблицы;

"Остаток" — рассчитывается как "Сумма план"-"Сумма факт".

Вся автоматизация по распределению поступивших платежей реализуется в категории "Фактические платежи". Список всех пакетов в привязке к событиям:

Кликните мышью для просмотра изображения в полном размере  

Список настроенных в категории смартов.

 

1. Создайте в категории "Фактические платежи" три вспомогательных ДП:

"Плановый платеж" (lookup) — в этот ДП на каждой итерации цикла распределения записывается ссылка на очередной плановый платеж;

"Остаток" (число) — в этот ДП на каждой итерации цикла распределения загружается неоплаченный остаток по очередному плановому платежу; по умолчанию (т.е. на момент создания задачи) этот ДП равен 0;

"Нераспределенный остаток" (число) — в этот ДП на каждой итерации цикла распределения записывается остаток от фактического платежа, еще не распределенный к текущему моменту между плановыми платежами.

2. Подготовка к запуску цикла распределения.

2.1. Подготовьте начальное значение ДП "Нераспределенный остаток". На начало первой итерации цикла распределения он должен быть равен полной сумме поступившего фактического платежа. Настройте пакет из единственного смарт-действия, в котором будет заполняться этот ДП, и привяжите его к событию "После постановки задачи":

payments_1_balance_zoom60

Заполнение ДП "Нераспределенный остаток". Кликните мышью для просмотра изображения в полном размере.

2.2. Подготовьте начальные значения ДП "Плановый платеж" и "Остаток". Для этого настройте еще один пакет из двух смарт-действий и также привяжите его к событию "После постановки задачи". В качестве смарт-фильтра используйте выражение, которое определяет, есть ли незакрытые плановые платежи по этому договору:

payments_1_start_filter

Смарт-фильтр для определения незакрытого платежа по договору.

Первое действие пакета записывает в ДП "Плановый платеж" ссылку на первый (самый ранний) плановый платеж.

payments_1_start_1_zoom50

Запись в первый плановый платеж. Кликните мышью для просмотра изображения в полном размере.

Второе действие записывает в ДП "Остаток" сумму из этого планового платежа.

Кликните мышью для просмотра изображения в полном размере

Запись остатка.

3. Итерация цикла распределения заключается в следующем: очередной плановый платеж закрывается исходя из значения текущего нераспределенного остатка, а затем сам нераспределенный остаток уменьшается на списанную сумму. Событием, запускающим очередную итерацию цикла, является очередное изменение ДП "Остаток".

Создайте два пакета, привязанных к событию "После смены ДП" для ДП "Остаток".

3.1. Первый пакет состоит из единственного действия, которое записывает данные о поступивших средствах в новую строку таблицы платежей в текущем плановом платеже (который "закрывается" на данной итерации).

Кликните мышью для просмотра изображения в полном размере

Запись остатка.

3.2. Второй пакет рассчитывает нераспределенный остаток после закрытия текущего планового платежа. Он тоже состоит из единственного действия:

Кликните мышью для просмотра изображения в полном размере

Расчет нераспределенного остатка.

4. Финальные проверки. Изменение ДП "Нераспределенный остаток" инициирует выполнение еще двух пакетов действий, которые привязаны к событию изменения этого ДП. Эти пакеты определяют, является ли эта итерация последней или нет, и в зависимости от этого выполняют переход на следующую итерацию цикла или подведение итогового нераспределенного остатка (на последней итерации).

4.1. Первый пакет срабатывает, если еще остался нераспределенный остаток и остались незакрытые плановые платежи, то есть цикл нужно продолжать. Условие смарт-фильтра выглядит так:

payments_3_balance_1_filter

Проверка наличия нераспределенного остатка.

Пакет состоит из двух действий. Первое действие записывает в ДП "Плановый платеж" ссылку на очередной плановый платеж (выражение "План платеж с ближайшим сроком" уже использовалось на шаге 2.2).

payments_3_balance_1

Ссылка на очередной платеж.

Второе действие записывает в ДП "Остаток" неоплаченный остаток из этого планового платежа.

payments_3_balance_2

Расчет неоплаченного остатка планового платежа.

Изменение ДП "Остаток" снова запускает пакеты, определенные на шаге 3, т.е. начинает очередную итерацию цикла.

4.2. Второй пакет срабатывает, если еще остался нераспределенный остаток, но незакрытых плановых платежей уже не осталось, то есть цикл нужно прекращать. Такая ситуация может возникнуть, если клиент оплатил большую сумму, чем было запланировано. Условие смарт-фильтра выглядит так:

Кликните мышью для просмотра изображения в полном размере

Смарт-фильтр для наличия нераспределеного остатка при отсутствии незакрытых плановых платежей.

Сам пакет состоит из трех действий. Первое действие записывает в ДП "Плановый платеж" ссылку на последний закрытый плановый платеж.

Кликните мышью для просмотра изображения в полном размере

Ссылка на последний закрытый плановый платеж.

Второе действие записывает в этот последний платеж в таблицу поступивших оплат строку с переплатой, равной нераспределенному остатку.

Кликните мышью для просмотра изображения в полном размере

Запись строки с переплатой.

 

Третье действие обнуляет оставшийся нераспределенный остаток.

payments_3_balance_5

Обнуление остатка.