Создание персонала компании

 

Для создания сотрудника компании необходимо воспользоваться процедурой MOD_PERSONAL пакета PLX_IMP.

procedure mod_personal(
  --  Основные параметры --
  mode_        varchar,        -- режим модификации CREATE|UPDATE|DELETE
  last_name_ varchar,          -- Фамилия
  personal_group_id_ integer,  -- Ид. основной группы
  personal_id_ in out integer, -- Ид. сущ. для изменения
  --  необязательные основные параметры
  result_   out integer,       -- ошибка при добавлении ...
  err_msg_  out varchar,
  state_id_ integer default 3,           -- Состояние(по умолч. Работает)
  user_active_ integer default 1,     -- Возможность подключения к БД (через mgate)
  remark_ varchar default null,       -- Описание
  -- Дополнительные параметры --
  first_name_ varchar default null,   --Имя
  sec_name_ varchar default null,   --Отчество
  birthday_ date default null,            -- День рождения
  office_id_ integer default null,        -- Офис
  department_id_ integer default null, -- Подразделение
  empl_id_ integer default null,          --Тип найма
  stuff_id_ integer default null,           -- Должность
  econ_stuff_id_ integer default null,  -- Учетная должность
  employ_date_ date default null,     -- Дата приема на работу
  fire_date_ date default null,            -- Дата увольнения
  email_ varchar default null,            -- Почтовый адрес
  local_phone_ varchar default null, -- Местный номер
  ext_phone_ varchar default null,   -- Городской номер
  home_address_str_ varchar default null, -- Домашний адрес
  reg_address_str_ varchar default null,    -- Адрес прописки
  code_ varchar default null,                      -- Код-идентификатор сотрудника 
  has_sign_ varchar default null,                -- Имеет подпись
  company_info_id_ integer default null      -- Компания 
);

mode_ - задает режимы модификации: CREATE - создание UPDATE - обновление, DELETE - удаление.

personal_group_id_ - ID из таблицы PERSONAL_GROUPS. Обязательный параметр, требуется для определения прав доступа. Значения после инсталляции:

2 - Группа проектирования.

6 - Телефонисты.

8 - Менеджеры по телефонии.

state_id - ID - из таблицы состояний сотрудника PERSONAL_STATE_TYPES. Значения после инсталляции:

1 - В отпуске.

2 - В командировке.

3 - Работает (значение по-умолчанию).

4 - Болеет.

office_id_ - Офисы компании из справочника COMP_OFFICIES.

empl_id_ - Тип найма на работу из справочника PERSONAL_EMPL_TYPES.

department_id_ - Отделы/подразделения компании из справочника COMP_DEPARTMENTS.

stuff_id_ - Должности из справочника COMP_STUFF.

econ_stuff_id_ - Учетные должности COMP_ECON_STUFF.

company_info_id_- Компания из справочника COMPANY_INFO.

result_ - код возврата:

0 - OK

-1 - Отсутствует ссылка на personal_id.

-2 - Сотрудник не найден.

-3 - Неправильно выбран режим.

-4 - Ошибка добавления персонала (сотрудника).

 

home_address_str_, reg_address_str_ передаются в специальном упакованном формате, для получения упакованного формата необходимо воспользоваться вызовом pack_addr_str пакета plx_imp_address.

function pack_addr_str(                       
  zip_code_ varchar, -- индекс
  country_ varchar2, -- страна
  region_ varchar2, -- регион
  сity_ varchar, -- город
  street_ varchar, -- улица
  place_ varchar, -- место
  house_ varchar, -- номер дома
  house2_ varchar, -- корпус литера
  room_ varchar, -- номер квартиры
  non_std_addr_ varchar default null, -- нестандартный адрес
  remark_ varchar default null -- примечание
  need_create number default null -- требуется ли создание?
) return varchar;

need_create - режим создания:

  <> 0 - создание страны, города, улицы, места, если не найдено значение в справочниках;

   0 - или пусто -  поиск id страны, города, улицы, места из справочников, если не найдено, то порождение ошибки.

Связанные с адресами справочники:

Справочник городов - CITIES;

Справочник стран - COUNTRIES;

Справочник улиц - STREETS;

Справочник мест установки оборудования - PLACE_TYPES.

 

После создания сотрудника необходимо создать пользователя БД, для этого необходимо сделать вызов MOD_USER

procedure mod_user(
  mode_  varchar,       -- задает режим модификации  CREATE|UPDATE|DELETE
  user_login_  varchar, -- Имя пользователя(логин)
  user_pass_   varchar, -- Пароль пользователя
  personal_id_ integer, -- Ид. сотрудника для связывания / изменения логина (обязательный параметр)
  result_   out integer, -- Результат, код возврата
  err_msg_ out varchar   -- Сообщение об ощибке
);

mode_ - задает режимы модификации: CREATE - создание UPDATE - обновление, DELETE - удаление.

result_ - код возврата:

0 -  OK.

-1  - Пользователь уже существует, невозможно создать пользователя.

-2  - Пользователь не существует.

-3  - Неправильно выбран режим.

-4  - Не задан personal_id.

-5  - Переданный personal_id не найден в таблице персонала.

-6 -  Указанный логин _______ не найден у выбранного персонала.

-10 - Ошибка при создании пользователя Oracle.

В качестве логина требуется, чтобы использовались буквы латинского алфавита. Логин и Пароль нечувствительны к регистру.

 

После создания сотрудника сотрудник может подключиться к БД, но не имеет право на запуск приложения. Для предоставления доступа к приложению необходимо воспользоваться процедурой MOD_APP_BELONG_TO, в котором необходимо передать ID персонала, для которого предоставляется доступ и ID приложения из справочника приложений APPLICATIONS.

procedure mod_app_belong_to(
  mode_               varchar,  -- режим модификации CREATE|DELETE
  personal_id_        integer,  -- Ид. сущ. сотрудника
  application_id_     integer,  -- Ид. сущ. приложения
  result_             out integer,-- Результат, код возврата
  err_msg_            out varchar -- Сообщение об ошибке
);

result_ - код возврата:

0 -  OK.

-1  - Приложение с ID не найдено.

-2  - Неправильно выбран режим.

-3 - Ошибка при определении права запуска сотрудником приложения.