Создание предварительных контактов(в таблице leads) и их связь с таблицей Email в sugarcrm из Excel или CSV файла.
На всякий случай тут поясню по файлам, с помощью которых можно загрузить предварительные контакты из CSV или Excel.
file.csv - сам файл который распарсивается и из которого осуществляется загрузка.
myLead.php - файл организует непосредстувенно загрузку предварительных контактов в таблицу базы данных "leads", а так же проверят существование e-mail адреса в базе, при необходимости создавая его, а так же устанавливая соответствие между таблицой leads и таблицей email_addresses.
load.php - осуществляет разбор полей CSV файла, а так же объединением некоторых полей в одно, кроме того организует maping загрузки сопоставляя какие поля файла должны попасть в какие поля таблицы. На первой итерации осуществляется сбор всех e-mail адресов в единый массив, после первого прохода этот массив переадётся классу myLead чтобы в минимальное количество запросов выяснить какие e-mail адреса уже присутствуют в базе данных и получить их id. Далее эта информация кешируется в мпециальный массив. На втором проходе выполняется запрос на создание предвариетельного контракта по одному за итерацию, класс автоматически определяет нужно ли создавать E-mail адреса и создаёт связи между ними.
Остальные файлы содержат лог в JSON-формате, а именно какие именно записии и под какими id были созданы за соответствующий проход, в том числе это касается созданных записей E-mail, а так же Id записи в связывающей таблице для таблиц leads и email_addresses.
При необходимости в верхней части файла myLeads можно задать Id пользователей от имени которых будет создана запись а так же Id ответственного за предварительный контракт пользователей. Эти же параметры можно передавать в массиве при генерации каждого lead. Если передавать значения id пользователей в массиве, то оно для данного лида переопределит значение указанное в настройках файла myLeads.