Принцип работы:
1) Загружаем файл в поле для файла.
2) Выявляем в скрипте путь файла и открываем его для чтения.
3) Проверяем соответствие столбцов заданным параметрам.
4) Читаем построчно, формируя единый массив данных.
5) Разбираем массив по значениям, ищем по этим значениям соответствия в системе.
6) При нахождении соответствия создаём необходимые связи, а если не нашли, то создаём новые записи и к ним создаём связи.
Вот, как-то так...
Пример кода не выложу, так как мне за эту работу платили, и выкладывать её просто так в общий доступ я не стану.
У меня довольно много разработок и интеграций, которые стоят денег, и некоторые больших денег.
Коды, которые для меня лёгкие, мне не жалко выложить, но сейчас не этот случай)
И есть 2 основных причины, почему даже в случае выкладывания моего кода, его применить не получится:
Во-первых, у вас должна быть архитектура системы такая, чтобы соответствовать параметрам скрипта. А именно структура блока финансового учёта (7 таблиц) и блока учёта клиентов и контрагентов (5 таблиц).
Во-вторых, у меня нет столько времени объяснять и обсуждать этот код, зачем нужна та или иная переменная.