Ticket #1360 (closed バグ指摘: 修正済)

Opened 12 years ago

Last modified 12 years ago

受注編集画面で商品変更時に使用ポイントエラー

Reported by: no61 Owned by: habu
Priority: Milestone: EC-CUBE2.11.2
Component: 管理画面 Version: 2.11.1
Keywords: Cc:
修正済み: yes

Description (last modified by habu) (diff)

受注編集画面で商品を減らした場合に使用ポイントでマイナスチェックのエラーがでる。

関連: #1419

Change History

comment:1 Changed 12 years ago by no61

  • Owner changed from somebody to no61
  • Status changed from new to assigned

comment:2 Changed 12 years ago by no61

  • 修正済み set

r20981 で修正しました。

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:5 Changed 12 years ago by habu

  • Status changed from new to assigned

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:9 Changed 12 years ago by habu

  • 修正済み set

r21101 で修正しました。

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)

その後、対応状況が「発送済み」や「キャンセル」だった場合に、
使用ポイント欄に、保持ポイントを超えるポイントを設定できてしまう不具合が見つかりましたので
r21165 にて対応しました。
#1419 に紐付けています)

Note: See TracTickets for help on using tickets.