Разработка:storages/workplaces — различия между версиями
Yumeneco (обсуждение | вклад) м («Разработка:storages/workplace» переименована в «Разработка:storages/workplaces») |
Konovalov (обсуждение | вклад) |
||
(не показано 6 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{Infobox_Plugin | {{Infobox_Plugin | ||
− | | name = | + | | name = workplaces |
| type = storages | | type = storages | ||
}} | }} | ||
===Таблица в базе данных=== | ===Таблица в базе данных=== | ||
− | '' | + | ''workplaces'' |
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
− | * personid - id персоны | + | * personid - id персоны в таблице [[Разработка:storages/persons | persons ]] |
− | * organizationid - id организации | + | * organizationid - id организации в таблице [[Разработка:storages/organizations | organizations ]] |
* statuswork - рабочий статус (основное место работы/совместитель/не известно/уволен) | * statuswork - рабочий статус (основное место работы/совместитель/не известно/уволен) | ||
* post - должность | * post - должность | ||
Строка 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 организации, с тем что записан в привязке | ||
+ | # В зависимости от этого совпадения, либо переводим текущую привязку в архивный статус и создаем новую в активном статусе, либо просто обновляем текущую привязку | ||
+ | |||
+ | ===События=== | ||
+ | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
+ | ====Перехватываемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые перехватывает этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий'' | ||
+ | |} | ||
+ | ====Генерируемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые генерирует этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |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. | ||
+ | |} |
Текущая версия на 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. |