Ignore:
Timestamp:
2011/08/19 12:06:05 (15 years ago)
Author:
Ringo
Message:

#1440 ステータス管理のポップアップで複数のお届け先が正しく表示されない

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_11-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Disp.php

    r21166 r21201  
    3333 */ 
    3434class LC_Page_Admin_Order_Disp extends LC_Page_Admin_Order_Ex { 
     35 
     36    var $arrShippingKeys = array( 
     37        'shipping_id', 
     38        'shipping_name01', 
     39        'shipping_name02', 
     40        'shipping_kana01', 
     41        'shipping_kana02', 
     42        'shipping_tel01', 
     43        'shipping_tel02', 
     44        'shipping_tel03', 
     45        'shipping_fax01', 
     46        'shipping_fax02', 
     47        'shipping_fax03', 
     48        'shipping_pref', 
     49        'shipping_zip01', 
     50        'shipping_zip02', 
     51        'shipping_addr01', 
     52        'shipping_addr02', 
     53        'shipping_date_year', 
     54        'shipping_date_month', 
     55        'shipping_date_day', 
     56        'time_id', 
     57    ); 
     58 
     59    var $arrShipmentItemKeys = array( 
     60        'shipment_product_class_id', 
     61        'shipment_product_code', 
     62        'shipment_product_name', 
     63        'shipment_classcategory_name1', 
     64        'shipment_classcategory_name2', 
     65        'shipment_price', 
     66        'shipment_quantity', 
     67    ); 
    3568 
    3669    // }}} 
     
    80113        $objPurchase = new SC_Helper_Purchase_Ex(); 
    81114        $objFormParam = new SC_FormParam_Ex(); 
    82          
     115 
    83116        // パラメータ情報の初期化 
    84117        $this->lfInitParam($objFormParam); 
     
    86119        $objFormParam->convParam(); 
    87120        $order_id = $objFormParam->getValue('order_id'); 
    88          
     121 
    89122        // DBから受注情報を読み込む 
    90123        $this->setOrderToFormParam($objFormParam, $order_id); 
    91          
     124 
    92125        $this->arrForm = $objFormParam->getFormParamList(); 
     126        $this->arrAllShipping = $objFormParam->getSwapArray(array_merge($this->arrShippingKeys, $this->arrShipmentItemKeys)); 
    93127        $this->arrDelivTime = $objPurchase->getDelivTime($objFormParam->getValue('deliv_id')); 
    94         $this->arrInfo = SC_Helper_DB_Ex::sfGetBasisData(); 
    95              
     128        $this->arrInfo = SC_Helper_DB_Ex::sfGetBasisData();         
     129 
    96130        $this->setTemplate($this->tpl_mainpage); 
    97131    } 
    98      
     132 
    99133    /** 
    100134     * デストラクタ. 
     
    229263        $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrOrderDetail)); 
    230264 
    231         $arrShippings = $objPurchase->getShippings($order_id); 
    232         // お届け日の処理 
    233         foreach (array_keys($arrShippings) as $key) { 
    234             $shipping =& $arrShippings[$key]; 
    235             if (!SC_Utils_Ex::isBlank($shipping["shipping_date"])) { 
    236                 $ts = strtotime($shipping["shipping_date"]); 
    237                 $arrShippings[$key]['shipping_date_year'] = date('Y', $ts); 
    238                 $arrShippings[$key]['shipping_date_month'] = date('n', $ts); 
    239                 $arrShippings[$key]['shipping_date_day'] = date('j', $ts); 
     265        $arrShippingsTmp = $objPurchase->getShippings($order_id); 
     266        $arrShippings = array(); 
     267        foreach ($arrShippingsTmp as $row) { 
     268            // お届け日の処理 
     269            if (!SC_Utils_Ex::isBlank($row["shipping_date"])) { 
     270                $ts = strtotime($row["shipping_date"]); 
     271                $row['shipping_date_year'] = date('Y', $ts); 
     272                $row['shipping_date_month'] = date('n', $ts); 
     273                $row['shipping_date_day'] = date('j', $ts); 
    240274            } 
     275            $arrShippings[$row['shipping_id']] = $row; 
    241276        } 
    242277        $objFormParam->setValue('shipping_quantity', count($arrShippings)); 
     
    246281         * 配送商品を設定 
    247282         * 
    248          * $arrShipmentItem['shipment_(key)'][$shipping_index][$item_index] = 値 
    249          * $arrProductQuantity[$shipping_index] = 配送先ごとの配送商品数量 
     283         * $arrShipmentItem['shipment_(key)'][$shipping_id][$item_index] = 値 
     284         * $arrProductQuantity[$shipping_id] = 配送先ごとの配送商品数量 
    250285         */ 
    251286        $arrProductQuantity = array(); 
    252287        $arrShipmentItem = array(); 
    253         foreach ($arrShippings as $shipping_index => $arrShipping) { 
    254             $arrProductQuantity[$shipping_index] = count($arrShipping['shipment_item']); 
     288        foreach ($arrShippings as $shipping_id => $arrShipping) { 
     289            $arrProductQuantity[$shipping_id] = count($arrShipping['shipment_item']); 
    255290            foreach ($arrShipping['shipment_item'] as $item_index => $arrItem) { 
    256291                foreach ($arrItem as $item_key => $item_val) { 
    257                     $arrShipmentItem['shipment_' . $item_key][$shipping_index][$item_index] = $item_val; 
     292                    $arrShipmentItem['shipment_' . $item_key][$shipping_id][$item_index] = $item_val; 
    258293                } 
    259294            } 
     
    270305        $objFormParam->setParam($arrOrder); 
    271306 
    272         // XXX ポイントを設定 
     307        // ポイントを設定 
    273308        list($db_point, $rollback_point) = SC_Helper_DB_Ex::sfGetRollbackPoint( 
    274309            $order_id, $arrOrder['use_point'], $arrOrder['add_point'], $arrOrder['status'] 
     
    278313 
    279314        if (!SC_Utils_Ex::isBlank($objFormParam->getValue('customer_id'))) { 
    280             $this->setCustomerTo($objFormParam->getValue('customer_id'), 
    281                                  $objFormParam); 
     315            $arrCustomer = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($objFormParam->getValue('customer_id')); 
     316            $objFormParam->setValue('customer_point', $arrCustomer['point']); 
    282317        } 
    283318    } 
Note: See TracChangeset for help on using the changeset viewer.