Разработка:storages/workplaces — различия между версиями
Ibragim (обсуждение | вклад) м (→Дополнительные методы:) |
Konovalov (обсуждение | вклад) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 49: | Строка 49: | ||
===='''update_and_normalize($personid, $organizationid = null, $post = null)'''==== | ===='''update_and_normalize($personid, $organizationid = null, $post = null)'''==== | ||
Реализация увольнения и назначения на должность, смены должности. | Реализация увольнения и назначения на должность, смены должности. | ||
− | Если существует активная привязка: | + | *Если существует активная привязка: |
*1) Если мы меняем органимзацию: | *1) Если мы меняем органимзацию: | ||
переносим старую привязку в архивный статус и создаем новую привязку с новой организацией | переносим старую привязку в архивный статус и создаем новую привязку с новой организацией | ||
Строка 56: | Строка 56: | ||
При создании привязки заносится дата принятия на работу, при перемещении в архивный статус- | При создании привязки заносится дата принятия на работу, при перемещении в архивный статус- | ||
дата увольнения | дата увольнения | ||
− | + | *Если привязка не существует-создаем привязку в активном статусе | |
''Аргументы:'' | ''Аргументы:'' | ||
Строка 112: | Строка 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. |