Генератор текстового файла из массива объектов (PHP)
2 000 руб. за проект
•
наличный расчёт, безналичный расчёт, электронные деньги
Бизнес задача: в моей базе данных есть счета (инвойсы). Каждый счёт состоит из шапки (реквизиты, дата счёта и проч.) и набора строк (описание услуги, стоимость по строке). Нужно загрузить эти данные в бухгалтерскую программу. Бухгалтерская программа умеет читать некий текстовый формат, есть спецификация, есть файл пример.
Задача на программирование: написать PHP класс (набор классов), который на вход принимает массив объектов описывающих счета (инвойсы) и на выходе отдаёт мне длинную строку - тот самый текстовый формат для бухгалтерской программы.
Я не углублялся в спецификацию, поэтому не знаю какие именно поля должны быть у объектов описывающих инвойсы на входе. Структуру этих PHP классов инвойсов отдаю на откуп исполнителю, а я уже потом сам их как-нибудь заполню данными из своей базы. Предполагаю, что логично было бы иметь некий класс Invoice, содержаший поля описывающие шапку и поле-массив lines - массив из объектов класса InvoiceLine, описывающий поля строки счёта.
Дополнительная сложность: спецификация есть только на финском языке. Но она очень короткая и простая. Я начал переводить на английский с помощью google translate - проблем не возникло, но на оставшуюся часть потребуется некоторое время и внимательность от исполнителя.
Спецификация выглядит как Excel файл описывающий поля требуемого текстового формата. Excel файл состоит из трёх листов. Первый лист - не знаю зачем. Второй лист - похоже на описание шапки счёта. Третий лист - описание строк счёта. (это мои предположения на основе беглого анализа. Возможно, вы разберётесь лучше и поправите меня).
Из текстового файла-примера видно, что сначала идёт строка описывающая шапку, потом много строк с линиями счёта, потом шапка следующего счёта и так далее.
Помимо текстового файла-примера у меня есть PDF файл реального счёта, который фигурирует в этом текстовом - возможно, пригодится для наглядности и общего понимания что к чему.
В production используется PHP 5.6 - можете использовать все фишки языка. В исходном коде клоассов Invoice и InvoiceLine (объекты которых я должен сгенерировать из своей базы) прошу сделать комментарии к полям описывающим по спецификации с указанием типа и граничных условий, чтобы я понял что куда раскладывать.
По срокам - до конца рабочего дня 4 июня (18:00 мск).
4 июня с 10:00 мск буду на связи в skype, почте, можем открыть gitter/slack/hipchat - что вам удобно для плодотворной работы и обсуждения вопросов.
Задача на программирование: написать PHP класс (набор классов), который на вход принимает массив объектов описывающих счета (инвойсы) и на выходе отдаёт мне длинную строку - тот самый текстовый формат для бухгалтерской программы.
Я не углублялся в спецификацию, поэтому не знаю какие именно поля должны быть у объектов описывающих инвойсы на входе. Структуру этих PHP классов инвойсов отдаю на откуп исполнителю, а я уже потом сам их как-нибудь заполню данными из своей базы. Предполагаю, что логично было бы иметь некий класс Invoice, содержаший поля описывающие шапку и поле-массив lines - массив из объектов класса InvoiceLine, описывающий поля строки счёта.
Дополнительная сложность: спецификация есть только на финском языке. Но она очень короткая и простая. Я начал переводить на английский с помощью google translate - проблем не возникло, но на оставшуюся часть потребуется некоторое время и внимательность от исполнителя.
Спецификация выглядит как Excel файл описывающий поля требуемого текстового формата. Excel файл состоит из трёх листов. Первый лист - не знаю зачем. Второй лист - похоже на описание шапки счёта. Третий лист - описание строк счёта. (это мои предположения на основе беглого анализа. Возможно, вы разберётесь лучше и поправите меня).
Из текстового файла-примера видно, что сначала идёт строка описывающая шапку, потом много строк с линиями счёта, потом шапка следующего счёта и так далее.
Помимо текстового файла-примера у меня есть PDF файл реального счёта, который фигурирует в этом текстовом - возможно, пригодится для наглядности и общего понимания что к чему.
В production используется PHP 5.6 - можете использовать все фишки языка. В исходном коде клоассов Invoice и InvoiceLine (объекты которых я должен сгенерировать из своей базы) прошу сделать комментарии к полям описывающим по спецификации с указанием типа и граничных условий, чтобы я понял что куда раскладывать.
По срокам - до конца рабочего дня 4 июня (18:00 мск).
4 июня с 10:00 мск буду на связи в skype, почте, можем открыть gitter/slack/hipchat - что вам удобно для плодотворной работы и обсуждения вопросов.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.