Независимый форум, посвященный системе БОСС-Кадровик и всему, что с ней связано
|
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
NewAge
Зарегистрирован: 11.06.2010 Сообщения: 108
|
Добавлено: Пт Июн 18, 2010 12:30 Заголовок сообщения: Помогите!!! |
|
|
Я совсем недавно стал работать с БОСС-Кадровиком. Поэтому и прошу помощи. Мне нужно подсчитать по каждому работнику предприятия количество недогуляных дней отпуска на определенную дату. Подскажите как это можно сделать. Буду очень благодарен. |
|
Вернуться к началу |
|
|
Nemoxur
Зарегистрирован: 30.04.2010 Сообщения: 49
|
Добавлено: Пт Июн 18, 2010 16:33 Заголовок сообщения: |
|
|
Ну посчитай например на основе стажа сколько ему всего положено дней и вычти все отгулянные дни. |
|
Вернуться к началу |
|
|
Vitaly Большой шоколадный орден
Зарегистрирован: 29.07.2008 Сообщения: 281 Откуда: Санкт-Петербург
|
Добавлено: Пт Июн 18, 2010 16:49 Заголовок сообщения: |
|
|
И не забыть отзывы из отпуска... если они есть
Считаем стаж в месяцах, если стаж дней < 15?, то +0, если >=15, то +1, умножаем на 2.33 (количество дней за 1 месяц работы) и минус отгулянные. Да ещё не забыть отпуск по уходу за ребёнком, в стаж он идёт, но в отпускные не входит |
|
Вернуться к началу |
|
|
Vitaly Большой шоколадный орден
Зарегистрирован: 29.07.2008 Сообщения: 281 Откуда: Санкт-Петербург
|
Добавлено: Пт Июн 18, 2010 17:08 Заголовок сообщения: |
|
|
А вот код из БОССа Код: | -- Расчет компенсации за неиспользованный отпуск
if @$Ppl:out_date < '2099-01-01' AND 'dlgfield' = 'people.out_date' then {
Let l_dt_out_ := @$Ppl:out_date as date;
execute correct_days_15();
Let @$Ppl:Visluga_Stag_mm = @@pr_stag_leave(@$Glob:pid, @$Ppl:out_date, '1900-01-01', l_dt_out_,_Code_Leave,1, 0, 0, days_in_y_);
DRAWFIELD @$Ppl, Visluga_Stag_mm;
if exists (select top 1 1 from pr_leave
where operat in (0, 6)
and ToD > @$Ppl:out_date
and pid = @@{if 'people' == "people" then break @$Ppl:pid
else {select top 1 cur_pid into cur_pid__ from people where pid = @$Ppl:pid; break cur_pid__}}
and isnull(comp_out_flg, 0) = 0) then return[\3\7 В списке отпусков работника есть отпуск,
\10\3\7 дата окончания которого больше даты увольнения.
\10\3\7Компенсация за неиспользованный отпуск
\10\3\7посчитается неправильно!];
};
proclocal correct_days_15 {
if DAYS_15__ == 1 then {
if DATEDIFF(day, f_dt_out_, l_dt_out_) + 1 < 15 then LET l_dt_out_ = DATEADD ( day , -1, f_dt_out_ )
else {
if DATEDIFF(day, f_dt_out_, l_dt_out_) + 1 <= 30 then LET l_dt_out_ = DATEADD ( day , 29, f_dt_out_ )
else {
if (DATEDIFF(day, f_dt_out_, l_dt_out_) + 1) % 30 > 0 then {
if (DATEDIFF(day, f_dt_out_, l_dt_out_) + 1) % 30 < 15
then LET l_dt_out_ = DATEADD ( day ,-1 * (DATEDIFF(day, f_dt_out_, l_dt_out_) + 1) % 30, l_dt_out_)
else LET l_dt_out_ = DATEADD ( day , 30 - (DATEDIFF(day, f_dt_out_, l_dt_out_) + 1) % 30, l_dt_out_)
};
};
};
};--if DAYS_15__
};--correct_days_15 |
Let @$Ppl:Visluga_Stag_mm поле, которе заполняется в форме, при увольнении работника |
|
Вернуться к началу |
|
|
Игорь
Зарегистрирован: 30.06.2010 Сообщения: 4
|
Добавлено: Пн Ноя 29, 2010 13:49 Заголовок сообщения: |
|
|
а можно где-то получить код функции @@pr_stag_leave ?
мне тоже надо формировать список неотгулянных дней отпуска на текущую дату и пока непонятно как.. так как сотрудники не уволены, то поле visluga_stag_mm не заполняется и надо как-то рассчитать это значение самостоятельно.. _________________ С уважением, Игорь |
|
Вернуться к началу |
|
|
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Пн Ноя 29, 2010 16:10 Заголовок сообщения: |
|
|
Игорь писал(а): | а можно где-то получить код функции @@pr_stag_leave ?
мне тоже надо формировать список неотгулянных дней отпуска на текущую дату и пока непонятно как.. так как сотрудники не уволены, то поле visluga_stag_mm не заполняется и надо как-то рассчитать это значение самостоятельно.. | У меня по двойному клику на этой процедуре открывается окно с её кодом. |
|
Вернуться к началу |
|
|
Николай
Зарегистрирован: 04.10.2010 Сообщения: 22 Откуда: Ростов-на-Дону
|
Добавлено: Пн Ноя 29, 2010 17:55 Заголовок сообщения: |
|
|
Игорь писал(а): | а можно где-то получить код функции @@pr_stag_leave ?
|
Процедура @@pr_stag_leave запускает серверную процедуру prsp_stag_leave. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|