Ignore:
Timestamp:
2013/02/18 19:43:15 (11 years ago)
Author:
pineray
Message:

#2134 支払い方法に関する処理を SC_Helper_Payment へ集約.

Location:
branches/version-2_12-dev/data/class
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Payment.php

    r22567 r22568  
    5858    { 
    5959        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    60         $col = 'payment_id, payment_method, charge, rule_max, upper_rule, note, fix, charge_flg'; 
     60        $col = 'payment_id, payment_method, payment_image, charge, rule_max, upper_rule, note, fix, charge_flg'; 
    6161        $where = ''; 
    6262        if (!$has_deleted) { 
     
    6767        $arrRet = $objQuery->select($col, $table, $where); 
    6868        return $arrRet; 
     69    } 
     70 
     71    /** 
     72     * 購入金額に応じた支払方法を取得する. 
     73     * 
     74     * @param integer $total 購入金額 
     75     * @return array 購入金額に応じた支払方法の配列 
     76     */ 
     77    function getByPrice($total) 
     78    { 
     79        // 削除されていない支払方法を取得 
     80        $payments = $this->getList(); 
     81        $arrPayment = array(); 
     82        foreach ($payments as $data) { 
     83            // 下限と上限が設定されている 
     84            if (strlen($data['rule_max']) != 0 && strlen($data['upper_rule']) != 0) { 
     85                if ($data['rule_max'] <= $total && $data['upper_rule'] >= $total) { 
     86                    $arrPayment[] = $data; 
     87                } 
     88            } 
     89            // 下限のみ設定されている 
     90            elseif (strlen($data['rule_max']) != 0) { 
     91                if ($data['rule_max'] <= $total) { 
     92                    $arrPayment[] = $data; 
     93                } 
     94            } 
     95            // 上限のみ設定されている 
     96            elseif (strlen($data['upper_rule']) != 0) { 
     97                if ($data['upper_rule'] >= $total) { 
     98                    $arrPayment[] = $data; 
     99                } 
     100            } 
     101            // いずれも設定なし 
     102            else { 
     103                $arrPayment[] = $data; 
     104            } 
     105        } 
     106        return $arrPayment; 
    69107    } 
    70108 
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Purchase.php

    r22567 r22568  
    540540        } 
    541541        return SC_Utils_Ex::sfArrayIntersectKeys($arrSrc, $arrKey); 
    542     } 
    543  
    544     /** 
    545      * 購入金額に応じた支払方法を取得する. 
    546      * 
    547      * @param integer $total 購入金額 
    548      * @param integer $deliv_id 配送業者ID 
    549      * @return array 購入金額に応じた支払方法の配列 
    550      */ 
    551     function getPaymentsByPrice($total, $deliv_id) 
    552     { 
    553  
    554         $arrPaymentIds = SC_Helper_Delivery_Ex::getPayments($deliv_id); 
    555         if (SC_Utils_Ex::isBlank($arrPaymentIds)) { 
    556             return array(); 
    557         } 
    558  
    559         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    560  
    561         // 削除されていない支払方法を取得 
    562         $where = 'del_flg = 0 AND payment_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', count($arrPaymentIds)) . ')'; 
    563         $objQuery->setOrder('rank DESC'); 
    564         $payments = $objQuery->select('payment_id, payment_method, rule_max, upper_rule, note, payment_image, charge', 'dtb_payment', $where, $arrPaymentIds); 
    565         $arrPayment = array(); 
    566         foreach ($payments as $data) { 
    567             // 下限と上限が設定されている 
    568             if (strlen($data['rule_max']) != 0 && strlen($data['upper_rule']) != 0) { 
    569                 if ($data['rule_max'] <= $total && $data['upper_rule'] >= $total) { 
    570                     $arrPayment[] = $data; 
    571                 } 
    572             } 
    573             // 下限のみ設定されている 
    574             elseif (strlen($data['rule_max']) != 0) { 
    575                 if ($data['rule_max'] <= $total) { 
    576                     $arrPayment[] = $data; 
    577                 } 
    578             } 
    579             // 上限のみ設定されている 
    580             elseif (strlen($data['upper_rule']) != 0) { 
    581                 if ($data['upper_rule'] >= $total) { 
    582                     $arrPayment[] = $data; 
    583                 } 
    584             } 
    585             // いずれも設定なし 
    586             else { 
    587                 $arrPayment[] = $data; 
    588             } 
    589         } 
    590         return $arrPayment; 
    591542    } 
    592543 
  • branches/version-2_12-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r22567 r22568  
    416416        $arrResults['arrDelivTime'] = SC_Helper_Delivery_Ex::getDelivTime($deliv_id); 
    417417        $total = $objCartSess->getAllProductsTotal($objCartSess->getKey()); 
    418         $arrResults['arrPayment'] = $objPurchase->getPaymentsByPrice($total, $deliv_id); 
     418        $payments_deliv = SC_Helper_Delivery_Ex::getPayments($deliv_id); 
     419        $objPayment = new SC_Helper_Payment_Ex(); 
     420        $payments_total = $objPayment->getByPrice($total); 
     421        $arrPayment = array(); 
     422        foreach ($payments_total as $payment) { 
     423            if (in_array($payment['payment_id'], $payments_deliv)) { 
     424                $arrPayment[] = $payment; 
     425            } 
     426        } 
     427        $arrResults['arrPayment'] = $arrPayment; 
    419428        $arrResults['img_show'] = $this->hasPaymentImage($arrResults['arrPayment']); 
    420429        return $arrResults; 
Note: See TracChangeset for help on using the changeset viewer.