[Svn-src-all:3654] [version-2_12-dev 22566] #2136 #2134 get した値をそのまま save できるように調整.

pineray admin @ mail.ec-cube.net
2013年 2月 18日 (月) 19:00:58 JST


Subversion committed to /home/svn/open 22566
http://svn.ec-cube.net/open_trac/changeset/22566
┌────────────────────────────┐
│更新者 :  pineray                                      │
│更新日時:  2013-02-18 19:00:58 +0900 (月, 18  2月 2013)│
└────────────────────────────┘

Log:
--------------------------------------------------------
#2136 #2134 get した値をそのまま save できるように調整.

Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
U   branches/version-2_12-dev/data/class/helper/SC_Helper_Delivery.php
U   branches/version-2_12-dev/data/class/helper/SC_Helper_Payment.php
U   branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_DeliveryInput.php
U   branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_PaymentInput.php

変更: branches/version-2_12-dev/data/class/helper/SC_Helper_Delivery.php
===================================================================
--- branches/version-2_12-dev/data/class/helper/SC_Helper_Delivery.php	2013-02-18 09:02:57 UTC (rev 22565)
+++ branches/version-2_12-dev/data/class/helper/SC_Helper_Delivery.php	2013-02-18 10:00:58 UTC (rev 22566)
@@ -28,8 +28,8 @@
  * @author pineray
  * @version $Id:$
  */
