
базовый приоритет проекта
команда
Капитан, команда, корабль (космический?). Каждый в команде имеет разную ценность. Не хуже, не лучше, разную, и это достойно уважения. Все молодцы по своему. Если у одного проблемы, значит у всех проблемы, поэтому не стесняемся вербально и не вербально давать связь команде, обсуждая сложности или лучшие варианты. Вместе не только веселее, но и быстрее, прибыльнее, интереснее. Проекты и деньги уходят и приходят, а люди остаются с опытом и отличным настроением от проделанной работы и команды, либо с опытом и подорванным здоровьем и нервами. Если первый вариант нравится больше чем второй, то предлагаю познакомиться ;)
―Хочешь, пошли ко мне жить?
состав на проект
Плановый состав в отношении данного проекта:
- тимлид
- дев
- мидл
- мидл
- верстальщик
- аналитик
Набор идет до 18.11.2021 15:00, может быть завершен ранее, тогда эта страница будет удалена.

Необходимо сделать импорт пользователей из CSV в Список пользователей портала.
Таблица будет в CSV,
- Нужно получить массив полей по каждому пользователю из CSV,
- Сформировать массив к добавлению пользователя
- Произвести проверку по имени фамилии и email, если все три в отношении какого-нибудь пользователя найдены, то такого пользователя не добавляем.
- Произвести определение в какое подразделение нужно добавить пользователя и присвоить соответствующий ID в полях
- Если валидация пройдена, всё получено, найдено итп : добавляем пользователя методами битры (желательно D7, но можно и старым API, без разницы)
- Если не пройдена проверка, или ошибка, закинуть пользователя в массив "не пройденных"
- На финише создать файл лога с информацией хода импорта (на своё усмотрение)
- Опционально: создать файлы CSV с импортированными и не импортированными пользователями
- Файл CSV может быть разной кодировки, соответственно если грузим файл в CP-1251 он не должен пойти крякозябрами
- Поля будут помимо стандартных, NAME, SECOND_NAME, LAST_NAME не стандартные UF_LOCATION к примеру
- Нужно предусмотреть, чтобы пользователь добавлялся сразу в нужное подразделение, в файле указан "Отдел" и "Подотдел", нужно находить их в системе, получить ID шник. В качестве теста не принципиальны конкретные данные, можешь взять наобум к примеру
//А для Локации (это кастомное поле UF_LOCATION, к примеру
$arLocation ["1"=>"Локация 1","2"=>"Локация 2"];
//В ключи = IDшники, значение = имя используемое в XLS
- Нужно предусмотреть, чтобы весь код был красиво упакован в класс CustomUserImport, у него были методы AddUser, ValidUser, CreateReport, при констракте соответственно задается константа или переменная с путем и именем файла лога итп.
- Нужно предусмотреть отдачу команд по GET, чтобы было к примеру одной папке файл import.php и data.csv и загрузка шла вызовом import.php/?action=addUser
- Нужно предусмотреть запись в файл /home/bitrix/www/__LOG_EXPORT.log лога о том, какие пользователи были добавлены, какие пропущены, т.к они уже есть или не добавлены из за ошибки. Формат лога на своё усмотрение
- Если по факту импорта, будет формироваться не только лог файла но и csv отдельно по категории пользователь создан / пользователь не создан.
- Прогресс бар импорта пользователей с выводом сообщения в конце, сколько времени занял импорт
- Оформить всё компонентом с файлом component.php и class.php
Расчетное время тестового задания до 4 часов.
УСЛОВИЯ ОПЛАТЫ ОБСУЖДАЮТСЯ ИНДИВИДУАЛЬНО
СТАВКИ ХОРОШИЕ, УСЛОВИЯ ИНТЕРЕСНЫЕ
ЗАПОЛНИТЕ АНКЕТУ ДЛЯ ОБСУЖДЕНИЯ