さて、私は現在のプロジェクトの段階に来て、請求書発行を実装します。それについて考えると、皆さんがこの問題にどのように取り組むかがわかると思いました。関連する場合は、CodeIgniter、jQuery、jQuery UIを使用しており、PHP5.3とApache2.2.16を実行しているサーバーを完全に制御できます。本番サーバーはDebianSqueezeを実行しています。
だから私の質問はこれです。
- 私が開発しているアプリは請求を処理します
- 請求書は、1つずつ、またはバッチで(日付範囲から)作成できます。
- すべての請求書にはPDFが生成され、サーバーに保存されている必要があります。私はmPDFを使用しています。
- 一部の請求書は顧客に電子メールで送信できますが、その他の請求書はPDFで送信し、可能であればPHPから直接プリンター(lpr -p?)に送信する必要があります。
- 請求書の実行は通常隔週で実行されます
- 請求書の実行には、通常、100を超える請求書の生成が含まれる場合があります
- 一部の請求書は適度に大きくなる可能性がありますが、通常のPDFサイズは請求書あたり2〜5ページになる可能性があります
基本的にいくつかのヒントが欲しいです。私がアドバイスを求めている主な分野は次のとおりです。
- バッチ請求-これが1つのブラウザー要求を介して行われた場合、数分かかる可能性があり、PHPは最大実行時間を超える可能性があります。おそらく、通常はAJAXを介して実行できると思いました。この場合、jQueryは作成する請求書のリストを取得し、リストをループして、PHPにPDFを作成して請求書を処理するように要求します。では、1つの大きなリクエストの代わりに、小さなリクエストがたくさんありますか?これはお勧めですか?より良いアプローチはありますか?
- バッチ印刷。ユーザーは、実行ごとに数十の請求書を手動で印刷する必要があることを心配しています。当然のことながらそうです。PHPからローカルプリンターへのバッチ請求書の印刷を処理するための最良の方法は何ですか?ボックスを使用してプリンタに出力を送信することについて読んだことが
lpr
ありますが、たとえば100個のPDFのバッチ手順中に、いくつかが失われる可能性があるのではないかと心配しています。もっと良い方法はありますか? - 進捗状況の報告。典型的なスピニングホイールを持つことは退屈になる可能性があり、ユーザーがより詳細な進捗状況の更新を要求していることを私は知っています。これについて何かアドバイスはありますか?上記の多くの小さなリクエストの方法で、AJAXレポートを簡単に作成できることを知っています:Cust1のPDFを作成しています...完了...Cust1にPDFをメールで送信...完了...顧客2のPDFを作成しています...等々。
- データベースのACIDityとエラー処理。請求は大きく、関係する金額に明らかに敏感です...トランザクションのアプリケーションロジック、PDF生成エラー/電子メールエラーを処理して請求書をロールバックするなどに関するヒントは素晴らしいでしょう。
これはアドバイスに任せておきます。あなたが惜しまないかもしれないどんなヒント、提案またはコメントもありがたいことに受け取られるでしょう。
どうもありがとう。