Алгоритм работы массовой печати доступов
Сам функционал необходим для того, чтобы Операторы ЕМЦ могли сразу распечатать одной пачкой доступы всем мигрантам, которые должны в тот или иной день получить свои патенты. Таким образом, им не будет необходимо печатать каждому доступ в МП из профиля мигранта, а могу заранее подготовить распечатки и разложить по конвертам с патентами.
Определение пользователей для выгрузки
Пользователи определяются по полю gb_profile.patent_date_from
, куда в процессе импорта вставляются данные по дате получения патента.
Во избежание случайного изменения доступов для тех пользователей, которые уже получили свои патенты, указывается лимит на доступные даты.
В настоящий момент это условие gb_profile.patent_date_from
> current date
Интерфейс
В разделе Администрирование пользователю доступна кнопка "Печать доступов на дату".
При открытии этого экрана отображается календарь, центрированный на текущем месяце. Пользователь может выбрать интересующий его день и на него распечатать доступы. Дни, по которым возможно сделать распечатку доступов, подсвечиваются, остальные - задизейблены и не кликабельны.
После выбора даты, пользователь должен в всплывающем окне подтвердить, что он сейчас планирует распечатать доступ для всех пользователей за выбранную дату, после того, как он нажмет "ок" и подтвердит свой выбор, ему выдается список ссылок на сформированные файлы - по одному файлу на каждую букву алфавита.
Данные файлы являются временными, таким образом, по истечении 12 часов, они удаляются с сервера и ссылки становятся невалидными.
Формирование файлов производится асинхронно, таким образом, после того, как запущено формирование, пользователь может перейти в раздел "Выгрузки" и увидеть статус запущенного процесса.
При клике на сам процесс открывается экран со списком сформированный файлов на каждую букву алфавита, на которую есть фамилии пользователей.
Сформированные файлы также доступны в разделе "Файлы", откуда пользователь может их скачать напрямую.
Группировка файлов
Формируемые файла группируются в буквы алфавита, на которые начинается фамилия мигранта.
В нашем случае это gb_profile.fio
.
Наименование файлов
Файл в названии содержит название буквы, на которую он сформирован, а также дату, за которую он сформирован (которая была выбрана в календаре).
Сортировка файлов
Мигранты внутри файла на одну из букв сортируются по полю db_profile.blank_number
, ASC DESC
Подготовка ПФ для массовой печати
Детали формирования ПФ для массовой печати по ссылке.
На массовую печать на программном уровне присваивается id ПФ, из которой формируется общий файл.
Это таже самая ПФ, которая используется для печати доступа из профиля пользователя.