доработка функционала разнесения фактических платежей через ожидаемые платежи

Бизнес-требование
при необходимости подроблю данное ТЗ на отдельные задачи согласно блоков ТЗ
прошу оценивать ТЗ по-блочно

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

Чтобы реализовать данный сценарий необходимо
1. доработать функционал ожидаемых платежей. а именно в действие "Сформировать ожидаемый платеж" добавить поле "Брать клиента ожидаемого платежа из доп.поля вместо поля "клиент процесса". При заполнении данного поля клиентом ожидаемого платежа проставится тот контакт, который был указан в соответствующем доп. поле процесса. Для этого необходимо добавить в таблицу ожидаемых платежей поле, в котором будет храниться id контакта ожидаемого платежа
2. доработать действие импорта платежей из приват24 таким образом, чтобы можно было указать в какое доп.поле платежа записать то или иное значение поля выписки
3. доработать действие "Распределить платежи по процессам на основании ожидаемых платежей" таким образом, чтобы
3.1.подбор подходящего платежа выполнялся на основании выполнения ряда условий, в частности:
- по полям контакта из ожидаемого платежа и реквизитам из платежа фактического
- по дате ожидаемого платежа и дате платежа фактического
- по сумме ожидаемого платежа и сумме платежа фактического
3.2. происходило распределение фактического платежа на на столько платежей, на сколько хватит суммы фактического платежа для покрытия имеющихся ожидаемых платежей. данный функционал срабатывает только если удалось найти ожидаемые платежи по контакту из факт.платежа и ни одно из остальных условий связывания не сработало. В таком случае основной платеж помечается как виртуальный, а на каждый ожидаемый платежей, создается отдельный факт платеж, равный сумме ожидаемого платежа (сумма факт платежа рассчитывается по следующему алгоритму:
взять ожидаемые платежи клиента, отсортировать из по дате платежа по возрастанию, взять сумму первого ожидаемого платежа, сравнить с суммой факт. платежа, если сумма ожидаемого платежа меньше, то создать факт платеж на сумму ожидаемого, а разницу перенести на следующий ожидаемый платеж и выполнить аналогичное сравнение до тех пор, пока не сработает условие, что сумма ожидаемого платежа больше остатка фактического, в таком случае создать платеж на сумму остатка фактического платежа.
3.3. происходило автоматическое дополнение данных контакта из ожидаемого платежа данными из привязанного факт. платежа

Задачи на доработки
1. доработать функционал ожидаемых платежей - в действие "Сформировать ожидаемый платеж" добавить поле "Брать клиента ожидаемого платежа из доп.поля вместо поля "клиент процесса". При заполнении данного поля клиентом ожидаемого платежа проставляется тот контакт, который был указан в соответствующем доп. поле процесса. Для этого необходимо добавить в таблицу ожидаемых платежей поле, в котором будет храниться id контакта ожидаемого платежа

2. доработать действие импорта платежей из приват24 "Privat24 Autoclient Выписка по счетам" таким образом, чтобы можно было указать в какое доп.поле платежа записать то или иное значение поля выписки

3. доработать действие "Распределить платежи по процессам на основании ожидаемых платежей" таким образом, чтобы можно было задать правила подбор платежей на основании выполнения ряда условий, в частности:
- по полям контакта из ожидаемого платежа и реквизитам из платежа фактического
- по дате ожидаемого платежа и дате платежа фактического.
- по сумме ожидаемого платежа и сумме платежа фактического
для этого, добавить в действие:
таблицу, состоящую из следующих столбцов сравнения
- поле ожидаемого платежа. Состав поля: Поля юр. реквизитов контакта, доп. поля контакта (список полей взять из отсюда (действие "Privat24 Autoclient Выписка по счетам")) + сумма платежа + дата платежа + аккаунт/счет + валюта
- поле "отклонение". Значение из этого поля применяется для ввода погрешности на дату платежа и сумму платежа (аналогично тому, что уже реализовано)
- условие сравнения. Список полей из "больше, меньше, равно, не равно, больше или равно, меньше или равно, значения нет"
- поле фактического платежа. Список доп. полей платежей и системных полей: дата платежа, сумма платежа, аккаунт/счет, валюта
- галочка "Обязательное условие". Если установлена, то условие считается обязательным при сравнении *условие И"

4. доработать действие "Распределить платежи по процессам на основании ожидаемых платежей" таким образом, чтобы действие автоматически разносило большие платежи на несколько процессов и при этом основной платеж сохранялся
для этого добавить в действие:
- галочку "Автоматически создавать субплатежи в соответствии с ожидаемыми если было найдено несколько ожидаемых платежей согласно настроенных условий подбора"
- поле "метод", состоящее из вариантов "сперва погашать более ранние (FIFO)" и "сперва погашать более поздние (LIFO)"
при включении данной галочки
должно произойти
1. фактический платеж, который обрабатывается, помечается как виртуальный
2. Если в поле "метод" выбрано "сперва погашать более ранние (FIFO)", то отсортировать ожидаемые по дате создания по возрастанию иначе, если "сперва погашать более поздние (LIFO)" , то отсортировать "По убыванию"
3. создается столько субплатежей, на сколько хватает суммы исходного платежа для покрытия имеющихся ожидаемых платежей (учесть сортировку из п.2.)
4. субплатежи привязываются к исходному платежу. Пометка "виртуальный", на них не устанавливается. В суб платежи копируются данные из исходного платежа, такие как: дата платежа, аккаунт, валюта, курс, категория платежа, тип и клиент

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

макет https://www.figma.com/file/8rgRpCkKzcagoBkYO5biUU/Untitled?node-id=1%3A9

Ответы:

Устименко Игорь OneBox production
Администратор
OneBox CTO
Александр

вам нужно обратиться к интегратору для разбора данного ТЗ .

Либо же оплатить общение с разработчиком по данному ТЗ
24.12.2020, 16:48

Перегиняк Александр ФОП Перегіняк О.П.
Клиент
Oneboxconsulting (интегратор)

Устименко Игорь
OneBox CTO писал/а:
же оплатить общение с разработчиком по данному Т

я уже не интегратор? ))
понял. буду ТЗ дробить на задачи.
25.12.2020, 18:24

Устименко Игорь OneBox production
Администратор
OneBox CTO

Перегиняк Александр
Oneboxconsulting (интегратор) писал/а:

Устименко Игорь
OneBox CTO писал/а:
же оплатить общение с разработчиком по данному Т

я уже не интегратор? ))
понял. буду ТЗ дробить на задачи.

ну раз вы рисуете такое ТЗ то значит вы не подумали......

Раз вы интегратор то наложите ваше ТЗ на функционал и точечно дорабатывайте
28.12.2020, 13:18

Чтобы ответить на вопрос - пожалуйста войдите или зарегистрируйтесь