Ежемесячные оплаты

Обсуждение примера на официальном Форуме

Ежемесячные оплаты Бюджет реальных проектов часто зависит от периодических выплат. Это может быть ежемесячная лизинговая оплата техники, взаиморасчеты с городскими структурами, оплата аренды всевозможных вспомогательных ресурсов, оплата охраны территории, периодические авансы производителям материалов и т.д. То есть каждый месяц (квартал, полугодие) по одной из статей затрат происходит списание определенной повторяющейся суммы. В данном примере речь пойдет именно о повторяющихся определенное время в рамках проекта одинаковых суммах оплат. Моделирование разовых оплат и создание специальных графиков оплат будут рассмотрены в других примерах.

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

 Реализация
Для начала сымитируем в модели само строительство. Для простоты наша стойка будет состоять из двух Операций Строительство 1 и 2, технологически соединенных простой Связью Финиш-Старт. Поставим этим Операциям Длительность [План] по 100 дней. Наша плановая длительность строительства составит 200 рабочих дней.

Гантт работ. Две операции.

Реальная модель строительства может содержать тысячи и даже десятки тысяч Операций. Скорее всего, охрана начнется сразу при появлении на стройплощадке каких-либо мат. ценностей и закончится по факту их полного вывоза и передаче охраны объекта МВД или другой структуре. Для этого нам необходимо в модели определить два соответствующих момента времени. Чтобы упростить себе задачу поиска подобных контрольных точек в будущем, удобно собрать весь куст начальных Операций и куст финальных Операций строительства специальными типами операций — Контрольными событиями (Тип ДПГ). От первого Контрольного события расходятся Связи ко всем начальным Операциям, все завершающие Операции завязываются на второе Контрольное событие. Теперь если какие-то из Операций изменят плановое начало на более ранее, то и первое Контрольное событие сдвинется на более ранний срок, а если какие-то Операции будут задерживаться, то и второе Контрольное событие будет отодвигаться далее по времени. Мы получили две контрольные точки, которые всегда показывают диапазон во времени от появления мат. ценностей на стройплощадке до их исчезновения. Добавим эти два Контрольных события в нашу модель. Старт строительства и Финиш строительства.

Гантт работ. Контрольные события.

Теперь необходимо создать Операцию для моделирования наших периодических оплат. Интервал между нашими Контрольными событиями будет постоянно меняться (изменение в планах, технологиях, отклонения по факту выполнения работ и т.д.). Операция, которая меняет свою длительность в зависимости от двух исходных дат начала и окончания имеет Тип ДПГ Гамак. У Гамака есть лишь два условия — на начало и на окончание. Добавим Гамак в нашу модель и соединим его Связями Старт-Старт с первым Контрольным событием и Финиш-Финиш со вторым. Произведем Расчет расписания без ограничений на ресурсы.

Гантт работ. Гамак.

  Допустим, что мы будем моделировать оплаты каждого 20 числа. Но не всегда 20 число попадает на рабочий день месяца в случае пятидневной рабочей недели. Если для нас важно отслеживать именно факт оплаты раз в месяц (чаще всего этого вполне достаточно), а не конкретный день ее производства, то для подобной Операции достаточно сделать семидневный рабочий Календарь оплат. В противном случае, если 20 число попадет на нерабочий день, то оплата произведена не будет.
Создадим для нашей Операции Оплата ее рабочую Неделю оплат. Далее воспользуемся тем, что все сущности, существующие в модели, оперируют размерностью <в час>. Нашей Операции Оплата мы сделаем рабочее время 1 час в день. Например, с 12.00 до 13.00 для всех дней недели.

Неделя оплат

После этого на основе Недели оплат создадим Календарь оплат.

Календарь оплат

Далее нам необходимо сделать так, чтобы этот рабочий час был единственным за весь месяц и происходил 20 числа. Для этого воспользуемся Календарными исключениями. Помимо стандартных праздников, уже существующих в модели по умолчанию, создадим еще два Календарных исключения, формирующие совместно один рабочий час 20 числа. Два их необходимо для того, чтобы использовать повторяемость исключений 1 месяц и не получить конфликт — превышение интервала исключения над интервалом повторяемости.

  При моделировании подобных циклических Календарных исключений необходимо создать их так, чтобы они заведомо происходили во время всего проекта (если нет условий на определенное время начала или завершения). Работы у нас начинаются в августе 2014. Создадим Календарные исключения в январе-феврале 2014. Далее они автоматически будут повторяться весь проект.

Внимание! При моделировании Календарных исключений не используйте последний день февраля или последние дни месяцев, в которых 31 день. Это нестандартные дни, имеющие собственный график повторяемости, что может внести искажения в желаемый результат.

Переходим в таблицу Календарные исключения. Добавляем Календарное исключение Оплата охраны 20-го 1, отключающее всё рабочее время с 13.00 20 января и до, например, 12.00 10 февраля. Для этого указываем начало Календарного исключения 22.01.2014 13:00, окончание 10.02.2014 12:00 и ставим повторяемость Каждый 1 месяц. После этого точно так же создаем второе Календарное исключение Оплата охраны 20-го 2. Его диапазон будет с 12.00 10 февраля по 12.00 20 февраля.

Календарное исключение Оплата охраны 20-го 1

После этого назначим наши Календарные исключения на Календарь оплат.

Исключения в календаре оплат

Назначим наш Календарь на Операцию Оплаты охраны и произведем Расчет расписания без ограничений на ресурсы. В настройках расчета включим Детализацию сроков, чтобы наглядно увидеть рабочее и нерабочее время и проконтролировать успешность создания графика оплат.

Чекбокс детализация сроков

Гантт работ с оплатами

Временная реализация оплат нами сделана. Каждый месяц 20-го числа с 12.00 до 13.00 на операции Оплата охраны один час рабочего времени до тех пор, пока идет строительство.
Теперь необходимо реализовать собственно денежный поток. Перейдем в таблицу Стоимостные составляющие и создадим там статью затрат (Стоимостную составляющую) Охрана. В реальном проекте оплата охраны может входить в другую статью затрат — все зависит от того, как вы считаете затраты и доходы в модели.

Стоимостная составляющая Охрана

После этого в свойствах Операции Оплата охраны переходим на закладку Стоимости и добавляем там нашу Стоимостную составляющую Охрана. Далее указываем, каким образом по этой Стоимостной составляющей происходит расход. Мы заранее так создали график, что теперь можем воспользоваться стандартным свойством <в час>. У нас в Календаре данной Операции каждый месяц есть один рабочий час, вот на него мы и назначим размер ежемесячной оплаты. Допустим это 1000 руб.

Назначение расхода в час

После этого произведем Расчет затрат

Гантт работ

Мы реализовали ежемесячную оплату охраны строительной площадки, происходящую все время, пока ведутся строительные работы. Внизу расписания выведена Диаграмма с ежемесячными суммами оплат и гистограмма затрат на охрану с нарастающим итогом.

Проверим теперь работоспособность нашей модели. Допустим, плановая длительность Операции Строительство 2 уменьшилась до 50 дней. Изменим ее длительность в свойствах и произведем Расчет расписания без ограничений на ресурсы и Расчет затрат. Количество оплат уменьшилось на 2 автоматически.

Гантт работ

Примеры
Пример модели в Spider Project