質問 > 管理機能 > 帳票へ出力する商品データを追加したい |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nksm |
投稿日時: 2012/11/9 1:20
対応状況: −−−
|
半人前 登録日: 2012/4/25 居住地: 投稿: 24 |
帳票へ出力する商品データを追加したい EC-CUBE 2.11.5
DBサーバー MySQL 5.0.51 PHP 5.2.9-2 通常、帳票に出力される商品データは商品コード、商品名、規格、価格、数量程度かと思いますが、 管理画面の商品データで入力した他のデータ(例えば、通常価格やメーカー、サブコメント等)を出力する事は可能でしょうか? 商品が注文された際に、dtb_order_detailに出力したいデータも格納し、 それを帳票で呼び出すという作業になるかと考えたのですが、 dtb_order_detailに項目を追加する作業で、 既に参考になる記述やカスタマイズ方法が見つけられずに困っています。 どなたかアドバイス頂けますと助かります。 |
seasoft |
投稿日時: 2012/11/9 3:25
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 帳票へ出力する商品データを追加したい 可能ですよ。
受注時点の商品情報で出力するためには、nksm 様の仰られる処理が必要ですね。この場合は、受注周りの処理や受注編集周りの処理をカスタマイズする必要があります。(結構面倒です。) 出力時点の商品情報で良ければ、FROM 句の結合や SELECT 句のサブクエリといった方法でも実現可能です。
|
nksm |
投稿日時: 2012/11/9 10:42
対応状況: −−−
|
半人前 登録日: 2012/4/25 居住地: 投稿: 24 |
Re: 帳票へ出力する商品データを追加したい seasoft様
早々のアドバイス有難うございます。 受注時点での登録となると面倒な作業になりそうなのですね。 出力しようとするデータは不変的な情報ですので、 出力時点の商品情報でも全く問題は無さそうです。 ご教示頂いた様に出力時点での商品情報で実現しようかと思うのですが、 その場合、作業が必要になるのは /data/class/SC_Fpdf.php なのでしょうか? SQLの知識も乏しく、見様見真似でカスタマイズを行っております為、 実現方法のヒントを頂けたら有難いです。 どうぞ宜しくお願い致します。 |
seasoft |
投稿日時: 2012/11/9 12:43
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 帳票へ出力する商品データを追加したい はい。SC_Fpdf.php で良かったと思います。
その中の、lfGetOrderDetail の $col や SC_Query_Ex::select の第2引数を調整する感じになると思います。 処理時間が長くなっても大丈夫でしたら、無理に1処理で行なわなわずに、もう一度 DB 処理を実行しても良いと思います。
|
nksm |
投稿日時: 2012/11/9 12:50
対応状況: −−−
|
半人前 登録日: 2012/4/25 居住地: 投稿: 24 |
Re: 帳票へ出力する商品データを追加したい seasoft様からのアドバイスを基にFrom句の結合を試みています。
「/data/class/SC_Fpdf.php」 の // 受注詳細データの取得 function lfGetOrderDetail($order_id) { $objQuery = new SC_Query_Ex(); $col = "product_id, product_class_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate"; $where = "order_id = ?"; $objQuery->setOrder("order_detail_id"); $arrRet = $objQuery->select($col, "dtb_order_detail", $where, array($order_id)); return $arrRet; } を // 受注詳細データの取得 function lfGetOrderDetail($order_id) { $objQuery = new SC_Query_Ex(); $col = "product_id, product_class_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate"; $where = "order_id = ?"; $objQuery->setOrder("order_detail_id"); $arrRet = $objQuery->select($col, "dtb_order_detail INNER JOIN dtb_products_class ON dtb_order_detail.product_id = dtb_products_class.product_id", $where, array($order_id)); return $arrRet; } としてみたのですが、帳票の出力ボタンを押した際にエラーでログアウトしてしまいました。 dtb_order_detailと他のテーブルを結合するには何か他にも記述が必要なのでしょうか? もしくは上記記述に何か誤りがありましたらご指摘頂けると助かります。 |
seasoft |
投稿日時: 2012/11/9 12:54
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 帳票へ出力する商品データを追加したい まずは、エラーを確認して(*1)、DB のマニュアルや解説書などで構文的に誤っていないかを確認すると良いかと思います。
(*1 参考) http://seasoft.jp1.cx/ec/tips/error#システムエラーが発生しました_大変お手数ですが_サイト管理者までご連絡ください
|
nksm |
投稿日時: 2012/11/9 14:06
対応状況: 解決済
|
半人前 登録日: 2012/4/25 居住地: 投稿: 24 |
Re: 帳票へ出力する商品データを追加したい ありがとうございました。
ご提示頂きました方法で確認しましたところ、 「product_id」が重複していた為にエラーが発生しておりました。 $col = "product_id, product_class_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate,note"; の部分を $col = "dtb_order_detail.product_id, product_class_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate,note"; とする事でエラーは発生せず、また希望していた商品データも出力出来る様になりました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |