Changeset 20660


Ignore:
Timestamp:
2011/03/16 10:10:33 (10 years ago)
Author:
nanasess
bzr:base-revision:
ohkouchi@loop-az.jp-20110316002352-0wwpjqf6mp3zqe21
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/class/helper/SC_Helper_Purchase.php sc_helper_purchase.p-20101020100530-jyaoa7ch9pdfjqzp-1
data/class/util/SC_Utils.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Futil%2FSC_Utils.php
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110316010725-it8vhxhcceh2y7vk
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110316010955-v503h2qhtunovfpq
bzr:revno:
3380
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-revisions:

data/class/helper/SC_Helper_Purchase.php ohkouchi@loop-az.jp-20110316010725-it8vhxhcceh2y7vk
data/class/util/SC_Utils.php ohkouchi@loop-az.jp-20110316010725-it8vhxhcceh2y7vk
bzr:timestamp:
2011-03-16 10:09:55.529000044 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-03-16T01:09:55.529000Z
Message:

#1160 (購入時にポイントが減算されない)

  • 新規受注は, dtb_order.status = null で insert し, sfUpdateOrderStatus() でステータスを更新するよう修正
  • SC_Utils::sfIsUsePoint(), SC_Utils::sfIsAddPoint() を SC_Helper_Purchase へ移動
