Ignore:
Timestamp:
2009/04/17 17:00:45 (17 years ago)
Author:
kajiwara
Message:

#440 受注履歴の編集内容が反映されない 不具合を対応(2.4.0RC1以前からのバグと思われる。)
新規受注時のみ顧客のポイントがマイナスになる場合にエラーを表示し、受注編集時にはポイントのエラーは表示させない。

Location:
branches/version-2_4/data/class
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_4/data/class/helper/SC_Helper_DB.php

    r17785 r17979  
    531531 
    532532    /** 
     533     * 顧客番号、利用ポイント、加算ポイントから最終ポイントを取得する. 
     534     * 
     535     * @param integer $customer_id 顧客番号 
     536     * @param integer $use_point 利用ポイント 
     537     * @param integer $add_point 加算ポイント 
     538     * @return array 最終ポイントの配列 
     539     */ 
     540    function sfGetCustomerPointFromCid($customer_id, $use_point, $add_point) { 
     541        $objQuery = new SC_Query(); 
     542        if (USE_POINT === true) { 
     543                $arrRet = $objQuery->select("point", "dtb_customer", "customer_id = ?", array($customer_id)); 
     544                $point = $arrRet[0]['point']; 
     545                $total_point = $arrRet[0]['point'] - $use_point + $add_point; 
     546        } else { 
     547            $total_point = 0; 
     548            $point = 0; 
     549        } 
     550        return array($point, $total_point); 
     551    } 
     552    /** 
    533553     * カテゴリツリーの取得を行う. 
    534554     * 
  • branches/version-2_4/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php

    r17947 r17979  
    153153            $this->objFormParam->convParam(); 
    154154            $this->arrErr = $this->lfCheckError(); 
    155             $this->arrErr = array_merge( (array) $this->arrErr, (array)$this->lfCheek($arrInfo) ); 
     155            $this->arrErr = array_merge( (array) $this->arrErr, (array)$this->lfCheek($arrInfo, $_POST['mode']) ); 
    156156 
    157157            if(count($this->arrErr) == 0) { 
     
    183183            $this->arrErr = $this->lfCheckError(); 
    184184            if(count($this->arrErr) == 0) { 
    185                 $this->arrErr = $this->lfCheek($arrInfo); 
     185                $this->arrErr = $this->lfCheek($arrInfo, $_POST['mode']); 
    186186            } 
    187187            break; 
     
    457457 
    458458    /* 計算処理 */ 
    459     function lfCheek($arrInfo) { 
     459    function lfCheek($arrInfo,$mode = "") { 
    460460        $objDb = new SC_Helper_DB_Ex(); 
    461461        $arrVal = $this->objFormParam->getHashArray(); 
     
    488488        $arrVal['add_point'] = SC_Utils_Ex::sfGetAddPoint($totalpoint, $arrVal['use_point'], $arrInfo); 
    489489 
    490         list($arrVal['point'], $arrVal['total_point']) = $objDb->sfGetCustomerPoint($_POST['order_id'], $arrVal['use_point'], $arrVal['add_point']); 
    491  
     490        if (strlen($_POST['customer_id']) >0){ 
     491            list($arrVal['point'], $arrVal['total_point']) = $objDb->sfGetCustomerPointFromCid($_POST['customer_id'], $arrVal['use_point'], $arrVal['add_point']); 
     492        }else{ 
     493            list($arrVal['point'], $arrVal['total_point']) = $objDb->sfGetCustomerPoint($_POST['order_id'], $arrVal['use_point'], $arrVal['add_point']); 
     494        } 
    492495        if($arrVal['total'] < 0) { 
    493496            $arrErr['total'] = '合計額がマイナス表示にならないように調整して下さい。<br />'; 
     
    497500            $arrErr['payment_total'] = 'お支払い合計額がマイナス表示にならないように調整して下さい。<br />'; 
    498501        } 
    499         if($arrVal['total_point'] < 0) { 
    500             $arrErr['total_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />'; 
     502        //新規追加受注のみ 
     503        if ($mode == "add"){ 
     504            if($arrVal['total_point'] < 0) { 
     505                $arrErr['use_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />'; 
     506            } 
    501507        } 
    502508 
Note: See TracChangeset for help on using the changeset viewer.