Changeset 17513


Ignore:
Timestamp:
2008/08/08 14:34:14 (13 years ago)
Author:
nakanishi
Message:

#329 配送業者登録を更新すると配送時間のIDが変わる問題を修正 mkimura様

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery_Input.php

    r16741 r17513  
    132132    } 
    133133 
    134     /* DBに登録する */ 
     134     
     135    /** 
     136     * 配送情報を登録する 
     137     * 
     138     * @return $deliv_id  
     139     */ 
    135140    function lfRegistData() { 
    136141        $arrRet = $this->objFormParam->getHashArray(); 
     
    145150        $sqlval['update_date'] = 'Now()'; 
    146151 
     152 
     153        // deliv_id が決まっていた場合 
    147154        if($_POST['deliv_id'] != "") { 
    148155            $deliv_id = $_POST['deliv_id']; 
    149156            $where = "deliv_id = ?"; 
    150157            $objQuery->update("dtb_deliv", $sqlval, $where, array($deliv_id)); 
    151             $objQuery->delete("dtb_delivfee", $where, array($deliv_id)); 
    152             $objQuery->delete("dtb_delivtime", $where, array($deliv_id)); 
    153         } else { 
     158 
     159            // 配送時間の登録 
     160            $table = "dtb_delivtime"; 
     161            $where = "deliv_id = ? AND time_id = ?"; 
     162            for($cnt = 1; $cnt <= DELIVTIME_MAX; $cnt++) { 
     163                $sqlval = array(); 
     164                $keyname = "deliv_time".$cnt; 
     165                $arrval = array($deliv_id, ($cnt * $deliv_id)); 
     166                // 既存データの有無を確認 
     167                $curData = $objQuery->select("*", $table, $where, $arrval); 
     168 
     169                if(strcmp($arrRet[$keyname], "") != 0) { 
     170                    $sqlval['deliv_time'] = $arrRet[$keyname]; 
     171 
     172                    // 入力が空ではなく、DBに情報があれば更新 
     173                    if(count($curData)) { 
     174                        $objQuery->update($table, $sqlval, $where, $arrval); 
     175                    } 
     176                    // DBに情報がなければ登録 
     177                    else { 
     178                        $sqlval['deliv_id'] = $deliv_id; 
     179                        $sqlval['time_id'] = ($cnt * $deliv_id); 
     180                        $objQuery->insert($table, $sqlval); 
     181                    } 
     182                } 
     183                // 入力が空で、DBに情報がある場合は削除 
     184                else if(count($curData)) { 
     185                    $objQuery->delete($table, $where, $arrval); 
     186                } 
     187            } 
     188 
     189            // 配送料の登録 
     190            if(INPUT_DELIV_FEE) { 
     191                for($cnt = 1; $cnt <= DELIVFEE_MAX; $cnt++) { 
     192                    $keyname = "fee".$cnt; 
     193                    if(strcmp($arrRet[$keyname], "") != 0) { 
     194                        $sqlval = array('fee' => $arrRet[$keyname]); 
     195                        $objQuery->update("dtb_delivfee", $sqlval, "deliv_id = ? AND pref = ?", array($deliv_id, $cnt)); 
     196                    } 
     197                } 
     198            } 
     199        } 
     200        else { 
    154201            // 登録する配送業者IDの取得 
    155202 
     
    167214                $deliv_id = $objQuery->nextval('dtb_deliv', 'deliv_id'); 
    168215            } 
    169         } 
    170  
    171         $sqlval = array(); 
    172         // 配送時間の設定 
    173         for($cnt = 1; $cnt <= DELIVTIME_MAX; $cnt++) { 
    174             $keyname = "deliv_time$cnt"; 
    175             if($arrRet[$keyname] != "") { 
    176                 $sqlval['deliv_id'] = $deliv_id; 
    177                 $sqlval['deliv_time'] = $arrRet[$keyname]; 
    178                 // INSERTの実行 
    179                 $objQuery->insert("dtb_delivtime", $sqlval); 
    180             } 
    181         } 
    182  
    183         if(INPUT_DELIV_FEE) { 
     216 
    184217            $sqlval = array(); 
    185             // 配送料金の設定 
    186             for($cnt = 1; $cnt <= DELIVFEE_MAX; $cnt++) { 
    187                 $keyname = "fee$cnt"; 
     218            // 配送時間の設定 
     219            for($cnt = 1; $cnt <= DELIVTIME_MAX; $cnt++) { 
     220                $keyname = "deliv_time$cnt"; 
    188221                if($arrRet[$keyname] != "") { 
    189222                    $sqlval['deliv_id'] = $deliv_id; 
    190                     $sqlval['fee'] = $arrRet[$keyname]; 
    191                     $sqlval['pref'] = $cnt; 
     223                    $sqlval['time_id'] = ($cnt * $deliv_id); 
     224                    $sqlval['deliv_time'] = $arrRet[$keyname]; 
    192225                    // INSERTの実行 
    193                     $objQuery->insert("dtb_delivfee", $sqlval); 
     226                    $objQuery->insert("dtb_delivtime", $sqlval); 
     227                } 
     228            } 
     229 
     230            if(INPUT_DELIV_FEE) { 
     231                $sqlval = array(); 
     232                // 配送料金の設定 
     233                for($cnt = 1; $cnt <= DELIVFEE_MAX; $cnt++) { 
     234                    $keyname = "fee$cnt"; 
     235                    if($arrRet[$keyname] != "") { 
     236                        $sqlval['deliv_id'] = $deliv_id; 
     237                        $sqlval['fee'] = $arrRet[$keyname]; 
     238                        $sqlval['pref'] = $cnt; 
     239                        // INSERTの実行 
     240                        $objQuery->insert("dtb_delivfee", $sqlval); 
     241                    } 
    194242                } 
    195243            } 
     
    198246        return $deliv_id; 
    199247    } 
     248     
    200249 
    201250    /* 配送業者情報の取得 */ 
Note: See TracChangeset for help on using the changeset viewer.