Алгоритм определения дня расчета

 

Одним из важнейших параметров, определяемых для плана платежа, является день расчета. День расчета указывается в поле День расчета в окне редактирования группы планов платежей и группы планов минимальных платежей.

 

Примечание

День расчета, число от 1 до 31, может быть задан для платежей, периодичность которых равна месяцу (Значение 31 соответствует последнему числу месяца, даже если в месяце меньше дней). В остальных случаях днем расчета является первое число периода.

 

Значение дня расчета влияет на процесс выставления счетов по услуге, связанной с данным планом платежа. Рассмотрим этот параметр подробнее на примерах. Ниже используются следующие обозначения:

Sb — дата начала действия услуги S;

Se — дата окончания действия услуги S;

Bb — начало периода выставления счета по услуге S;

Be — завершение периода выставления счета по услуге S;

X — день расчета плана платежей, связанного с услугой S;

D — период начисления плана платежей, связанного с услугой S.

 

Очевидно, что на эти даты накладываются следующие ограничения: Sb Se, Bb Be.

Рассмотрим различные взаимные положения дат Sb, Se, Bb, Be и X.

Можно выделить две формы расчета суммы статьи счета, связанные с взаимным положением параметров Be и X.

Если Be < X, то процедура выставления счета производит так называемый «предварительный расчет». В этом случае сумма статьи счета вычисляется за период времени [Bb, Be] с учетом срока действия услуги [Sb, Se], а именно за период времени, равный пересечению этих промежутков: [Bb, Be] [Sb, Se]. Параметр «дата операции» устанавливается равным правой границе вышеуказанного пересечения.

Если же Be > X, то выполняется так называемый «окончательный расчет». В этом случае сумма статьи счета вычисляется за период времени D с учетом срока действия услуги [Sb, Se], а именно за период времени, равный пересечению этих промежутков: D [Sb, Se]. Параметр «дата операции» устанавливается равным X.

 

Как в схеме «предварительного», так и в схеме «окончательного» расчета сумма платежа рассчитывается пропорционально временным промежуткам, правила формирования которых рассмотрены выше. Предполагается, что сумма плана платежа указана за период начисления D.

 

Отдельного рассмотрения требует случай отсутствия D в плане платежей (в раскрывающемся списке Период диалогового окна План платежей выбрано значение Без периода). В этом случае процедура выставления счетов считает, что D — это один день и вычисляет сумму статьи счета за период [Bb, Be] [Sb, Se]. Важным побочным эффектом установки D равным одному дню является то, что происходит умножение суммы плана платежей на количество дней в вышеуказанном периоде при вычислении суммы статьи счета по услуге S.

 

Для пояснения положений, высказанных выше, рассмотрим ряд примеров.

Bb Be < Sb Se или Sb Se < Bb Be.

Очевидно, что в этих случаях счет по услуге S не будет выставлен, так как она не была активна в промежуток времени [Bb, Be].

 

Sb Bb X Be Se.

Счет будет выставлен за период [Bb, Be], сумма счета будет рассчитана по схеме «окончательного расчета».

 

Sb Bb Be < X Se.

Счет будет выставлен за период [Bb, Be], сумма счета будет рассчитана по схеме «предварительного расчета».

 

Sb X Bb Be Se.

Счет будет выставлен за период [Bb, Be], сумма счета будет рассчитана по схеме «окончательного расчета».

 

Sb Bb Be Se < X.

Счет будет выставлен за период [Bb, Be], сумма счета будет рассчитана по схеме «предварительного расчета».

 

X Sb Bb Be Se.

Счет будет выставлен за период [Bb, Be], сумма счета будет рассчитана по схеме «окончательного расчета».

 

X Sb Bb Se Be.

Счет будет выставлен за период [Bb, Se], сумма счета будет рассчитана по схеме «окончательного расчета».

 

Sb X Bb Se Be.

Счет будет выставлен за период [Bb, Se], сумма счета будет рассчитана по схеме «окончательного расчета».

 

Sb Bb X Se Be.

Счет будет выставлен за период [Bb, Se], сумма счета будет рассчитана по схеме «окончательного расчета».

 

Sb Bb Se X Be.

Счет будет выставлен за период [Bb, Se], сумма счета будет рассчитана по схеме «окончательного расчета».

 

Sb Bb Se Be X.

Счет будет выставлен за период [Bb, Se], сумма счета будет рассчитана по схеме «предварительного расчета».

 

X Bb Sb Be Se.

Счет будет выставлен за период [Sb, Be], сумма счета будет рассчитана по схеме «окончательного расчета».

 

Bb X Sb Be Se.

Счет будет выставлен за период [Sb, Be], сумма счета будет рассчитана по схеме «окончательного расчета».

 

Bb Sb X Be Se.

Счет будет выставлен за период [Sb, Be], сумма счета будет рассчитана по схеме «окончательного расчета».

 

Bb Sb Be < X Se.

Счет будет выставлен за период [Sb, Be], сумма счета будет рассчитана по схеме «предварительного расчета».

Bb Sb Be Se < X.

Счет будет выставлен за период [Sb, Be], сумма счета будет рассчитана по схеме «предварительного расчета».