Ignore:
Timestamp:
2011/02/02 16:56:53 (15 years ago)
Author:
nanasess
bzr:base-revision:
[email protected]
bzr:committer:
Kentaro Ohkouchi <[email protected]>
bzr:file-ids:

data/Smarty/templates/admin/basis/delivery_input.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fbasis%2Fdelivery_input.tpl
data/Smarty/templates/admin/products/confirm.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fproducts%2Fconfirm.tpl
data/Smarty/templates/admin/products/product.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fproducts%2Fproduct.tpl
data/Smarty/templates/admin/products/product_class.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fproducts%2Fproduct_class.tpl
data/Smarty/templates/admin/products/product_class_confirm.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fproducts%2Fproduct_class_confirm.tpl
data/class/SC_Product.php 18277@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcomu-ver2%2Fdata%2Fclass%2FSC_Product.php
data/class/SC_View.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_View.php
data/class/helper/SC_Helper_Purchase.php sc_helper_purchase.p-20101020100530-jyaoa7ch9pdfjqzp-1
data/class/pages/LC_Page_Index.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2FLC_Page_Index.php
data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery_Input.php 15297@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fbasis%2FLC_Page_Admin_Basis_Delivery_Input.php
data/class/pages/admin/products/LC_Page_Admin_Products_Product.php 15342@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_Product.php
data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php 15559@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_ProductClass.php
data/class/pages/shopping/LC_Page_Shopping.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping.php
data/class/pages/shopping/LC_Page_Shopping_Deliv.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Deliv.php
data/class/pages/shopping/LC_Page_Shopping_Payment.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Payment.php
html/install/sql/insert_data.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Finsert_data.sql
bzr:mapping-version:
v4
bzr:merge:

[email protected]
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
[email protected]
bzr:revno:
2797
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-revisions:

data/Smarty/templates/admin/basis/delivery_input.tpl [email protected]
data/Smarty/templates/admin/products/confirm.tpl [email protected]
data/Smarty/templates/admin/products/product.tpl [email protected]
data/Smarty/templates/admin/products/product_class.tpl [email protected]
data/Smarty/templates/admin/products/product_class_confirm.tpl [email protected]
data/class/SC_Product.php [email protected]
data/class/SC_View.php [email protected]
data/class/helper/SC_Helper_Purchase.php [email protected]
data/class/pages/LC_Page_Index.php [email protected]
data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery_Input.php [email protected]
data/class/pages/admin/products/LC_Page_Admin_Products_Product.php [email protected]
data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php [email protected]
data/class/pages/shopping/LC_Page_Shopping.php [email protected]
data/class/pages/shopping/LC_Page_Shopping_Deliv.php [email protected]
data/class/pages/shopping/LC_Page_Shopping_Payment.php [email protected]
bzr:timestamp:
2011-02-02 16:56:47.275000095 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-02-02T07:56:47.275000Z
Message:

#990(配送設定・支払方法設定の仕様変更)

  • 管理画面 -> 基本情報管理, 商品管理のみ対応
Location:
branches/version-2_5-dev/data/class
Files:
9 edited

