Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Для людей работающих с Битрикс (CRM, коробка).

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

Видение:

На странице размещен компонент который реализует логику.

При заходе пользователя проверяем таблицу HL (файлы к загрузке, ID = 30)  если в базе не обнаружено записей в статусе "Новый файл к загрузке" для этого пользователя - выводить просто перечень файлов которые уже были загружены из таблицы HL (файлы к загрузке ID = 30).

Если же есть запись со статусом "Новый файл к загрузке", то выводить форму загрузки на втором этапе.

Далее пользователь пощелкивает по этапам и в завершении получает загруженные транши из TXT файла в ИБ Транши (пусть будет ID = 25). На любом этапе кроме первого (загрузка файлов), пользователь может "отменить загрузку" тогда он возвращается в список ранее загруженных файлов а текущей записи в HL 30 присваивается статус = Отмененная загрузка.

Этапы:

1. Этап: Загрузка файла

2. Этап: Сверка полей

3. Этап: Загрузка траншей

4. Этап: Вывод всех траншей таблицей. Автоматически привязанные к сделкам / транши, которые не удалось привязать

5. Этап: Сверка того, что выбрал пользователь на этапе 4 и "перепривязка" сделок или траншей, окончательное "сохранение/удаление/изменение" всех траншей. Присвоение статуса файлу в HL 30 - "Файл импортирован".

Первый этап

Человек заходит на страницу, видит кнопку загрузить файл.

Нажимает её, выбирает txt файл. Если выбрал другой тип файла - выдать ошибку. Нажимает кнопку "Загрузить"

Создаем в HL (файлы к загрузке ID = 30) блоке запись: Пользователь = 111 (тот который файл загрузил), Дата загрузки = текущее время, ID = уникальный ид записи, Файл = сам текстовый файл, Статус = Новый файл к загрузке

Второй этап:

Отображаются поля из TXT файла и поля, которые предопределены в системе

Также на этой странице нужно предусмотреть "Пример импортируемых данных" по аналогии с дефолтным загрузчиком из битры. (Поля для ИБ 25 и HL 30 будут даны далее, вопрос ещё к обсуждению с тобой Игорь)

Третий этап:

При нажатии "Далее" отображаем пользователю лоадер загрузки и распознавания транша. При загрузке транша в ИБ 25 в определенное поле должен прокидываться ID записи из HL 30, чтобы потом эти транши можно было идентифицировать от какой "загрузки" они там появились. Транши по файлу сразу создаются в ИБ 25 с автоматически распознанными полями.

На этом этапе нужно реализовать такую логику: Смотрим в 1 поле, Назначение платежа. Назначения платежа имеет вид:

НазначениеПлатежа=ЗА 05/08/2020 Вероника Абыльдаева Агентский договор № ДКП-ХХ-1-823/20

Нужно строчку распарсить и увидеть там номер ДКП-ХХ-1-823/20, Сделки в системе в поле UF_CRM_1526639495 имеют точно такой же номер, вот к этой сделке этот транш и нужно привязать.  Если найти не удалось, то на 4 этапе строчка подсвечивается "красным", чтобы пользователь сам мог привязать транш к сделке.

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

Высвечиваются все загруженные в систему транши таблицей. Поля "Связь со сделкой / Связь с контактом / Статья транша " должны быть доступны к редактированию. Если автоматически установить связь со сделкой было невозможно, кликая на поле "Связь со сделкой" пользователь должен выбрать из всех имеющихся сделок ту, которая связана с этим траншем. Либо может не выбирать, если транш никак не связан со сделкой. Статья транша - по умолчанию "Движение по договору". Но пользователь пусть имеет возможность поменять статью. К примеру если это были "расходы на курьерскую службу" чтобы мог её выбрать. Связь с контактом - по аналогии со связью сделки, при одном условии. Если у нас в поле "связь со сделкой" найдена сделка, то сюда автоматически подвязывается тот контакт, от которого идет сделка. Если пользователь в ходе просмотра траншей меняет сделку, то соответственно меняется контакт. Но в ручную контакт также можно "переопределить" или задать произвольный.

Пятый этап

Все изменения сделанные на 4 этапе заносятся в ИБ 25 в те транши, которым они соответствуют. На этом этапе записи в HL 30, присваивается "Импортирован" и пользователю показывают просто весь перечень загрузок который он производил.

Поля для ИБ 25 (транши):

ID - системное

Дата создания - системное

Дата изменения - системное

Кто создал / Кто изменил - системные

Связь с контактом, тип связь с эл. CRM, контакт

Связь со сделкой, тип связь с эл. CRM, Сделка

Статья транша, тип связь с элементами ИБ, (нужно создать ИБ к примеру 40, где будут названия статей) (по умолчанию = Движение по договору)

Далее идут строчки сопоставимые с файлом TXT, остальные строчки из TXT мы не учитываем, их также можно "вырезать" на 2 этапе, не показывая для сопоставления пользователю, но можно и оставить.

Номер транша = Номер из txt файла, тип Строка

Дата транша = Дата транша из txt файла, формат 06.08.2020

Сумма = Сумма, тип Число

Назначение платежа = НазначениеПлатежа, тип Строка

Плательщик = Плательщик1, тип Строка

ИНН плательщика = ПлательщикИНН, тип Строка (ИНН бывают не только цифры, если западные компании к примеру)

Р/С плательщика = ПлательщикСчет, тип Строка

КПП плательщика = ПлательщикКПП, тип Строка

КПП получателя = ПолучательКПП, тип Строка

Банк плательщика = ПлательщикБанк1, Тип строка

БИК плательщика = ПлательщикБИК, тип СТрока

К/С плательщика = ПлательщикКорсчет, тип Строка

Получатель транша = Получатель1, тип Строка

ИНН получателя = ПолучательИНН, тип Строка

Р/С получателя = ПолучательСчет, тип Строка

Банк получателя = ПолучательБанк1, тип Строка

БИК получателя = ПолучательБИК, тип Строка

К/С получателя = ПолучательКорсчет, тип Строка

Поля для HL 30:

ID - системное

Дата загрузки файла, тип дата и время

Пользователь, тип число, ID пользователя

Файл, тип файл

Статус, тип Список. Элементы  = Новый файл к загрузке / Файл импортирован / Импорт файла отменен

4 года назад
khmboris
Борис 
37 летРоссия
4 года в сервисе
Был
3 года назад