Функционал закрытия задач посредством электронной подписи ООО «АРТИС 21»

Компания «АРТИС» основана в 2000 году и на протяжении 22 лет создает корпусную мебель, стремясь превосходить все ожидания клиентов. Один из ведущих производителей корпусной мебели в России.

«АРТИС» в цифрах

Проблема

На сайте не было функционала, позволяющего сотрудникам закрывать задачи и подписывать акты с помощью электронной подписи покупателей.

Решение

Компания «Пиксель Плюс» внедрила функционал для сбора электронных подписей и данных с последующей передачей их в 1C.

Как это работает

Сборщик мебели авторизуется в личном кабинете с помощью номера телефона и полученного пин-кода.

В личном кабинете отображается список заданий для сотрудника. У каждого сборщика свой список задач:

Далее сборщик выбирает вариант работ:

  • Заявки
  • Образцы
  • Рекламация

Выбирая одно из заданий, пользователь переходит к выбору типа приемки:

  • заказчик
  • представитель

Нажимает кнопку Далее, попадает на следующий шаг: написание комментариев.
Предусмотрены кнопки «Назад» для промежуточных шагов.
Комментарии возможны двух видов:

  • от покупателя
  • от сборщика

Далее открывается страница для подписи клиента:

Клиент (покупатель) на экране телефона пальцем подписывает акт выполненных работ, подтверждая полученные услуги по сборке:

После подписи сборщик нажимает кнопку «Отправить» и изображение подписи уходит в 1С вместе со всей доп. информацией, заполненной ранее. Задача фиксируется у сборщика, как закрытая.

После этого у сборщика в личном кабинете возвращает на шаг с еще незакрытыми заданиями.

Список обновляется новым запросом к 1С, т.к. задача, в которой он только что работал, будет считаться закрытой.

Как итог, у заказчика формируется pdf файл акта выполненных работ с подписью.

Акт всегда подписывается в реальном времени, то есть дата в акте проставляется автоматически (фиксируется текущие дата и время)

Реализация

Реализация кабинета происходила в несколько этапов и дорабатывается до сих пор.

В промежутках между этапами 1С-специалисты на стороне заказчика создают методы для отправки всех необходимых данных в API и передают созданные методы нам для внедрения на сайте.

Каждый этап сдается и тщательно тестируется перед началом работы над следующим этапом.

Первым этапом был реализован и протестирован функционал для сбора подписей, который отправляет запрос в 1С с номером заказа и изображением в base64 по заранее созданному на стороне заказчика методу.

Метод SetSignatureImage(Number, FileData, FileExt).
FileData - строка с данными картинки в base64
FileExt - Расширение файла без точки
Number - строка = номер заказа

Для реализации было создано поле canvas, на котором можно рисовать мышкой/пальцем. После получения подписи данное изображение сохраняется в отдельный файл и прикрепляется куда угодно.

Изображение подписи передается в base64:

Вторым этапом был реализован и протестирован процесс закрытия заданий через API.

Уже существующий на тот момент алгоритм закрытия заданий через форму параллельно дополнили отправкой данных в API:

После доработки алгоритм стал работать следующим образом: заполняется форма, идет перезагрузка страницы и одновременно отправляется запрос к API.

После обработки запроса, если есть ошибка, то выводим ее над формой (см. скрин ниже), если нет, то продолжает работать существующий алгоритм.

Поскольку данный этап является промежуточным, дополнительно добавили чекбокс на включение/выключение обращения к API в настройках. Это сделано для того, чтобы заказчик при необходимости для корректной работы мог отключить функцию отправки запросов в API.

Третий этап

На основе созданных заказчиком прототипов были отрисованы макеты будущих страниц личного кабинета.

Прототипы заказчика выглядели подобным образом:

Подготовленные адаптированные дизайн-макеты для устройств приобретали следующий вид:

Четвертый этап

На сайт сверстаны и интегрированы макеты, подготовленные ранее.

Реализован функционал авторизации / восстановления пароля для входа в раздел для сборщиков.

На поле для ввода номера телефона добавлена маска для удобства проверки введенных данных (как в корзине или при заказе звонка).

Уже далее номер телефона преобразовывается в подобный вид 89035844231 и отправляется в качестве параметра в 1С для проверки подлинности.

Сборщик вводит номер телефона и пин код - эти данные уходят к заказчику в 1С стандартным методом с двумя параметрами (метод создается на стороне 1С заказчиком).

В случае, если номер телефона некорректный, отображается ошибка «Не найдена учетная запись или неверный пароль»:

Если пользователь нажимает на ссылку «Восстановить пароль», то вызывается функция восстановления пароля GetСollectorPass(Phone). Этот метод должен выслать новую SMS с имеющимся пин-кодом (не более трех в день).

Если 1С успешно сверила телефон с кодом, то в ответ приходит json с данными по незакрытым заданиям этого сборщика вида:

На завершающем этапе данные отправляются в 1С и акт закрывается электронной подписью.

После закрытия акта повторяется запрос к API для актуализации списка заданий, сборщику вновь открывается страница с незакрытыми заданиями.

Пятым этапом потребовалось разделить незакрытые задания на разные виды заданий по сборке.

Задания стали распределяться по вкладкам:

  • Заявки
  • Образцы
  • Рекламации

Из 1С посредством нового метода стали приходить задания с новым параметром ApplicationType равным 1, 2 или 3 в зависимости от вида задания сборщику, где:
1 - Заявка
2 - Заявка на образцы
3 - Рекламация

Настроили на сайте возможность приема новых параметров и распределения заданий по нужным вкладкам.

По умолчанию сделали, чтобы была активна первая закладка с заданиями на сборку заявок.

Шестым этапом добавили возможность видеть в разделе уже завершенные задания за выбранный период.

Добавляем переключатель (см. скрин ниже) между имеющимися незакрытыми заданиями и завершенными заданиями.

При переходе в новый раздел автоматически никакие методы не выполняются, при переходе в раздел с незавершенными заданиями как и ранее выполняется метод GetСollectorAuth

Итоги работы

Реализованный функционал позволяет сборщикам мебели компании «Артис» использовать мобильные устройства в качестве планировщика с отсортированными списками задач.

А также использовать планшеты/телефоны для подписания актов выполненных работ по услуге сборки посредством получения электронных подписей от покупателей.

Заказать