Location:
branches/version-2_5-dev/data/class
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php

    r20655 r20660  
    714714                $order_id = $objQuery->nextVal('dtb_order_order_id'); 
    715715            } 
     716            /* 
     717             * 新規受付の場合は受注ステータス null で insert し, 
     718             * sfUpdateOrderStatus で ORDER_NEW に変更する. 
     719             */ 
     720            $status = $arrValues['status']; 
     721            $arrValues['status'] = null; 
    716722            $arrValues['order_id'] = $order_id; 
    717723            $arrValues['customer_id'] = 
     
    722728            $objQuery->insert($table, $arrValues); 
    723729 
    724             $this->sfUpdateOrderStatus($order_id, $arrValues['status'], 
     730            $this->sfUpdateOrderStatus($order_id, $status, 
    725731                                       $arrValues['add_point'], 
    726732                                       $arrValues['use_point'], 
     
    900906     * 受注.対応状況の更新 
    901907     * 
    902      * 必ず呼び出し元でトランザクションブロックを開いておくこと。 
     908     * 必ず呼び出し元でトランザクションブロックを開いておくこと。 
    903909     * 
    904910     * @param integer $orderId 注文番号 
     
    935941            // ▼使用ポイント 
    936942            // 変更前の対応状況が利用対象の場合、変更前の使用ポイント分を戻す 
    937             if (SC_Utils_Ex::sfIsUsePoint($arrOrderOld['status'])) { 
     943            if ($this->isUsePoint($arrOrderOld['status'])) { 
    938944                $addCustomerPoint += $arrOrderOld['use_point']; 
    939945            } 
    940946 
    941947            // 変更後の対応状況が利用対象の場合、変更後の使用ポイント分を引く 
    942             if (SC_Utils_Ex::sfIsUsePoint($newStatus)) { 
     948            if ($this->isUsePoint($newStatus)) { 
    943949                $addCustomerPoint -= $newUsePoint; 
    944950            } 
     951 
    945952            // ▲使用ポイント 
    946953 
    947954            // ▼加算ポイント 
    948955            // 変更前の対応状況が加算対象の場合、変更前の加算ポイント分を戻す 
    949             if (SC_Utils_Ex::sfIsAddPoint($arrOrderOld['status'])) { 
     956            if ($this->isAddPoint($arrOrderOld['status'])) { 
    950957                $addCustomerPoint -= $arrOrderOld['add_point']; 
    951958            } 
    952959 
    953960            // 変更後の対応状況が加算対象の場合、変更後の加算ポイント分を足す 
    954             if (SC_Utils_Ex::sfIsAddPoint($newStatus)) { 
     961            if ($this->isAddPoint($newStatus)) { 
    955962                $addCustomerPoint += $newAddPoint; 
    956963            } 
     
    10101017        $sqlval['update_date'] = 'Now()'; 
    10111018 
    1012         $cols = $objQuery->listTableFields('dtb_order'); 
    1013         $dest = array(); 
    1014         foreach ($sqlval as $key => $val) { 
    1015             if (in_array($key, $cols)) { 
    1016                 $dest[$key] = $val; 
    1017             } 
    1018         } 
    1019  
     1019        $dest = $objQuery->extractOnlyColsOf('dtb_order', $sqlval); 
    10201020        $objQuery->update('dtb_order', $dest, 'order_id = ?', array($orderId)); 
    10211021        // ▲受注テーブルの更新 
     
    10531053                                "(SELECT payment_method FROM dtb_payment WHERE payment_id = " . $tgt_table . ".payment_id)")); 
    10541054    } 
     1055 
     1056    /** 
     1057     * ポイント使用するかの判定 
     1058     * 
     1059     * $status が null の場合は false を返す. 
     1060     * 
     1061     * @param integer $status 対応状況 
     1062     * @return boolean 使用するか(顧客テーブルから減算するか) 
     1063     */ 
     1064    function isUsePoint($status) { 
     1065        if ($status == null) { 
     1066            return false; 
     1067        } 
     1068        switch ($status) { 
     1069            case ORDER_CANCEL:      // キャンセル 
     1070                return false; 
     1071            default: 
     1072                break; 
     1073        } 
     1074 
     1075        return true; 
     1076    } 
     1077 
     1078    /** 
     1079     * ポイント加算するかの判定 
     1080     * 
     1081     * @param integer $status 対応状況 
     1082     * @return boolean 加算するか 
     1083     */ 
     1084    function isAddPoint($status) { 
     1085        switch ($status) { 
     1086            case ORDER_NEW:         // 新規注文 
     1087            case ORDER_PAY_WAIT:    // 入金待ち 
     1088            case ORDER_PRE_END:     // 入金済み 
     1089            case ORDER_CANCEL:      // キャンセル 
     1090            case ORDER_BACK_ORDER:  // 取り寄せ中 
     1091                return false; 
     1092 
     1093            case ORDER_DELIV:       // 発送済み 
     1094                return true; 
     1095 
     1096            default: 
     1097                break; 
     1098        } 
     1099 
     1100        return false; 
     1101    } 
    10551102} 
  • branches/version-2_5-dev/data/class/util/SC_Utils.php

    r20647 r20660  
    18631863 
    18641864    /** 
    1865      * ポイント使用するかの判定 
    1866      * 
    1867      * @param integer $status 対応状況 
    1868      * @return boolean 使用するか(顧客テーブルから減算するか) 
    1869      */ 
    1870     function sfIsUsePoint($status) { 
    1871         switch ($status) { 
    1872             case ORDER_CANCEL:      // キャンセル 
    1873                 return false; 
    1874             default: 
    1875                 break; 
    1876         } 
    1877  
    1878         return true; 
    1879     } 
    1880  
    1881     /** 
    1882      * ポイント加算するかの判定 
    1883      * 
    1884      * @param integer $status 対応状況 
    1885      * @return boolean 加算するか 
    1886      */ 
    1887     function sfIsAddPoint($status) { 
    1888         switch ($status) { 
    1889             case ORDER_NEW:         // 新規注文 
    1890             case ORDER_PAY_WAIT:    // 入金待ち 
    1891             case ORDER_PRE_END:     // 入金済み 
    1892             case ORDER_CANCEL:      // キャンセル 
    1893             case ORDER_BACK_ORDER:  // 取り寄せ中 
    1894                 return false; 
    1895  
    1896             case ORDER_DELIV:       // 発送済み 
    1897                 return true; 
    1898  
    1899             default: 
    1900                 break; 
    1901         } 
    1902  
    1903         return false; 
    1904     } 
    1905  
    1906     /** 
    19071865     * ランダムな文字列を取得する 
    19081866     * 
Note: See TracChangeset for help on using the changeset viewer.