Legend:

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

    r20048 r20069  
    584584        // TODO エラーハンドリング 
    585585        return true; 
    586     } 
    587  
    588     /** 
    589      * 引数の商品規格IDで有効な支払方法IDの配列を取得する. 
    590      * 
    591      * @param array $productClassIds 商品規格IDの配列 
    592      * @return array 支払方法IDの配列 
    593      */ 
    594     function getEnablePaymentIds($productClassIds) { 
    595         $size = count($productClassIds); 
    596         $objQuery =& SC_Query::getSingletonInstance(); 
    597         $objQuery->groupby = 'GROUP BY payment_id HAVING COUNT(payment_id) = ?'; 
    598         $paymentIds = $objQuery->getCol('payment_id', 'dtb_payment_options', 
    599                                         'product_class_id IN (' . implode(', ', array_pad(array(), $size, '?')) . ')', 
    600                                         array_merge($productClassIds, array($size)), 
    601                                         MDB2_FETCHMODE_ORDERED); 
    602         return $paymentIds; 
    603     } 
    604  
    605     /** 
    606      * 商品規格に支払方法を設定する. 
    607      * 
    608      * TODO 現在は DELETE/INSERT だが, UPDATE を検討する. 
    609      * 
    610      * @param integer $productClassId 商品規格ID 
    611      * @param array 設定する支払方法IDの配列 
    612      * @return void 
    613      */ 
    614     function setPaymentOptions($productClassId, $paymentIds) { 
    615         $val['product_class_id'] = $productClassId; 
    616  
    617         $objQuery =& SC_Query::getSingletonInstance(); 
    618         $objQuery->delete('dtb_payment_options', 'product_class_id = ?', array($productClassId)); 
    619         $rank = 1; 
    620         foreach ($paymentIds as $paymentId) { 
    621             $val['payment_id'] = $paymentId; 
    622             $val['rank'] = $rank; 
    623             $objQuery->insert('dtb_payment_options', $val); 
    624             $rank++; 
    625         } 
    626586    } 
    627587 
  • branches/version-2_5-dev/data/class/SC_View.php

    r20032 r20069  
    6666 
    6767        // サイト情報を取得する 
    68         // XXX 要動作確認. 不要の可能性有り 
     68        // XXX LC_Page 配下で取得した方が良い 
    6969        if($siteinfo) { 
    7070            if(!defined('LOAD_SITEINFO')) { 
  • branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php

    r19993 r20069  
    341341     * 
    342342     * @param integer $total 購入金額 
    343      * @param array $productClassIds 購入する商品規格IDの配列 
     343     * @param integer $deliv_id 配送業者ID 
    344344     * @return array 購入金額に応じた支払方法の配列 
    345345     */ 
    346     function getPayment($total, $productClassIds) { 
    347         // 有効な支払方法を取得 
    348         $objProduct = new SC_Product(); 
    349         $paymentIds = $objProduct->getEnablePaymentIds($productClassIds); 
    350  
     346    function getPaymentsByPrice($total, $deliv_id) { 
     347 
     348        $arrPaymentIds = $this->getPayments($deliv_id); 
    351349        $objQuery =& SC_Query::getSingletonInstance(); 
    352350 
    353351        // 削除されていない支払方法を取得 
    354         $where = 'del_flg = 0 AND payment_id IN (' . implode(', ', array_pad(array(), count($paymentIds), '?')) . ')'; 
     352        $where = 'del_flg = 0 AND payment_id IN (' . implode(', ', array_pad(array(), count($arrPaymentIds), '?')) . ')'; 
    355353        $objQuery->setOrder("rank DESC"); 
    356         $payments = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image", "dtb_payment", $where, $paymentIds); 
     354        $payments = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image", "dtb_payment", $where, $arrPaymentIds); 
    357355 
    358356        foreach ($payments as $data) { 
     
    485483 
    486484    /** 
    487      * 商品種別ID から配送業者ID を取得する. 
     485     * 商品種別ID から配送業者を取得する. 
    488486     */ 
    489487    function getDeliv($productTypeId) { 
    490488        $objQuery =& SC_Query::getSingletonInstance(); 
    491         $result = $objQuery->get("deliv_id", "dtb_deliv", "product_type_id = ?", 
     489        return $objQuery->select("*", "dtb_deliv", "product_type_id = ?", 
    492490                                 array($productTypeId)); 
    493         // XXX ダウンロード商品の場合の dtb_shipping の扱い 
    494         return is_null($result) ? 0 : $result; 
     491    } 
     492 
     493    /** 
     494     * 配送業者ID から, 有効な支払方法を取得する. 
     495     * 
     496     * @param integer $deliv_id 配送業者ID 
     497     * @return array 有効な支払方法IDの配列 
     498     */ 
     499    function getPayments($deliv_id) { 
     500        $objQuery =& SC_Query::getSingletonInstance(); 
     501        $from = <<< __EOS__ 
     502                      dtb_deliv T1 
     503            LEFT JOIN dtb_payment_options T2 
     504                   ON T1.deliv_id = T2.deliv_id 
     505__EOS__; 
     506        $objQuery->setOrder('T2.rank'); 
     507        return $objQuery->getCol('payment_id', $from, 'T1.deliv_id = ?', 
     508                                 array($deliv_id), MDB2_FETCHMODE_ORDERED); 
    495509    } 
    496510 
  • branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery_Input.php

    r20041 r20069  
    5656        $this->arrPref = $masterData->getMasterData('mtb_pref'); 
    5757        $this->arrProductType = $masterData->getMasterData("mtb_product_type"); 
     58        $this->arrPayments = SC_Helper_DB_Ex::sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); 
    5859        $this->tpl_subtitle = '配送業者設定'; 
    5960        $this->mode = $this->getMode(); 
     
    134135                $this->objFormParam->addParam("伝票No.確認URL", "confirm_url", STEXT_LEN, "n", array("URL_CHECK", "MAX_LENGTH_CHECK"), "http://"); 
    135136                $this->objFormParam->addParam("取扱商品種別", "product_type_id", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
     137                $this->objFormParam->addParam("取扱支払方法", "payment_ids", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
    136138 
    137139                for($cnt = 1; $cnt <= DELIVTIME_MAX; $cnt++) { 
     
    258260                } 
    259261            } 
     262        } 
     263 
     264        // TODO 支払方法登録 
     265        $objQuery->delete('dtb_payment_options', 'deliv_id = ?', array($_POST['deliv_id'])); 
     266        $sqlval = array(); 
     267        $i = 1; 
     268        foreach ($arrRet['payment_ids'] as $val) { 
     269            $sqlval['deliv_id'] = $deliv_id; 
     270            $sqlval['payment_id'] = $val; 
     271            $sqlval['rank'] = $i; 
     272            $objQuery->insert('dtb_payment_options', $sqlval); 
     273            $i++; 
    260274        } 
    261275        $objQuery->commit(); 
     
    288302        $arrRet = $objQuery->select($col, $table, $where, array($deliv_id)); 
    289303        $this->objFormParam->setParamList($arrRet, 'fee'); 
     304        // 支払方法 
     305        $col = 'payment_id'; 
     306        $where = 'deliv_id = ? ORDER BY rank'; 
     307        $table = 'dtb_payment_options'; 
     308        $arrRet = $objQuery->select($col, $table, $where, array($deliv_id)); 
     309        $arrPaymentIds = array(); 
     310        foreach ($arrRet as $val) { 
     311            $arrPaymentIds[] = $val['payment_id']; 
     312        } 
     313        $this->objFormParam->setValue('payment_ids', $arrPaymentIds); 
    290314    } 
    291315 
  • branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php

    r20044 r20069  
    7474        $this->arrProductType = $masterData->getMasterData("mtb_product_type"); 
    7575        $this->arrMaker = SC_Helper_DB_Ex::sfGetIDValueList("dtb_maker", "maker_id", "name"); 
    76         $this->arrPayments = SC_Helper_DB_Ex::sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); 
    7776        $this->tpl_nonclass = true; 
    7877    } 
     
    143142                $productStatus= $objProduct->getProductStatus(array($_POST['product_id'])); 
    144143                $this->arrForm['product_status'] = $productStatus[$_POST['product_id']]; 
    145                 $this->arrForm['payment_ids'] = $objProduct->getEnablePaymentIds(array($this->arrForm['product_class_id'])); 
    146144 
    147145                // DBデータから画像ファイル名の読込 
     
    684682            } 
    685683 
    686             // 支払方法チェック 
    687             if (empty($array['payment_ids'])) { 
    688                 $objErr->arrErr['payment_ids'] = "※ 支払方法は、いずれかを選択してください。<br />"; 
    689             } 
    690  
    691684            //ダウンロード商品チェック 
    692685            if($array['product_type_id'] == PRODUCT_TYPE_DOWNLOAD) { 
     
    932925 
    933926        } 
    934  
    935         $objProduct = new SC_Product(); 
    936         $objProduct->setPaymentOptions($sqlval['product_class_id'], $arrList['payment_ids']); 
    937927    } 
    938928 
  • branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php

    r20041 r20069  
    5656        $masterData = new SC_DB_MasterData_Ex(); 
    5757        $this->arrProductType = $masterData->getMasterData("mtb_product_type"); 
    58         $this->arrPayments = SC_Helper_DB_Ex::sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); 
    5958    } 
    6059 
     
    298297            } 
    299298 
    300             // 支払方法登録 
    301             $objProduct = new SC_Product(); 
    302             $objProduct->setPaymentOptions($pVal['product_class_id'], $arrList['payment_ids:'.$i]); 
    303299            $i++; 
    304300        } 
     
    373369                } 
    374370 
    375                 // 支払方法チェック 
    376                 if (empty($array['payment_ids:' . $no])) { 
    377                     $objErr->arrErr['payment_ids:' . $no] = "※ 支払方法は、いずれかを選択してください。<br />"; 
    378                 } 
    379  
    380371                //ダウンロード商品チェック 
    381372                if($array["product_type_id:".$no] == PRODUCT_TYPE_DOWNLOAD) { 
     
    397388            if(count($objErr->arrErr) > 0) { 
    398389                $objErr->arrErr["error:".$no] = $objErr->arrErr["product_type_id:".$no]; 
    399                 $objErr->arrErr["error:".$no] .= $objErr->arrErr["payment_ids:".$no]; 
    400390                $objErr->arrErr["error:".$no] .= $objErr->arrErr["product_code:".$no]; 
    401391                $objErr->arrErr["error:".$no] .= $objErr->arrErr["price01:".$no]; 
     
    490480                    break; 
    491481 
    492                     case 'product_class_id': 
    493                         $this->arrForm["payment_ids:" . ($i+1)] = $objProduct->getEnablePaymentIds(array($val)); 
    494                         break; 
    495482                default: 
    496483                } 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php

    r20041 r20069  
    290290        } 
    291291 
    292         $deliv_id = $objPurchase->getDeliv($productTypeId); 
    293         $order_val = array('deliv_id' => $deliv_id); 
    294         $shipping_val = array('deliv_id' => $deliv_id); 
     292        $arrDeliv = $objPurchase->getDeliv($productTypeId); 
     293        $order_val = array('deliv_id' => $arrDeliv[0]['deliv_id']); 
     294        $shipping_val = array('deliv_id' => $arrDeliv[0]['deliv_id']); 
    295295 
    296296        /* 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php

    r20044 r20069  
    172172                $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping'); 
    173173                // FIXME ダウンロード商品の場合は配送無し 
    174                 $sqlval['deliv_id'] = $objPurchase->getDeliv($this->cartKey); 
     174                $arrDeliv = $objPurchase->getDeliv($this->cartKey); 
     175                $sqlval['deliv_id'] = $arrDeliv[0]['deliv_id']; 
    175176                $objPurchase->saveShippingTemp($sqlval); 
    176177                $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
     
    193194        case 'customer_addr': 
    194195            $sqlval = array(); 
    195             $sqlval['deliv_id'] = $objPurchase->getDeliv($this->cartKey); 
     196            $arrDeliv = $objPurchase->getDeliv($this->cartKey); 
     197            $sqlval['deliv_id'] = $arrDeliv[0]['deliv_id']; 
    196198            // 会員登録住所がチェックされている場合 
    197199            if ($_POST['deliv_check'] == '-1') { 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r20041 r20069  
    137137        $total_inctax = $objCartSess->getAllProductsTotal($this->cartKey); 
    138138 
    139         // 支払い方法の取得 
    140         $this->arrPayment = $objPurchase->getPayment($total_inctax, $objCartSess->getAllProductClassID($this->cartKey)); 
     139        // FIXME 支払い方法の取得 
     140        $arrDeliv = $objPurchase->getDeliv($this->cartKey); 
     141        $this->arrPayment = $objPurchase->getPaymentsByPrice($total_inctax, $arrDeliv[0]['deliv_id']); 
    141142 
    142143        switch($this->getMode()) { 
Note: See TracChangeset for help on using the changeset viewer.