новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Иванов Руслан
Приватное сообщение

Написать расширение для загрузки данных из Excel (xls) файла в ЗУП в Табель

11 |  0
19 мая 2022 в 11:03:40 (2 года 31 неделя 1 день 23 часа назад)
5400
Текст задания
1. Написать расширение для загрузки данных из Excel (xls) файла в ЗУП.
Пример файла xls: “DRV rep RU 2108 by driver.xls”
Загрузку разместить в раздел «Зарплата» - «Учет рабочего времени». Назвать «Загрузка табеля водителей».
Вид интерфейса загрузки:
1) Поле выбора файла вручную;
2) Выбор месяца, за который загружаются данные
3) Кнопка «Загрузить данные»
При загрузке создается новый отдельный документ «Табель» (записывается, но не проводится) по водителям в «Зарплата»-«Табели» (как пример уже создан документ №0000-000015 с одним водителем). Указать в документе «Подразделение»: «Основное».
Также добавить возможность вручную выбрать документ Табель, в который загрузить дополнительно данные, если не требуется создавать новый документ.
2. Данные в создающемся документе «Табель» располагаются в таблице следующим образом:
На каждого сотрудника по 3 строки:
1) В первой отображаются отработанные дневные рабочие часы (с признаком «Я» (явка), например «Я 8»); работа в праздничные и выходные дни «РВ» (например, «РВ 4»); и просто выходные («В», без часов, нерабочий день) за каждый день месяца;
2) Во второй строке отображаются сверхурочные часы (с признаком «С», например «С 4»);
3) В третьей строке отображаются ночные часы (признак «Н», например «Н 2»).
(Столбец «Итого» считается сам автоматически.)

3. Данные из документа берутся следующим образом:
Из страницы «Overtime summary» ничего не берется.
Со страниц «D1 …» и остальных берется (несколько страниц в документе – на каждого водителя по одной):
1) Столбец «Дата» - соответственно даты рабочих дней;
2) Столбец «Водитель»: из первой стоки берется фамилия сотрудника (остальные строки дублируют) (заносится в табель первый найденный сотрудник из справочника «Сотрудники» с такой фамилией).
3) Столбец «Отработанное время»: берутся отработанные часы с округлением до получаса (например, 8:20 округлять до 8,5 ч; 9:45 до 10 ч).
• Если количество часов меньше 9:00, то в таблицу берется полное количество часов «Я» минус 1 час (1 час обеда вычитается). Например, «8:30» округляется в 9, отнимает 1 час обеда и заносится в таблицу как «Я 8»
• Если количество часов больше 9:00, значит есть переработка (больше 9 часов включая обед), то учитывается соседний столбец «Переработка». Часы переработки вычитаются из общих отработанных часов и заносятся в поле сверхурочных.
Например, отработанное «12:45» и переработка «3:45»: округление в 13 и 4 часа, с вычетом 1 часа обеда из явки получаем: 8 обычных часов работы, 1 час обеда и 4 часа переработки: а именно «Я 8» и «С 4».
• В случае, если в столбце «Начало работы» значение попадает в промежуток ночных часов (с 22:00 до 6:00), это значит была работа в ночные часы. Производится дополнительный подсчет: находится разница между 6:00 и «Началом работы» (если работа продолжалась поле 6:00), либо между «Конец работы» и «Начало работы». Эта разница является ночными часами и вносится в третью строку таблицы «Табеля» с признаком «Н»: например, начало работы «2:30» и окончание «6:30», то разница между 6:00 и 2:30 будет 3:30, то значение ночных часов выходит «Н 3,5» (и соответственно остается ночные часы вычитаются из отработанного времени и остаются дневные часы «Я 0,5» в первой строке); если начало «2:30» и окончание в «4:00», то будет «Н 1,5» (соответственно остается в первой строке не «Я 0», а «В»).
4) Если в поле «Отработанное время» стоит прочерк, то в первой строке на этот день в «Табеле» ставится «В» (выходной).
4. При загрузке данных учитывается «Производственный календарь» из базы ЗУП:
• Автоматически указываются в «Табеле» рабочие и выходные (праздничные дни);
• Автоматически присваивается признак «РВ» вместо «Я» рабочим часам в первой строке в выходные (праздничные) дни (признаки «С» и «Н» не меняются).


Во вложении файл ТЗ и пример файла для загрузки.
0
Отклики (4)