Процесс "Массовое списание ТМЦ"

Обработчик:

ru.bgcrm.dyn.ufanet.tmc.writeoff.mass.WriteOffMassTmcProcessListener

Назначение процесса:

  • Массовое списание ТМЦ находящихся в аренде

  • Массовое списание ТМЦ закрепленных за домом

Статусы:

  • "Открыт" ID: 10

  • "В работе" ID: 140

  • "Ошибка при обработке" ID: 545

  • "Закрыт" ID: 8

  • "Ошибочно заведён" ID: 22

Переходы:

  • "Открыт" → "В работе"

  • "Открыт" → "Ошибочно заведён"

  • "В работе" → "Ошибка при обработке"

  • "В работе" → "Закрыт"

  • "Ошибка при обработке" → "В работе"

Параметры:

  • "Направление списания" (list) ID: 5008

  • "equipment" (blob) ID: 4920

  • "Файл" (file) ID: 5037

Форматы файлов

  • Допускается файл формата *.csv с разделителем ';'

  • Формат файла для направления "Аренда":

    • customerId;nomenclatureId;serialNumber

      • customerId - ID контрагента, целое число

      • nomenclatureId - ID номенклатуры оборудования, строка

      • serialNumber - серийный номер оборудования, строка, указывать необязательно, однако в случае отсутствия будет произведено списание всех ТМЦ в остатках с указанным ID номенклатуры

  • Формат файла для направления "Сеть":

    • houseId;nomenclatureId;serialNumber

      • houseId - ID дома, целое число

      • nomenclatureId - ID номенклатуры оборудования, строка

      • serialNumber - серийный номер оборудования, строка, указывать необязательно, однако в случае отсутствия будет произведено списание всех ТМЦ в остатках с указанным ID номенклатуры

  • Пример:

mass tmc write off process file example

Ожидаемая работа с процессом

  1. Пользователь создает процесс со связанного процесса

    • Если пользователь случайно создал процесс, он переводит процесс в статус "Ошибочно заведён" ID: 22

  2. Пользователь заполняет параметр "Направление списания" ID: 5008

    • Список значений параметра: "Аренда", "Сеть"

  3. Пользователь прикрепляет файл с данными в параметр "Файл" ID: 5037

    • Внимание, если пользователь не заполнил параметр "Направление списания" ID: 5008 система выдаст ошибку

  4. Система проверяет файл на наличие и полноту данных

    • В случае обнаружения некорректного файла система выдаст ошибку: "Ошибка при чтении файла. Допускается файл формата csv с разделителем ';'"

    • В случае обнаружения ошибок в записях файла система выдаст ошибку, где будут указаны строки и описание ошибок

    • При ошибке у пользователя есть возможность прикрепить другой файл

  5. Пользователь переводит процесс в статус "В работе" ID: 140

    • В случае отсутствия параметра "Файл" ID: 5037 система выдаст ошибку: "Запрещается переходить в статус "В работе" если не заполнены параметры"

  6. Система асинхронно, на основе данных из файла, в зависимости от выбранного направления списания, создает связанные процессы "Списание ТМЦ" или "Списание ТМЦ в сети", устанавливает контрагента или заполняет адрес, заполняет параметр "ТМЦ для списания" и переводит связанный процесс в статус "Регистрация"

    • В случае, если хотя бы один из процессов "Списание ТМЦ" или "Списание ТМЦ в сети" оказался в статусе "Ошибка при регистрации" или "Ошибка при обработке" система добавит в описание процесса ID связанных процессов в которых произошла ошибка и переведет процесс в статус "Ошибка при обработке" ID: 545

    • Для повторной попытки обработки пользователь переводит процесс в статус "В работе" ID: 140

  7. Система переводит процесс в статус "Закрыт" ID: 8

Правила

  • Запрет на изменение направления списания после прикрепления файла (Заполнения параметра "Направление списания" ID: 5008)

  • Запрет на переход в статус "В работе" если не заполнены параметры

Конфигурация

# Отображение привязок на вкладке
processShowLinks=1

# Отображение вкладки со связями процесса
processShowProcessLinks=1

# Скрытие кнопки полного изменения описания
hideDescriptionChange=1

# Скрытие служебных параметров для отображения оборудования
showParam.4920.checkExpression=false

# Создание связанного процесса "Массовое списание ТМЦ"
processCreateLink.1.title=Массовое списание ТМЦ
processCreateLink.1.processTypeId=11365
processCreateLink.1.linkType=processMade