-class SC_Helper_Delivery
-{
+class SC_Helper_Delivery {
+
     /**
      * 配送方法の情報を取得.
      * 
@@ -41,7 +41,7 @@
         $objQuery =& SC_Query_Ex::getSingletonInstance();
 
         // 配送業者一覧の取得
-        $col = 'deliv_id, name, service_name, remark, confirm_url, product_type_id';
+        $col = '*';
         $where = 'deliv_id = ?';
         if (!$has_deleted) {
             $where .= ' AND del_flg = 0';
@@ -57,7 +57,7 @@
         $arrDeliv['deliv_time'] = $this->getDelivTime($deliv_id);
 
         // 配送料金の取得
-        $arrDeliv['fee'] = $this->getDelivFeeList($deliv_id);
+        $arrDeliv['deliv_fee'] = $this->getDelivFeeList($deliv_id);
 
         // 支払方法
         $arrDeliv['payment_ids'] = $this->getPayments($deliv_id);
@@ -115,8 +115,12 @@
         $sqlval_payment_ids = $sqlval['payment_ids'];
         unset($sqlval['payment_ids']);
 
+        $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
+
         // deliv_id が決まっていた場合
         if ($sqlval['deliv_id'] != '') {
+            unset($sqlval['creator_id']);
+            unset($sqlval['create_date']);
             $deliv_id = $sqlval['deliv_id'];
             $where = 'deliv_id = ?';
             $objQuery->update('dtb_deliv', $sqlval, $where, array($deliv_id));
@@ -125,13 +129,13 @@
             $table = 'dtb_delivtime';
             $where = 'deliv_id = ? AND time_id = ?';
             for ($cnt = 1; $cnt <= DELIVTIME_MAX; $cnt++) {
-                $keyname = 'deliv_time'.$cnt;
                 $arrWhereVal = array($deliv_id, $cnt);
                 // 既存データの有無を確認
                 $curData = $objQuery->select('*', $table, $where, $arrWhereVal);
 
                 if (isset($sqlval_deliv_time[$cnt])) {
-                    $deliv_time = $sqlval_deliv_time[$cnt];
+                    $deliv_time = array();
+                    $deliv_time['deliv_time'] = $sqlval_deliv_time[$cnt];
 
                     // 入力が空ではなく、DBに情報があれば更新
                     if (count($curData)) {
@@ -145,15 +149,15 @@
                     }
                 }
                 // 入力が空で、DBに情報がある場合は削除
-                else if (count($curData)) {
+                elseif (count($curData)) {
                     $objQuery->delete($table, $where, $arrWhereVal);
                 }
             }
 
             // 配送料の登録
             if (INPUT_DELIV_FEE) {
-                foreach ($sqlval_deliv_fee as $cnt => $deliv_fee) {
-                    $objQuery->update('dtb_delivfee', array('fee' => $deliv_fee['fee']), 'deliv_id = ? AND fee_id = ?', array($deliv_id, $cnt));
+                foreach ($sqlval_deliv_fee as $deliv_fee) {
+                    $objQuery->update('dtb_delivfee', array('fee' => $deliv_fee['fee']), 'deliv_id = ? AND fee_id = ?', array($deliv_id, $deliv_fee['fee_id']));
                 }
             }
         } else {
@@ -175,9 +179,8 @@
 
             if (INPUT_DELIV_FEE) {
                 // 配送料金の設定
-                foreach ($sqlval_deliv_fee as $cnt => $deliv_fee) {
+                foreach ($sqlval_deliv_fee as $deliv_fee) {
                     $deliv_fee['deliv_id'] = $deliv_id;
-                    $deliv_fee['fee_id'] = $cnt;
                     // INSERTの実行
                     $objQuery->insert('dtb_delivfee', $deliv_fee);
                 }
@@ -186,9 +189,14 @@
 
         // 支払い方法
         $objQuery->delete('dtb_payment_options', 'deliv_id = ?', array($deliv_id));
-        foreach ($sqlval_payment_ids as $payment_ids) {
-            $payment_ids['deliv_id'] = $deliv_id;
-            $objQuery->insert('dtb_payment_options', $payment_ids);
+        $i = 1;
+        foreach ($sqlval_payment_ids as $payment_id) {
+            $sqlval_payment_id = array();
+            $sqlval_payment_id['deliv_id'] = $deliv_id;
+            $sqlval_payment_id['payment_id'] = $payment_id;
+            $sqlval_payment_id['rank'] = $i;
+            $objQuery->insert('dtb_payment_options', $sqlval_payment_id);
+            $i++;
         }
 
         $objQuery->commit();
@@ -242,7 +250,7 @@
             $ret = $objDb->sfIsRecord('dtb_deliv', 'service_name', array($arrDeliv['service_name']));
         } else {
             $objQuery =& SC_Query_Ex::getSingletonInstance();
-            $ret = (($objQuery->count('dtb_deliv', 'deliv_id != ? AND service_name = ? ', array($arrDeliv['deliv_id'], $arrDeliv['service_name'])) > 0)? true : false);
+            $ret = (($objQuery->count('dtb_deliv', 'deliv_id != ? AND service_name = ? ', array($arrDeliv['deliv_id'], $arrDeliv['service_name'])) > 0) ? true : false);
         }
         return $ret;
     }
@@ -266,9 +274,7 @@
     public static function getDelivTime($deliv_id) {
         $objQuery =& SC_Query_Ex::getSingletonInstance();
         $objQuery->setOrder('time_id');
-        $results = $objQuery->select('time_id, deliv_time',
-                                     'dtb_delivtime',
-                                     'deliv_id = ?', array($deliv_id));
+        $results = $objQuery->select('time_id, deliv_time', 'dtb_delivtime', 'deliv_id = ?', array($deliv_id));
         $arrDelivTime = array();
         foreach ($results as $val) {
             $arrDelivTime[$val['time_id']] = $val['deliv_time'];
@@ -285,9 +291,7 @@
     public static function getPayments($deliv_id) {
         $objQuery =& SC_Query_Ex::getSingletonInstance();
         $objQuery->setOrder('rank');
-        return $objQuery->getCol('payment_id', 'dtb_payment_options',
-                                 'deliv_id = ?',
-                                 array($deliv_id), MDB2_FETCHMODE_ORDERED);
+        return $objQuery->getCol('payment_id', 'dtb_payment_options', 'deliv_id = ?', array($deliv_id), MDB2_FETCHMODE_ORDERED);
     }
 
     /**
@@ -327,10 +331,9 @@
     public static function getDelivFeeList($deliv_id) {
         $objQuery =& SC_Query_Ex::getSingletonInstance();
         $objQuery->setOrder('pref');
-        $col = 'fee';
+        $col = 'fee_id, fee, pref';
         $where = 'deliv_id = ?';
         $table = 'dtb_delivfee';
-        return $objQuery->getCol($col, $table, $where, array($deliv_id),
-                                 MDB2_FETCHMODE_ORDERED);
+        return $objQuery->select($col, $table, $where, array($deliv_id));
     }
 }

変更: branches/version-2_12-dev/data/class/helper/SC_Helper_Payment.php
===================================================================
--- branches/version-2_12-dev/data/class/helper/SC_Helper_Payment.php	2013-02-18 09:02:57 UTC (rev 22565)
+++ branches/version-2_12-dev/data/class/helper/SC_Helper_Payment.php	2013-02-18 10:00:58 UTC (rev 22566)
@@ -73,9 +73,10 @@
      * @return void
      */
     public function save($sqlval) {
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
+
         $payment_id = $sqlval['payment_id'];
-
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
+        $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
         // 新規登録
         if ($payment_id == '') {
             // INSERTの実行
@@ -86,6 +87,7 @@
         // 既存編集
         } else {
             unset($sqlval['creator_id']);
+            unset($sqlval['create_date']);
             $where = 'payment_id = ?';
             $objQuery->update('dtb_payment', $sqlval, $where, array($payment_id));
         }

変更: branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_DeliveryInput.php
===================================================================
--- branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_DeliveryInput.php	2013-02-18 09:02:57 UTC (rev 22565)
+++ branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_DeliveryInput.php	2013-02-18 10:00:58 UTC (rev 22566)
@@ -70,7 +70,7 @@
      * @return void
      */
     function action() {
-
+        $objFormParam = new SC_FormParam_Ex();
         $this->lfInitParam($this->mode, $objFormParam);
         $objFormParam->setParam($_POST);
 
@@ -158,16 +158,13 @@
         $sqlval['confirm_url'] = $arrRet['confirm_url'];
         $sqlval['product_type_id'] = $arrRet['product_type_id'];
         $sqlval['creator_id'] = $member_id;
-        $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
 
         // お届け時間
         $sqlval['deliv_time'] = array();
         for ($cnt = 1; $cnt <= DELIVTIME_MAX; $cnt++) {
             $keyname = "deliv_time$cnt";
             if ($arrRet[$keyname] != '') {
-                $deliv_time = array();
-                $deliv_time['deliv_time'] = $arrRet[$keyname];
-                $sqlval['deliv_time'][$cnt] = $deliv_time;
+                $sqlval['deliv_time'][$cnt] = $arrRet[$keyname];
             }
         }
 
@@ -179,6 +176,7 @@
                 $keyname = "fee$cnt";
                 if ($arrRet[$keyname] != '') {
                     $fee = array();
+                    $fee['fee_id'] = $cnt;
                     $fee['fee'] = $arrRet[$keyname];
                     $fee['pref'] = $cnt;
                     $sqlval['deliv_fee'][$cnt] = $fee;
@@ -188,13 +186,8 @@
 
         // 支払い方法
         $sqlval['payment_ids'] = array();
-        $i = 1;
-        foreach ($arrRet['payment_ids'] as $val) {
-            $payment_ids = array();
-            $payment_ids['payment_id'] = $val;
-            $payment_ids['rank'] = $i;
-            $sqlval['payment_ids'][] = $payment_ids;
-            $i++;
+        foreach ($arrRet['payment_ids'] as $payment_id) {
+            $sqlval['payment_ids'][] = $payment_id;
         }
 
         $deliv_id = $objDelivery->save($sqlval);
@@ -204,7 +197,6 @@
 
     /* 配送業者情報の取得 */
     function lfGetDelivData(&$objFormParam) {
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
         $objDelivery = new SC_Helper_Delivery_Ex();
 
         $deliv_id = $objFormParam->getValue('deliv_id');
@@ -223,11 +215,11 @@
         unset($arrDeliv['deliv_time']);
         // 配送料金
         $deliv_fee = array();
-        foreach ($arrDeliv['fee'] as $value) {
-            $deliv_fee[]['fee'] = $value;
+        foreach ($arrDeliv['deliv_fee'] as $value) {
+            $deliv_fee[]['fee'] = $value['fee'];
         }
         $objFormParam->setParamList($deliv_fee, 'fee');
-        unset($arrDeliv['fee']);
+        unset($arrDeliv['deliv_fee']);
         // 支払方法
         $objFormParam->setValue('payment_ids', $arrDeliv['payment_ids']);
         unset($arrDeliv['payment_ids']);

変更: branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_PaymentInput.php
===================================================================
--- branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_PaymentInput.php	2013-02-18 09:02:57 UTC (rev 22565)
+++ branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_PaymentInput.php	2013-02-18 10:00:58 UTC (rev 22566)
@@ -214,7 +214,6 @@
     function lfRegistData(&$objFormParam, SC_Helper_Payment_Ex $objPayment, $member_id, $payment_id = '') {
 
         $sqlval = array_merge($objFormParam->getHashArray(), $this->objUpFile->getDBFileList());
-        $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
         $sqlval['payment_id'] = $payment_id;
         $sqlval['creator_id'] = $member_id;
 




Svn-src-all メーリングリストの案内