Ignore:
Timestamp:
2011/02/17 19:40:06 (15 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:20179
bzr:committer:
Kentaro Ohkouchi <[email protected]>
bzr:file-ids:

data/Smarty/templates/admin/order/edit.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Forder%2Fedit.tpl
data/Smarty/templates/admin/order/multiple.tpl multiple.tpl-20110116173102-7dtlp9lt15miha2l-1
data/class/SC_FormParam.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_FormParam.php
data/class/helper/SC_Helper_DB.php 15176@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fhelper%2FSC_Helper_DB.php
data/class/helper/SC_Helper_Purchase.php sc_helper_purchase.p-20101020100530-jyaoa7ch9pdfjqzp-1
data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php 15594@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Forder%2FLC_Page_Admin_Order_Edit.php
data/class/pages/admin/order/LC_Page_Admin_Order_Status.php 15596@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Forder%2FLC_Page_Admin_Order_Status.php
bzr:mapping-version:
v4
bzr:merge:

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

data/Smarty/templates/admin/order/edit.tpl [email protected]
data/Smarty/templates/admin/order/multiple.tpl [email protected]
data/class/SC_FormParam.php [email protected]
data/class/helper/SC_Helper_Purchase.php [email protected]
data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php [email protected]
data/class/pages/admin/order/LC_Page_Admin_Order_Status.php [email protected]
bzr:timestamp:
2011-02-17 19:40:03.388000011 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-02-17T10:40:03.388000Z
Message:

#975([管理画面]受注管理(受注一覧、登録編集))

  • 受注登録/編集ページ
  • 配送方法を選択できるよう追加カスタマイズ

#642(共通ロジックの機能向上)

  • SC_FormParam の処理を多次元配列へ対応
  • SC_Helper_DB::sfUpdateOrderNameCol(), SC_Helper_DB::sfUpdateOrderStatus() を SC_Helper_Purchase へ移動
File:
1 edited

Legend:

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

    r20171 r20180  
    13681368 
    13691369    /** 
    1370      * 受注の名称列を更新する 
    1371      * 
    1372      * FIXME 
    1373      * 
    1374      * @param integer $order_id 更新対象の注文番号 
    1375      * @param boolean $temp_table 更新対象は「受注_Temp」か 
    1376      * @static 
    1377      */ 
    1378     function sfUpdateOrderNameCol($order_id, $temp_table = false) { 
    1379         $objQuery =& SC_Query::getSingletonInstance(); 
    1380  
    1381         if ($temp_table) { 
    1382             $tgt_table = 'dtb_order_temp'; 
    1383             $sql_where = 'WHERE order_temp_id = ?'; 
    1384         } else { 
    1385             $tgt_table = 'dtb_order'; 
    1386             $sql_where = 'WHERE order_id = ?'; 
    1387         } 
    1388  
    1389         $sql = <<< __EOS__ 
    1390             UPDATE 
    1391                 {$tgt_table} 
    1392             SET 
    1393                  payment_method = (SELECT payment_method FROM dtb_payment WHERE payment_id = {$tgt_table}.payment_id) 
    1394                 ,deliv_time = (SELECT deliv_time FROM dtb_delivtime WHERE time_id = {$tgt_table}.deliv_time_id AND deliv_id = {$tgt_table}.deliv_id) 
    1395             $sql_where 
    1396 __EOS__; 
    1397  
    1398         $objQuery->query($sql, array($order_id)); 
    1399     } 
    1400  
    1401     /** 
    14021370     * 店舗基本情報に基づいて税金額を返す 
    14031371     * 
     
    14371405 
    14381406        return SC_Utils_Ex::sfGetAddPoint($totalpoint, $use_point, $CONF['point_rate']); 
    1439     } 
    1440  
    1441     /** 
    1442      * 受注.対応状況の更新 
    1443      * 
    1444      * ・必ず呼び出し元でトランザクションブロックを開いておくこと。 
    1445      * 
    1446      * @param integer $orderId 注文番号 
    1447      * @param integer|null $newStatus 対応状況 (null=変更無し) 
    1448      * @param integer|null $newAddPoint 加算ポイント (null=変更無し) 
    1449      * @param integer|null $newUsePoint 使用ポイント (null=変更無し) 
    1450      * @param array $sqlval 更新後の値をリファレンスさせるためのパラメータ 
    1451      * @return void 
    1452      */ 
    1453     function sfUpdateOrderStatus($orderId, $newStatus = null, $newAddPoint = null, $newUsePoint = null) { 
    1454         $objQuery =& SC_Query::getSingletonInstance(); 
    1455  
    1456         $arrOrderOld = $objQuery->getRow('status, add_point, use_point, customer_id', 'dtb_order', 'order_id = ?', array($orderId)); 
    1457  
    1458         // 対応状況が変更無しの場合、DB値を引き継ぐ 
    1459         if (is_null($newStatus)) { 
    1460             $newStatus = $arrOrderOld['status']; 
    1461         } 
    1462  
    1463         // 使用ポイント、DB値を引き継ぐ 
    1464         if (is_null($newUsePoint)) { 
    1465             $newUsePoint = $arrOrderOld['use_point']; 
    1466         } 
    1467  
    1468         // 加算ポイント、DB値を引き継ぐ 
    1469         if (is_null($newAddPoint)) { 
    1470             $newAddPoint = $arrOrderOld['add_point']; 
    1471         } 
    1472  
    1473         if (USE_POINT !== false) { 
    1474             // 顧客.ポイントの加減値 
    1475             $addCustomerPoint = 0; 
    1476  
    1477             // ▼使用ポイント 
    1478             // 変更前の対応状況が利用対象の場合、変更前の使用ポイント分を戻す 
    1479             if (SC_Utils_Ex::sfIsUsePoint($arrOrderOld['status'])) { 
    1480                 $addCustomerPoint += $arrOrderOld['use_point']; 
    1481             } 
    1482  
    1483             // 変更後の対応状況が利用対象の場合、変更後の使用ポイント分を引く 
    1484             if (SC_Utils_Ex::sfIsUsePoint($newStatus)) { 
    1485                 $addCustomerPoint -= $newUsePoint; 
    1486             } 
    1487             // ▲使用ポイント 
    1488  
    1489             // ▼加算ポイント 
    1490             // 変更前の対応状況が加算対象の場合、変更前の加算ポイント分を戻す 
    1491             if (SC_Utils_Ex::sfIsAddPoint($arrOrderOld['status'])) { 
    1492                 $addCustomerPoint -= $arrOrderOld['add_point']; 
    1493             } 
    1494  
    1495             // 変更後の対応状況が加算対象の場合、変更後の加算ポイント分を足す 
    1496             if (SC_Utils_Ex::sfIsAddPoint($newStatus)) { 
    1497                 $addCustomerPoint += $newAddPoint; 
    1498             } 
    1499             // ▲加算ポイント 
    1500  
    1501             if ($addCustomerPoint != 0) { 
    1502                 // ▼顧客テーブルの更新 
    1503                 $sqlval = array(); 
    1504                 $where = ''; 
    1505                 $arrVal = array(); 
    1506                 $arrRawSql = array(); 
    1507                 $arrRawSqlVal = array(); 
    1508  
    1509                 $sqlval['update_date'] = 'Now()'; 
    1510                 $arrRawSql['point'] = 'point + ?'; 
    1511                 $arrRawSqlVal[] = $addCustomerPoint; 
    1512                 $where .= 'customer_id = ?'; 
    1513                 $arrVal[] = $arrOrderOld['customer_id']; 
    1514  
    1515                 $objQuery->update('dtb_customer', $sqlval, $where, $arrVal, $arrRawSql, $arrRawSqlVal); 
    1516                 // ▲顧客テーブルの更新 
    1517  
    1518                 // 顧客.ポイントをマイナスした場合、 
    1519                 if ($addCustomerPoint < 0) { 
    1520                     $sql = 'SELECT point FROM dtb_customer WHERE customer_id = ?'; 
    1521                     $point = $objQuery->getOne($sql, array($arrOrderOld['customer_id'])); 
    1522                     // 変更後の顧客.ポイントがマイナスの場合、 
    1523                     if ($point < 0) { 
    1524                         // ロールバック 
    1525                         $objQuery->rollback(); 
    1526                         // エラー 
    1527                         SC_Utils_Ex::sfDispSiteError(LACK_POINT); 
    1528                     } 
    1529                 } 
    1530             } 
    1531         } 
    1532  
    1533         // ▼受注テーブルの更新 
    1534         if (empty($sqlval)) { 
    1535             $sqlval = array(); 
    1536         } 
    1537  
    1538         if (USE_POINT !== false) { 
    1539             $sqlval['add_point'] = $newAddPoint; 
    1540             $sqlval['use_point'] = $newUsePoint; 
    1541         } 
    1542         // ステータスが発送済みに変更の場合、発送日を更新 
    1543         if ($arrOrderOld['status'] != ORDER_DELIV && $newStatus == ORDER_DELIV) { 
    1544             $sqlval['commit_date'] = 'Now()'; 
    1545         } 
    1546         // ステータスが入金済みに変更の場合、入金日を更新 
    1547         elseif ($arrOrderOld['status'] != ORDER_PRE_END && $newStatus == ORDER_PRE_END) { 
    1548             $sqlval['payment_date'] = 'Now()'; 
    1549         } 
    1550  
    1551         $sqlval['status'] = $newStatus; 
    1552         $sqlval['update_date'] = 'Now()'; 
    1553  
    1554         $cols = $objQuery->listTableFields('dtb_order'); 
    1555         $dest = array(); 
    1556         foreach ($sqlval as $key => $val) { 
    1557             if (in_array($key, $cols)) { 
    1558                 $dest[$key] = $val; 
    1559             } 
    1560         } 
    1561  
    1562         $objQuery->update('dtb_order', $dest, 'order_id = ?', array($orderId)); 
    1563         // ▲受注テーブルの更新 
    15641407    } 
    15651408 
Note: See TracChangeset for help on using the changeset viewer.