Разработка калькулятора для BashZakaz

Главная страница

Разработка калькулятора для BashZakaz

Задача

Разработать калькулятор сроков торгов по нескольким методам закупок. У каждого метода закупок свой набор дат, которые зависят от расчета предыдущих результатов с добавлением или вычетом дней (как рабочих, так и каледарных). Расчеты должны высчитываться с рабочими, календарными, выходными, нерабочими, праздничными, сокращенными днями.

Помимо калькулятора необходимо выводить данные по производственному календарю.

Решение

Для решения задачи были разработаны 3 модуля для сайта на Битриксе:

- модуль, который забирает информацию по производственному календарю с сайта consultant.ru (js + php)

- модуль, который обеспечивает редактирование данных ORM таблиц в админке сайта (Vue.js + php)

- модуль, по расчетам дат, берущий информацию из ORM таблиц и производственного календаря (Vue.js + php)

Цветовая палитра

#3e9646
#e6e6e6
#909399
#575757

Производственнй календарь

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

В базе данных хратится структура вида:

  • дата
  • тип
  • рабочий/не рабочий
  • выходной/не выходной
  • праздник/не праздник
  • предпразничный/не предпраздничный
  • не рабочий/рабочий (в связи с указом о нерабочих днях)

Данные берутся с сайта https://www.consultant.ru/law/ref/calendar/proizvodstvennye/ГОД/

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

Также модуль имеет возможность для вывода на страницу построить производственный календарь помесячно с разбивкой на недели.

Модуль имеет своего агента, который будет обновлять календари каждые 30 дней. Имеется возможность отключить обновление и оставить только ручное обновление.

Интерфейс ORM таблиц

Написанное решение не претендует на повсеместное использование, но зато позволяет использовать его как основу для развития самой идеи. Возможности сводятся только к CRUD'у. Сам модуль в принципе и нужен был для контент-менеджеров, чтобы они заносили данные через интерфейс админки.

Итак, как устроен модуль:

Логика работы такова, что для того чтобы работать с ORM классами - нужно их указать в настройках с коллекциями. Таким образом можно использовать любые ORM классы для редактирования.

Есть возможность зарегистрировать классы и указать активности классов для редактирования, которые появятся в раскрывающемся списке при разворачивании

Для удобства у каждого зарегистрированного класса, через интерфейс, можно посмотреть схему ORM модели:

Расчет сроков торгов

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

Интерфейс калькулятора состоит из блоков: выбор метода закупки, выбор исходных данных, выбор даты публикации извещения и расчета сроков закупки.

Данные по проекту

Статус
Сдан
CMS
Битрикс
Год
2021
Длительность
1 месяц
Сферы
Услуги B2B
Клиент
ООО «БашЗаказ»
Разработка калькулятора для BashZakaz
Разработка калькулятора для BashZakaz
Благодарю за просмотр!