バグ報告 > 管理機能 > v2.13.0 チケット#2403 商品削除後のシステムエラーについて |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sumida |
投稿日時: 2013/10/8 13:04
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
v2.13.0 チケット#2403 商品削除後のシステムエラーについて チケット#2403がv2.13.0で積み残しになっていたので、調べてみました。
http://svn.ec-cube.net/open_trac/ticket/2403 システムエラーとなる条件 受注情報編集画面 --> 商品を削除 「複数のお届け先へ」 ここまでは、チケットの通りですが、 もう一つ条件があります。 表示された商品の最後部の商品を削除した場合、システムエラーになります。 (その他の商品を削除しても、システムエラーになりません。) ========== 追記: 上記の条件は、誤りでした。 正しい条件は、複数配送で、配送先の商品を削除したことで、受注情報全体からもその商品が不要になり、削除される場合です。 ========== この状況から、 商品の配列から、削除した商品を外して、前詰めにした結果、配列の最後部に残骸が残っているのではないでしょうか。 残骸のproduct_class_id が '' のため、SQLエラーになった。 data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
の $objFormParam->setParam($arrUpdateParams); を、コメントにすると、少なくともシステムエラーにはなりませんでした。 |
sumida |
投稿日時: 2013/10/8 17:14
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: v2.13.0 チケット#2403 商品削除後のシステムエラーについて 原因が、判明しました。
追記: でも、まだすっきりしないような。 確かに削除前の商品数がきているけど、どこから持ってきているのだろう。 classファイル: 削除となる商品を外して、新しい購入商品の一覧を作成していました。 その際、対象となるフィールド名は、 product_id, product_class_id, product_type_id, point_rate, product_code, product_name, classcategory_name1, classcategory_name2, quantity, price, tax_rate, tax_rule になります。 ここから、本題です。 classファイル: data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php SQLエラーの発生源(getDetailAndProductsClass)を呼び出す側
count($arrValues['quantity'])をもとにループさせているため、削除前の商品数になっている。 tplファイル: data/Smarty/templates/admin/order/edit.tpl 購入商品の一覧を表示する際、
$arrForm.quantity.value(数量欄)をもとにループさせているため、削除前の商品数になっている。 (影響はないですが、参考までに、disp.tplも$arrForm.quantity.value(数量欄)をもとにループ) |
sumida |
投稿日時: 2013/10/8 18:05
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: v2.13.0 チケット#2403 商品削除後のシステムエラーについて 修正案です。
これで、いいのだと思いますが。 data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
追伸: システムエラーにはなりませんが、修正が以下の部分にも必要です。 (受注情報の商品欄最後部に、商品名等のない空欄が1行できます。)
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |