Разработка:storages/reports

Материал из DOF
Перейти к: навигация, поиск
Плагин
Название reports
Тип storages


Таблица в базе данных

reports - Отчеты о деятельности учителей и учеников. Изначально через интерфейс "заказывается" отчет(полный или краткий) по учителям или ученикам и лишь потом с использованием КРОНА отчет формируется(срабатывание крона раз в сутки по умолчанию)

Подробный формат полей в таблице:

  • plugintype - тип плагина (storage,im....)
  • plugincode - код плагтна
  • code - код отчета внутри плагина.
  • name - название отчета русскими буквами. Генерируется в момент создания
  • personid - id из талицы persons того,кто запросил отчет
  • requestdate - когда запросил отчет
  • completedate - когда отчет был завершен
  • crondate - время, раньше которого отчёт не будет собираться(иными словами, когда отчету начать собираться)
  • status (пока без workflow) - requested(запрошен), completed(сформирован), error(ошибка)
  • departmentid, - id подразделения из талицы departments , которому принадлежит отчет
  • objectid - id объекта по которому запрашивается отчет(необязательно)
  • begindate- с какого периода собираются данные для отчета(необязательно)
  • enddate - по какой период собираются данные для отчета(необязательно)
  • requestdata - дополнительные данные для формирования отчета (будет хранится сериализованный объект). Текст, 64 килобайта. Индекс не * создавать(необязательно)
  • filepath - относительный путь к файлу. имя файла - это id записи. Расширение dat.

Правила составления отчетов

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

   /reports/<код_отчета>/init.php

и называться

   dof_<код плагина>_<название плагина>_report_<код отчета>

Пример

Для отчета с кодом "studentshort".

Путь к файлу:

   /dof/sync/mreports/reports/studentshort/init.php

Название класса:

   dof_sync_mreports_report_studentshort

Класс dof_storage_reports_basereport

plugintype()

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

plugincode()

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

code()

Абстрактный метод. Код самого отчета. В одном плагине не должно быть двух отчетов с одинаковым кодом.

name()

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

save()

Метод, создающий структуру объекта для вставки в базу. Метод вызывается автоматически, и его не следует переопределять без необходимости. Если нужно дополнить или изменить логику сохранения данных - то переопределяется метод save_data().

save_data()

Метод, которые следует переопределить в дочернем классе, если нужно добавить новые данные в объект отчета. Входные параметры:

  • (object) $report - объект данных для отчета.

Возвращаемые значения:

  • (object) $report - дополненный объект с данеными для отчета.
generate()

Эта функция запускает процес сбора данных для отчета.

load()

Загрузить данные для отчета из базы данных

load_file()

Загрузить данные для отчета из файла

load_data()

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

generate_data (protected)

Метод, предусмотренный для расширения логики генерации файла в дочерних классах.

add_report_css

Метод, предусмотренный для добавления css файлов до печати шапки документа. Переопределяется в дочернем классе.

add_report_js

Метод, предусмотренный для добавления js файлов до печати шапки документа. Переопределяется в дочернем классе.

templater_csv_show_header

Поддержка отчетом заголовков в csv-формате.