Разработка:storages/workplaces — различия между версиями
Ilya (обсуждение | вклад) (Добавлено описание событий и проставлены категории) |
Konovalov (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии 1 участника) | |||
Строка 19: | Строка 19: | ||
===Дополнительные методы:=== | ===Дополнительные методы:=== | ||
+ | ===='''widgets_field_variants_list($querytype, $depid, $data)'''==== | ||
+ | |||
+ | Обработка AJAX-запросов из форм. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $querytype(string) - тип запроса | ||
+ | * $depid(int) - подразделение, в котором ищутся должности | ||
+ | * $data(array) - дополнительные данные пришедшие из json-запроса | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив полученных обьектов. | ||
+ | ''Структура работы:'' | ||
+ | # Через case перебираем тип запроса и в зависимости от этого вызываем нужный метод. | ||
+ | # Возвращаем массив вида array(0 => $this->dof->modlib('ig')->igs('choose')), если такого типа запроса нет. | ||
+ | |||
+ | ===='''widgets_workplaces_list($departmentid, $fullname)'''==== | ||
+ | |||
+ | Получить список должностей по первым буквам названия должности(post) | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $departmentid(int) - подразделение, в котором ищутся должности | ||
+ | * $post(string) - первые несколько букв поля post | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив полученных обьектов. | ||
+ | ''Структура работы:'' | ||
+ | # Формируем SQL запрос на получение похожих на строку $post данных по полю post | ||
+ | # Отправляем запрос базе. | ||
+ | # Формируем полученные из базы данные в массив объектов для возвращения в форму. | ||
+ | |||
+ | ===='''update_and_normalize($personid, $organizationid = null, $post = null)'''==== | ||
+ | Реализация увольнения и назначения на должность, смены должности. | ||
+ | *Если существует активная привязка: | ||
+ | *1) Если мы меняем органимзацию: | ||
+ | переносим старую привязку в архивный статус и создаем новую привязку с новой организацией | ||
+ | *2) Если организация не меняется-только обновляем запись | ||
+ | Если активной привязки не существует: создать новую привязку в активном статусе | ||
+ | При создании привязки заносится дата принятия на работу, при перемещении в архивный статус- | ||
+ | дата увольнения | ||
+ | *Если привязка не существует-создаем привязку в активном статусе | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $personid(int) - id персоны | ||
+ | * $organizationid(int) - id организации | ||
+ | * $post(string) - название должности | ||
+ | ''Возвращаемые значения:'' | ||
+ | * bool true|false | ||
+ | ''Структура работы:'' | ||
+ | # Проверяем, существует ли для данного пользователя активная привязка(если не существует-создаем активную привязку) | ||
+ | # Если активная привязка существует: проверяем, совпадает ли переданный id организации, с тем что записан в привязке | ||
+ | # В зависимости от этого совпадения, либо переводим текущую привязку в архивный статус и создаем новую в активном статусе, либо просто обновляем текущую привязку | ||
+ | |||
===События=== | ===События=== | ||
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
Строка 62: | Строка 112: | ||
|Генерируется каждый раз при удалении записи из таблицы workplaces. | |Генерируется каждый раз при удалении записи из таблицы workplaces. | ||
|} | |} | ||
− | |||
− | |||
− |
Текущая версия на 13:18, 30 июня 2014
Плагин | |
Название | workplaces |
Тип | storages |
Таблица в базе данных
workplaces
Подробный формат полей в таблице:
- personid - id персоны в таблице persons
- organizationid - id организации в таблице organizations
- statuswork - рабочий статус (основное место работы/совместитель/не известно/уволен)
- post - должность
- receptiondate - дата приема
- dismissaldate - дата увольнения
- phonework - рабочий телефон
- addnumber - добавочный номер
- comment - коментарий
Дополнительные методы:
widgets_field_variants_list($querytype, $depid, $data)
Обработка AJAX-запросов из форм.
Аргументы:
- $querytype(string) - тип запроса
- $depid(int) - подразделение, в котором ищутся должности
- $data(array) - дополнительные данные пришедшие из json-запроса
Возвращаемые значения:
- (array) - массив полученных обьектов.
Структура работы:
- Через case перебираем тип запроса и в зависимости от этого вызываем нужный метод.
- Возвращаем массив вида array(0 => $this->dof->modlib('ig')->igs('choose')), если такого типа запроса нет.
widgets_workplaces_list($departmentid, $fullname)
Получить список должностей по первым буквам названия должности(post)
Аргументы:
- $departmentid(int) - подразделение, в котором ищутся должности
- $post(string) - первые несколько букв поля post
Возвращаемые значения:
- (array) - массив полученных обьектов.
Структура работы:
- Формируем SQL запрос на получение похожих на строку $post данных по полю post
- Отправляем запрос базе.
- Формируем полученные из базы данные в массив объектов для возвращения в форму.
update_and_normalize($personid, $organizationid = null, $post = null)
Реализация увольнения и назначения на должность, смены должности.
- Если существует активная привязка:
- 1) Если мы меняем органимзацию:
переносим старую привязку в архивный статус и создаем новую привязку с новой организацией
- 2) Если организация не меняется-только обновляем запись
Если активной привязки не существует: создать новую привязку в активном статусе При создании привязки заносится дата принятия на работу, при перемещении в архивный статус- дата увольнения
- Если привязка не существует-создаем привязку в активном статусе
Аргументы:
- $personid(int) - id персоны
- $organizationid(int) - id организации
- $post(string) - название должности
Возвращаемые значения:
- bool true|false
Структура работы:
- Проверяем, существует ли для данного пользователя активная привязка(если не существует-создаем активную привязку)
- Если активная привязка существует: проверяем, совпадает ли переданный id организации, с тем что записан в привязке
- В зависимости от этого совпадения, либо переводим текущую привязку в архивный статус и создаем новую в активном статусе, либо просто обновляем текущую привязку
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
Этот плагин не перехватывает никаких событий |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | workplaces | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
Генерируется каждый раз при вставке новой записи в таблицу workplaces. |
storage | workplaces | update | Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
Пример: array('old' => $dataobject_old, 'new' => $dataobject_new) |
Генерируется каждый раз при обновлении записи в таблице workplaces. |
storage | workplaces | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
Генерируется каждый раз при удалении записи из таблицы workplaces. |