Перейти к содержанию

Загрузка банковской выписки вручную#

Пользователи процесса#

Предусловия#

  • Заявка в статусе:

  • У пользователя ролей CONTRACTOR, AGENT есть права

  • У пользователя есть файл банковской выписки в формате 1С, выгруженный из клиент-банка

Точки входа#

  • По ссылке из заголовка

Варианты завершения#

  • Импортная заявка:
    • В заявках сохранилась информация о поступлении части ожидаемых денежных средств (основной платеж или агентское вознаграждение)
    • В заявках сохранилась информация о поступлении всех ожидаемых денежных средств, заявки переведены в работу (статус заявки = COLLECTING_DOCUMENTS)
  • Экспортная заявка:
    • В заявках сохранилась информация о переводе денежных средств клиенту, заявки переведены в статус REPORT_PREPARATION

Процесс#

Общий вид#

# Шаг
1 Исполнитель выбирает файл банковской выписки
2 Система считывает из файла Платежные поручения
3 Система подбирает заявки к платежным поручениям
4 Система показывает список платежных поручений с подобранными заявками
5 Исполнитель подтверждает сопоставление платежей с заявками
6 Система сохраняет платежи в БД
7 Система переводит полностью оплаченные заявки в следующий статус
9 Система обновляет статус запроса индивидуальных ставок
9 Система закрывает список платежных поручений, показывает уведомление, возвращает пользователя на страницу откуда был вызван процесс загрузки

Выбор файла исполнителем#

Кнопка инициализации загрузки банковской выписки в заголовке доступна пользователем с правом UPLOAD_BANK_STATEMENT

img_42.png

При нажатии на кнопку показывается модальное окно:

img_43.png

Пользователь может выбрать только один файл.

Если пользователь выбирает файл неподходящего формата, система

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

img_44.png

Если пользователь нажал кнопку удаления, система возвращает модальное окно загрузки в исходное состояние.

При нажатии на кнопку загрузки в заголовке повторно, процесс повторяется заново: список ранее загруженных платежных поручений очищается и наполняется заново

Считывание данных файла банковской выписки#

Пример файла банковской выписки

В процессе загрузки и обработке файла отображается лоадер:

img_45.png

В одном файле выписки содержится несколько документов подтверждающих совершение разных операций по счету. Каждый документ начинается с атрибута СекцияДокумент, заканчивается атрибутом КонецДокумента

  • Система загружает только Платежные поручения
    • СекцияДокумент=Платежное поручение
    • присутствует атрибут ДатаПоступило (входящие платежи) или ДатаСписано (исходящие платежи)

img_38.png

img_61.png

Подбор заявки для Платежных поручений#

Импортная заявка#

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

По одной импортной заявке может быть только два платежных поручения - у одного сумма равна order.payment.amountCustomer - у второго сумма равна order.commission.amountCommissionCustomerCurrency + order.commission.amountOperatingCostCustomerCurrency Других поручений по импортной заявке быть не может

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

  • Проверяет, привязано ли оно уже к импортной заявке, т.е. существуют ли такие order.paymentOrder[], у которых:

    • order.document.direction = IMPORT
    • order.paymentOrder.number равен значение атрибута Номер выписки
    • order.paymentOrder.date равен значение атрибута ДатаПоступило выписки
    • order.paymentOrder.amount равен значение атрибута Сумма выписки
  • Если нет, то ищет импортную заявку к которой можно привязать по параметрам:

    • order.document.direction = IMPORT
    • ИНН клиента, создавшего заявку order.document.customer.company.inn (для ЮЛ) или order.document.customer.person.inn (для ФЛ и ИП) равно значению атрибута ПлательщикИНН выписки
    • Сумма платежа по заявке order.payment.amountCustomer или сумма агентского вознаграждения order.commission.amountCommissionCustomerCurrency + order.commission.amountOperatingCostCustomerCurrency равна сумме значению атрибута Сумма выписки
    • валюта отправителя в заявке order.payment.currencyCustomer равна валюте счета в поручении (для сравнения ищем валюту в справонике по цифровому коду равному 6-8 символам атрибута ПлательщикСчет выписки)
    • к заявке не привязано другого платежного поручения с такой же суммой
    • Заявка в статусе AWAITING_FUNDS

В зависимости от того, загружены Платежные поручения ранее или нет, система отображает их на форме в разных группах.

Экспортная заявка#

Если в платежном поручении присутствует атрибут ДатаСписано и заполнено поле ПолучательИНН, то это отправка денег, и его нужно привязывать к экспортной заявке. Выписки с незаполненным ИНН не привязываются к заявкам, но отображаются в форме просмотра платежей с фильтром Все

По одной экспортной заявке может быть только одно платежное поручение - сумма равна order.commission.amountTotalCustomerCurrency (уже рассчитанная системой сумма, в зависимости от order.commission.paymentMethod, которую Агент должен перевести клиенту) Других поручений по заявке быть не может

Для каждого загруженного из выписки Платежного поручения, у которого присутствует атрибут ДатаСписано, система:

  • Проверяет, привязано ли оно уже к заявке, т.е. существуют ли такие order.paymentOrder[], у которых:

    • order.document.direction = EXPORT
    • order.paymentOrder.number равен значение атрибута Номер выписки
    • order.paymentOrder.date равен значение атрибута ДатаСписано выписки
    • order.paymentOrder.amount равен значение атрибута Сумма выписки
  • Если нет, то ищет заявку к которой можно привязать по параметрам:

    • order.document.direction = EXPORT
    • ИНН клиента, в заявке order.document.customer.company.inn (для ЮЛ) или order.document.customer.person.inn (для ФЛ и ИП) равно значению атрибута ПолучательИНН выписки
    • Счет получателя в заявке order.payment.accountNumber равно значению атрибута ПолучательСчет выписки
    • Сумма по заявке order.commission.amountTotalCustomerCurrency равна значению атрибута Сумма выписки
    • К заявке не привязано другого платежного поручения с такой же суммой
    • Заявка в статусе EXECUTION

