ОК, так что я подхожу к стадии текущего проекта, где я буду внедрять выставление счетов, и подумав об этом, я подумал, что увижу, как вы, ребята, подойдете к этой проблеме. Если это уместно, я использую CodeIgniter, jQuery, jQuery UI и имею полный контроль над сервером, использую PHP 5.3 и Apache 2.2.16. Рабочий сервер работает под управлением Debian Squeeze.
Так что мой запрос таков.
- Приложение, которое я разрабатываю, будет обрабатывать счета
- Счета могут быть созданы по одному или в серии (из диапазона дат)
- Все счета должны иметь PDF-файл, созданный и сохраненный на сервере. Я использую mPDF.
- Некоторые счета могут быть отправлены клиентам по электронной почте, другие должны быть в формате PDF и, если возможно, отправлены на принтер (lpr -p?), Прямо из PHP, если это возможно
- Счета-фактуры проводятся, как правило, раз в две недели
- Выполнение счетов-фактур обычно может включать создание более 100 счетов-фактур
- Некоторые счета могут быть достаточно большими, хотя типичный размер PDF может быть 2-5 страниц на счет
В основном я хотел бы получить несколько советов. Основные области, по которым я ищу советы:
- Пакетное выставление счетов - если это было сделано с помощью одного запроса браузера, это может занять несколько минут, а PHP может превысить максимальное время выполнения. Я подумал, что, возможно, это можно сделать через AJAX, где jQuery извлекает список счетов-фактур, а затем перебирает список, запрашивая у PHP создание PDF-файла и обработку счета. Таким образом, вместо одного большого запроса, у вас есть много меньших? Это рекомендуется? Есть ли лучший подход?
- Пакетная печать. Пользователи беспокоятся о необходимости вручную печатать десятки счетов-фактур при каждом запуске, и это понятно. Как лучше всего распечатать пакетные счета из PHP на локальном принтере? Я читал об отправке вывода на принтер, используя
lpr
на коробке, но я беспокоюсь, что во время пакетной процедуры, скажем, 100 PDF, пара может в конечном итоге потеряться. Есть ли лучший способ?
- Отчет о проделанной работе. Типичное вращающееся колесо может стать утомительным, и я знаю, что пользователи запрашивали более подробные обновления прогресса. Любой совет по этому поводу? Я знаю, что с помощью описанного выше метода многих небольших запросов вы можете легко получить отчет AJAX: Создание PDF для Cust 1 ... ВЫПОЛНЕНО ... Отправка PDF-документов в Cust 1 ... ВЫПОЛНЕНО ... Создание PDF для клиента 2 ... и так далее.
- База данных ACIDity и обработка ошибок. Выставление счетов является сложным и, очевидно, чувствительным с учетом суммы денег ... любые советы, касающиеся логики приложения для транзакций, обработки ошибок генерации PDF / ошибок электронной почты для отката счетов и т. Д., Были бы хорошими.
Я оставлю это открытым для совета. Будем благодарны за любые советы, предложения или комментарии, которые вы можете пожелать.
Большое спасибо.