Ticket #1360 (closed バグ指摘: 修正済)
受注編集画面で商品変更時に使用ポイントエラー
Reported by: | no61 | Owned by: | habu |
---|---|---|---|
Priority: | 中 | Milestone: | EC-CUBE2.11.2 |
Component: | 管理画面 | Version: | 2.11.1 |
Keywords: | Cc: | ||
修正済み: | yes |
Change History
comment:1 Changed 12 years ago by no61
- Owner changed from somebody to no61
- Status changed from new to assigned
comment:3 Changed 12 years ago by AMUAMU
- 修正済み unset
r20981 適用後に問題が報告されています。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8514&forum=8&post_id=41313
詳しい調査が必要かと・・・いったん修正済みのチェックを外しておきます。
comment:4 Changed 12 years ago by habu
- Owner changed from no61 to habu
- Status changed from assigned to new
comment:6 Changed 12 years ago by habu
- 修正済み set
r21068 で、r20981 をロールバックし、再修正してみました。
■不具合原因と修正方法:
商品数を減らした場合に、現在ポイントがマイナスになってしまうのは、
先にSC_Helper_Purchase::sfUpdateOrderStatus関数で
今回加算分のポイントを引いているにも関わらず、
後から呼び出されたSC_Helper_DB_Ex::sfGetRollbackPoint関数にて、
購入前のポイントの計算時に、今回加算分のポイントを引いてしまっている事が原因。
それで、SC_Helper_DB_Ex::sfGetRollbackPoint関数にて、
今回加算分のポイントを引かない様に修正した。
■呼び出し階層:
・LC_Page_Admin_Order_Edit::doRegister()
→ SC_Helper_Purchase::registerOrder
→ SC_Helper_Purchase::sfUpdateOrderStatus()
・LC_Page_Admin_Order_Edit::setOrderToFormParam()
→ SC_Helper_DB_Ex::sfGetRollbackPoint()
■SC_Helper_Purchase::sfUpdateOrderStatus関数の挙動
- 「発送済み」ステータスに変更された場合、今回購入分のポイントを加算。
- 「発送済み」ステータスから、別のステータスに変更した時は、今回購入分のポイントを減算。
- 「発送済み」ステータス以外から、「発送済み」ステータス以外への変更時や、「発送済み」ステータス以外で、ステータスを変更していない場合は、もともと、今回購入分のポイントを加算していない。
- 「発送済み」ステータスで、ステータスを変更していない場合は、ポイント増減無し。(今回購入分のポイントを一度減算して、再度加算するのでプラスマイナスゼロ)
■影響範囲の確認:
SC_Helper_DB_Ex::sfGetRollbackPoint関数を利用しているのは、
以下の2ファイル(各ファイル1箇所)のみ。
- data/class/pages/admin/order/LC_Page_Admin_Order_Disp.php
- data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
修正していく中で、別の不具合も発見しましたが、別チケットを切ろうと思います。
comment:7 Changed 12 years ago by habu
- Owner changed from habu to somebody
- 修正済み unset
- Status changed from assigned to new
r21068 での修正ですが、 現在保持しているポイント以上のポイントを利用できる不具合が発生する事が分かりました。。 (今回加算ポイント分まで使用できてしまいます)
再度、修正済みのチェックを外しておきます。
comment:8 Changed 12 years ago by habu
- Owner changed from somebody to habu
- Status changed from new to assigned
comment:10 Changed 12 years ago by kajiwara
- Status changed from assigned to closed
- Resolution set to 修正済
no61さん、habuさん、AMUAMUさん
本件、ご対応ありがとうございました。
(habuさん、詳細な調査をいただき、誠にありがとうございます。)
本チケットに関しては、修正が確認できましたので、クローズします。
comment:11 Changed 12 years ago by habu
- Description modified (diff)