Страница 1 из 1

Учет занятости (работ) сотрудников.

Добавлено: 25 май 2017, 11:14
rozen
Есть задача учитывать работы сотрудников.
Сотрудники организованы в группы, группы пронумерованы.

К примеру: имеем две группы сотрудников, в первой 5, во второй 10.
Группы имеют номера: 1 и 2.

Оператор должен вести учет работы каждого сотрудника и иметь возможность контролировать некоторые моменты, такие как:
1. Все сотрудники должны быть учтены. Если кого-то не внести - это плохо. Нужно что-то вроде индикатора.
2. Не допускать дублирующихся записей сотрудников в один день.

Что делал?
1. Создал Функцию с подсчетом количества записей в определенный день (поле "дата проведения работ");
2. Есть сущность с данными о группах сотрудников, их количестве и номере группы.
3. Пытался прикрутить поле типа "Формула" и использовать имеющиеся условия и данные, но как-то не выходит.

Ни кто подобного не делал?

Re: Учет занятости (работ) сотрудников.

Добавлено: 26 май 2017, 05:06
Евгений
Пытался делать подобные сложные анализы, с выводом результата на экран. В результате разных попыток получилась такая методика. В сущность добавляю поле с типом Формула, в которое вставляю вызов хранимой функции из СУБД, примерно так:
func.JPG
В версии 1.8 формульное поле поддерживает вывод не только числовых, но и строковых значений, поэтому сама хранимая функция выглядит так:

Код: Выделить всё

CREATE DEFINER=`root`@`%` FUNCTION `perf_bonus`(`id` int)
	RETURNS text CHARSET utf8
	LANGUAGE SQL
	NOT DETERMINISTIC
	CONTAINS SQL
	SQL SECURITY DEFINER
	COMMENT ''
BEGIN
    set @Bonus := '';

    ...
    если так то... set @Bonus := 10;
    или вот так... set @Bonus := 20;
    else set @Bonus := '0% Без премии';
    ...

    RETURN @Bonus;
END
К сожалению, таким способом невозможно сделать полноценный индикатор, который показывает значения из локального или глобального поля Раскрывающийся список. Элементы из списка можно подкрашивать разными цветами, что очень наглядно. А поле типа функция может вернуть просто строку текста.

Re: Учет занятости (работ) сотрудников.

Добавлено: 26 май 2017, 05:14
rozen
Спасибо за подсказку. Попробую применить.