Ignore:
Timestamp:
2011/03/22 12:37:58 (13 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:20759
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

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
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110322033705-ctufnfzs72abavx2
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110322033748-5yxzaoeg3zt9tsdi
bzr:revno:
3474
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-revisions:

data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php ohkouchi@loop-az.jp-20110322033705-ctufnfzs72abavx2
bzr:timestamp:
2011-03-22 12:37:48.986999989 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-03-22T03:37:48.987000Z
Message:

#1188 (規格の変更を重ねるとデータがおかしくなる)

  • 新たに規格分類を追加した場合に対応
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php

    r20757 r20760  
    475475        $existsProductsClass = $objProduct->getProductsClassFullByProductId($product_id, true); 
    476476 
     477        // 規格のデフォルト値(すべての組み合わせ)を取得し, フォームに反映 
    477478        $class_id1 = $existsProductsClass[0]['class_id1']; 
    478479        $class_id2 = $existsProductsClass[0]['class_id2']; 
     
    481482        $this->doDisp($objFormParam); 
    482483 
     484        /*------------------------------------------------------------- 
     485         * 登録済みのデータで, フォームの値を上書きする. 
     486         * 
     487         * 登録済みデータと, フォームの値は, 配列の形式が違うため, 
     488         * 同じ形式の配列を生成し, マージしてフォームの値を上書きする 
     489         --------------------------------------------------------------*/ 
     490        $arrKeys = array('classcategory_id1', 'classcategory_id2','product_code', 
     491                         'classcategory_name1', 'classcategory_name2', 'stock', 
     492                         'stock_unlimited', 'price01', 'price02', 
     493                         'product_type_id', 'down_filename', 'down_realfilename', 
     494                         'upload_index'); 
     495        $arrFormValues = $objFormParam->getSwapArray($arrKeys); 
     496        // フォームの規格1, 規格2をキーにした配列を生成 
     497        $arrClassCatKey = array(); 
     498        foreach ($arrFormValues as $formValue) { 
     499            $arrClassCatKey[$formValue['classcategory_id1']][$formValue['classcategory_id2']] = $formValue; 
     500        } 
     501        // 登録済みデータをマージ 
     502        foreach ($existsProductsClass as $existsValue) { 
     503            $arrClassCatKey[$existsValue['classcategory_id1']][$existsValue['classcategory_id2']] = $existsValue; 
     504        } 
     505 
     506        // 規格のデフォルト値に del_flg をつけてマージ後の1次元配列を生成 
     507        $arrMergeProductsClass = array(); 
     508        foreach ($arrClassCatKey as $arrC1) { 
     509            foreach ($arrC1 as $arrValues) { 
     510                $arrValues['del_flg'] = (string) $arrValues['del_flg']; 
     511                if (SC_Utils_Ex::isBlank($arrValues['del_flg']) 
     512                    || $arrValues['del_flg'] === '1') { 
     513                    $arrValues['del_flg'] = '1'; 
     514                } else { 
     515                    $arrValues['del_flg'] = '0'; 
     516                } 
     517                $arrMergeProductsClass[] = $arrValues; 
     518            } 
     519        } 
     520 
    483521        // 登録済みのデータで上書き 
    484         $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($existsProductsClass)); 
    485  
    486         // $existsProductsClass で product_id が配列になってしまうため数値で上書き 
     522        $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrMergeProductsClass)); 
     523 
     524        // $arrMergeProductsClass で product_id が配列になってしまうため数値で上書き 
    487525        $objFormParam->setValue('product_id', $product_id); 
    488526 
     
    491529        $index = 0; 
    492530        foreach ($objFormParam->getValue('del_flg') as $key => $val) { 
    493             if ($val == 0) { 
     531            if ($val === '0') { 
    494532                $arrChecks[$index] = 1; 
    495533            } 
Note: See TracChangeset for help on using the changeset viewer.