質問 > 管理機能 > 2.11.4 ポイント機能について質問です |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
akki31 |
投稿日時: 2012/3/13 16:07
対応状況: −−−
|
常連 登録日: 2011/6/7 居住地: 投稿: 59 |
2.11.4 ポイント機能について質問です こんにちは。
いつもお世話になっております。 ポイント機能について質問です。 現在ポイント機能として商品をご購入後に ポイントが付与されるのは問題ありませんが ポイントを使用する場合にポイントが 付与されてしまうかと思います。 ポイント使用時にはポイントを付与しない 設定にするのは どのような修正を加えればよろしいのでしょうか? 予想では SC_Helper_Purchace.phpがからんでいるかとは思うのですが 皆様のご助力。宜しくお願い致します。 SC_Helper_Purchace.php /** * 受注.対応状況の更新 * * 必ず呼び出し元でトランザクションブロックを開いておくこと。 * * @param integer $orderId 注文番号 * @param integer|null $newStatus 対応状況 (null=変更無し) * @param integer|null $newAddPoint 加算ポイント (null=変更無し) * @param integer|null $newUsePoint 使用ポイント (null=変更無し) * @param array $sqlval 更新後の値をリファレンスさせるためのパラメーター * @return void */ function sfUpdateOrderStatus($orderId, $newStatus = null, $newAddPoint = null, $newUsePoint = null, &$sqlval) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $arrOrderOld = $objQuery->getRow('status, add_point, use_point, customer_id', 'dtb_order', 'order_id = ?', array($orderId)); // 対応状況が変更無しの場合、DB値を引き継ぐ if (is_null($newStatus)) { $newStatus = $arrOrderOld['status']; } // 使用ポイント、DB値を引き継ぐ if (is_null($newUsePoint)) { $newUsePoint = $arrOrderOld['use_point']; } // 加算ポイント、DB値を引き継ぐ if (is_null($newAddPoint)) { $newAddPoint = $arrOrderOld['add_point']; } if (USE_POINT !== false) { // 会員.ポイントの加減値 $addCustomerPoint = 0; // ▼使用ポイント // 変更前の対応状況が利用対象の場合、変更前の使用ポイント分を戻す if ($this->isUsePoint($arrOrderOld['status'])) { $addCustomerPoint += $arrOrderOld['use_point']; } // 変更後の対応状況が利用対象の場合、変更後の使用ポイント分を引く if ($this->isUsePoint($newStatus)) { $addCustomerPoint -= $newUsePoint; } // ▲使用ポイント // ▼加算ポイント // 変更前の対応状況が加算対象の場合、変更前の加算ポイント分を戻す if ($this->isAddPoint($arrOrderOld['status'])) { $addCustomerPoint -= $arrOrderOld['add_point']; } // 変更後の対応状況が加算対象の場合、変更後の加算ポイント分を足す if ($this->isAddPoint($newStatus)) { $addCustomerPoint += $newAddPoint; } // ▲加算ポイント if ($addCustomerPoint != 0) { // ▼会員テーブルの更新 $objQuery->update('dtb_customer', array('update_date' => 'CURRENT_TIMESTAMP'), 'customer_id = ?', array($arrOrderOld['customer_id']), array('point' => 'point + ?'), array($addCustomerPoint)); // ▲会員テーブルの更新 // 会員.ポイントをマイナスした場合、 if ($addCustomerPoint < 0) { $sql = 'SELECT point FROM dtb_customer WHERE customer_id = ?'; $point = $objQuery->getOne($sql, array($arrOrderOld['customer_id'])); // 変更後の会員.ポイントがマイナスの場合、 if ($point < 0) { // ロールバック $objQuery->rollback(); // エラー SC_Utils_Ex::sfDispSiteError(LACK_POINT); } } } } ----------------------------------- [EC-CUBE]2.11.4 [OS]Windows 7 [PHP] 5.3.6 [データベース] MySQL 5.0.67-log [WEBサーバ] Apache ----------------------------------- |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» 2.11.4 ポイント機能について質問です | akki31 | 2012/3/13 16:07 |
Re: 2.11.4 ポイント機能について質問です | ken-o | 2012/3/13 16:37 |
Re: 2.11.4 ポイント機能について質問です | akki31 | 2012/3/13 17:10 |
Re: 2.11.4 ポイント機能について質問です | ken-o | 2012/3/13 17:51 |
Re: 2.11.4 ポイント機能について質問です | akki31 | 2012/3/13 21:15 |
Re: 2.11.4 ポイント機能について質問です | ken-o | 2012/3/14 9:36 |
Re: 2.11.4 ポイント機能について質問です | akki31 | 2012/3/15 12:08 |
Re: 2.11.4 ポイント機能について質問です | ken-o | 2012/3/15 13:18 |
Re: 2.11.4 ポイント機能について質問です | akki31 | 2012/3/15 21:22 |
Re: 2.11.4 ポイント機能について質問です | akki31 | 2012/3/16 22:07 |