В зависимости от того, загружены Платежные поручения ранее или нет, система отображает их на форме в разных группах.

Отображение списка выписок#

В списке все платежи (входящие/исходящие) отображаются общим списком

img_46.png

Колонки#

  • Номер - атрибут Номер выписки
  • Контрагент
    • Для выписки, у которой присутствует атрибут ДатаПоступило
      • Наименование - атрибут Плательщик1 выписки
      • ИНН - атрибут ПлательщикИНН выписки
      • КПП - атрибут ПлательщикКПП выписки. Если КПП отсутствует, разделитель / не отображается
    • Для выписки, у которой присутствует атрибут ДатаСписано
      • Наименование - атрибут Получатель1 выписки
      • ИНН - атрибут ПолучательИНН выписки
      • КПП - атрибут ПолучательКПП выписки. Если КПП отсутствует, разделитель / не отображается
  • Сумма платежа
    • атрибут Сумма выписки
    • код валюты - из локального справочника валют. Поиск по цифровому коду. Код равен 6-8 символам атрибута ПлательщикСчет выписки
  • Сумма в заявке
    • Для импортной заявки
      • сумма - выводится одна из сумм, по которой подобрана заявка
        • order.payment.amountCustomer
        • order.commission.amountCommissionCustomerCurrency + order.commission.amountOperatingCostCustomerCurrency
      • код валюты - order.payment.currencyCustomer
    • Для экспортной заявки
      • сумма -order.commission.amountTotalCustomerCurrency
      • код валюты - order.payment.currencyCustomer
  • Заявка
    • номер order.document.number
    • наименование клиента
      • для ЮЛ: order.document.customer.company.name
      • для ФЛ: order.document.customer.person.fio
      • для ИП: ИП {order.document.customer.person.fio}

Кнопки быстрой фильтрации списка поручений#

  • Все
    • все строки банковской выписки.
    • строки отсортированы по полям Контрагент (ИНН), Заявка (Номер)
    • строки которые уже были ранее привязаны к заявкам отображаются серым шрифтом. Строки не привязанные к заявкам или к которым заявка найдена впервые - черным.
  • Новые
    • платежные поручения, для которых впервые найдена заявка и поручение ранее не было привязано к этой заявке
    • этот фильтр показывается по-умолчанию после загрузки выписки. Если он пустой, то отображается картинка не найдено
    • строки отсортированы по полям Контрагент (ИНН), Заявка (Номер)
  • Уже привязанные
    • платежные поручения, для которых найдена заявка и поручение ранее было привязано к этой заявке
    • строки отсортированы по полям Контрагент (ИНН), Заявка (Номер)
    • строки отображаются серым шрифтом
  • Без заявок
    • платежные поручения, для которых не найдена заявка
    • строки отсортированы по полям Контрагент (ИНН)

Если для какого-то из фильтров не найдено строк, отображается изображение Не найдено img_48.png

Строка быстрого поиска#

Поиск платежей по вхождению введенного значения в один из атрибутов выписки:

  • Для поступлений (поручения с атрибутом ДатаПоступило)
    • Номер
    • Плательщик1
    • ПлательщикИНН
  • Для исходящих платежей (поручения с атрибутом ДатаСписано)
    • Номер
    • Получатель1
    • ПолучательИНН

При переключении между фильтрами Все, Новые, Уже привязанные, Без заявок быстрый поиск не очищается и применяется ко всем спискам

Кнопки#

Кнопка Отменить закрывает таблицу с Платежными поручениями, возвращает пользователя на страницу, откуда был вызван процесс загрузки

Кнопка Привязать платежи к заявкам - подтверждает сопоставление платежей и заявок. Недоступна если в фильтре Новые строки отсутствуют.

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

Подтверждение сопоставления#

# Шаг
1 Исполнитель нажимает кнопку подтверждения в списке Платежных поручений
2 Система показывает диалоговое окно
2.1 Если исполнитель нажимает кнопку Отмена, Система закрывает диалоговое окно, показывает список платежных поручений
3 Если исполнитель нажимает кнопку Привязать платежи, система сохраняет данные о платежах

img_39.png

Сохранение информации о Платежном поручении в заявке#

Сохраняются только Платежные поручения, ранее не привязанные к заявкам:

  • order.paymentOrder.number - значение атрибута Номер выписки
  • order.paymentOrder.date
    • Импортная заявка: значение атрибута ДатаПоступило выписки
    • Экспортная заявка: значение атрибута ДатаСписано выписки
  • order.paymentOrder.amount - значение атрибута Сумма выписки

Перевод оплаченных заявок в следующий статус#

  • Импортная заявка:

    • заявки, у которых в order.paymentOrder[] есть две записи на суммы order.payment.amountCustomer и order.commission.amountCommissionCustomerCurrency + order.commission.amountOperatingCostCustomerCurrency
      система переводит order.status- COLLECTING_DOCUMENTS
  • Экспортная заявка:

    • заявки, у которых в order.paymentOrder[] есть запись на сумму order.commission.amountTotalCustomerCurrency
      система переводит в Формирование отчёта: - order.status- REPORT_PREPARATION

-document.changedAt - текущие дата и время - показывает сообщение об успешной привязке img_47.png - возвращает пользователя на страницу, откуда был вызван процесс загрузки

Обновление статуса запроса индивидуальных ставок#

Описание алгоритма см. в описании ручного перевода заявки в статус DOCUMENTS_COLLECTING