Ignore:
Timestamp:
2009/06/12 21:47:32 (13 years ago)
Author:
Seasoft
Message:

・受注.対応状況を発送済みにするタイミングでポイントを加算、発送済みから外れるタイミングで減算するように改訂。
・受注管理で使用ポイントや加算ポイントが変動した場合、顧客テーブルに反映するように改訂。
・ポイント加算するかの判定を拡張することで、発送済み以外のタイミングにも対応させる試み。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/comu-ver2/data/class/pages/shopping/LC_Page_Shopping_Complete.php

    r18099 r18100  
    435435    } 
    436436 
    437     // 受注テーブルへ登録 
     437    /** 
     438     * 受注テーブルへ登録 
     439     * 
     440     * @return integer 注文番号 
     441     */ 
    438442    function lfRegistOrder($objQuery, $arrData, $objCampaignSess = null) { 
    439443        $sqlval = $arrData; 
    440444 
    441445        // 受注テーブルに書き込まない列を除去 
    442         unset($sqlval['mailmaga_flg']);     // メルマガチェック 
    443         unset($sqlval['deliv_check']);      // 別のお届け先チェック 
    444         unset($sqlval['point_check']);      // ポイント利用チェック 
    445         unset($sqlval['member_check']);     // 購入時会員チェック 
    446         unset($sqlval['password']);         // ログインパスワード 
    447         unset($sqlval['reminder']);         // リマインダー質問 
    448         unset($sqlval['reminder_answer']);  // リマインダー答え 
    449         unset($sqlval['mail_flag']);        // メールフラグ 
    450         unset($sqlval['session']);          // セッション情報 
     446        unset($sqlval['mailmaga_flg']);     // メルマガチェック 
     447        unset($sqlval['deliv_check']);      // 別のお届け先チェック 
     448        unset($sqlval['point_check']);      // ポイント利用チェック 
     449        unset($sqlval['member_check']);     // 購入時会員チェック 
     450        unset($sqlval['password']);         // ログインパスワード 
     451        unset($sqlval['reminder']);         // リマインダー質問 
     452        unset($sqlval['reminder_answer']);  // リマインダー答え 
     453        unset($sqlval['mail_flag']);        // メールフラグ 
     454        unset($sqlval['session']);          // セッション情報 
     455 
     456        // ポイントは別登録 
     457        $addPoint = $sqlval['add_point']; 
     458        $usePoint = $sqlval['use_point']; 
     459        $sqlval['add_point'] = 0; 
     460        $sqlval['use_point'] = 0; 
    451461 
    452462        // 注文ステータス:指定が無ければ新規受付に設定 
    453         if($sqlval["status"] == ""){ 
    454             $sqlval['status'] = '1'; 
     463        if (strlen($sqlval['status']) == 0) { 
     464            $sqlval['status'] = ORDER_NEW; 
    455465        } 
    456466 
    457467        // 別のお届け先を指定していない場合、配送先に登録住所をコピーする。 
    458         if($arrData["deliv_check"] == "-1") { 
     468        if ($arrData["deliv_check"] == "-1") { 
    459469            $sqlval['deliv_name01'] = $arrData['order_name01']; 
    460470            $sqlval['deliv_name02'] = $arrData['order_name02']; 
     
    471481        } 
    472482 
    473         $order_id = $arrData['order_id'];       // 注文番号 
    474         $sqlval['create_date'] = 'now()';       // 受注日 
     483        $order_id = $arrData['order_id'];       // 注文番号 
     484        $sqlval['create_date'] = 'Now()';       // 受注日 
     485        $sqlval['update_date'] = 'Now()';       // 更新日時 
    475486 
    476487        // キャンペーンID 
    477488        if (!defined("MOBILE_SITE")) { 
    478             if($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId(); 
     489            if ($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId(); 
    479490        } 
    480491 
     
    482493        //$sqlval = lfGetInsParam($sqlval); 
    483494 
    484         // INSERTの実行 
     495        // 受注テーブルの登録 
    485496        $objQuery->insert("dtb_order", $sqlval); 
     497 
     498        // 受注.対応状況の更新 
     499        SC_Helper_DB_Ex::sfUpdateOrderStatus($order_id, null, $addPoint, $usePoint); 
    486500 
    487501        return $order_id; 
     
    547561 
    548562        $sqlval = $arrOrder[0]; 
    549         $sqlval['create_date'] = 'now()'; 
     563        $sqlval['create_date'] = 'Now()'; 
    550564 
    551565        // INSERTの実行 
     
    619633    /* 購入情報を会員テーブルに登録する */ 
    620634    function lfSetCustomerPurchase($customer_id, $arrData, &$objQuery) { 
    621         $col = "first_buy_date, last_buy_date, buy_times, buy_total, point"; 
     635        $col = "first_buy_date, last_buy_date, buy_times, buy_total"; 
    622636        $where = "customer_id = ?"; 
    623637        $arrRet = $objQuery->select($col, "dtb_customer", $where, array($customer_id)); 
     
    630644        $sqlval['buy_times']++; 
    631645        $sqlval['buy_total']+= $arrData['total']; 
    632         $sqlval['point'] = ($sqlval['point'] + $arrData['add_point'] - $arrData['use_point']); 
    633  
    634         // ポイントが不足している場合 
    635         if($sqlval['point'] < 0) { 
    636             $objQuery->rollback(); 
    637             SC_Utils_Ex::sfDispSiteError(LACK_POINT); 
    638         } 
    639646 
    640647        $objQuery->update("dtb_customer", $sqlval, $where, array($customer_id)); 
Note: See TracChangeset for help on using the changeset viewer.