Разработать дополнение для веб-приложения: импорт CSV

1 000 руб.за час
20 октября 2020, 11:56 • 7 откликов • 41 просмотр
Необходимо разработать дополнение для существующего веб-приложения: функция импорта csv таблиц определенного формата. (Дополнение может работать независимо от основного функционала приложения.)

Имеется веб-приложение, разработанное на PHP, MySQL и Bootstrap 4. (при необходимости могу предоставить доступ.) на английском языке.

С помощью приложения пользователи (примерно 5 сотрудников компании) управляют предложениями и запросами на различные товары. Например, одна компания предлагает нам 100 айфонов по цене 500 евро, другая компания ищет кофейные машины Delonghi по цене 400 евро за штуку и тому подобное.

Информация такого рода вручную вводиться в базу данных через веб-формуляры и выводится в различных разделах приложения.

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

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

Необходим дополнительный функционал - импорт множества предложений из csv или excel таблицы:

На отдельной странице “import”, должна иметься форма для загрузки файлов (xls ил csv), с проверкой на расширение и размер файла.
Файл загружается пользователем и читается (желательно с помощью библиотеки PhpSpreadsheet) и проверяется по следующим критериям:
количество строк в таблице (например максимум 200 строк)
соответствие заданному количеству столбцов и их названию: EAN, price, quantity
уникальность EAN

EAN является уникальным номером и соответственно не должен и не повторяется в базе данных. Поэтому если в импортируемой таблице присутствует строка с EAN номером, уже имеющимся в базе данных, то для этого EAN создаётся предложение с соответствующей ценой и количеством.
Если же EAN нет в базе данных, то создаётся товар с данным EAN и затем к созданному товару создаётся соответствующее предложение.

Загрузил два скриншота, как выглядят mysql таблицы товары (articles) и предложения (records).

Файлы