Ignore:
Timestamp:
2009/06/12 21:47:32 (13 years ago)
Author:
Seasoft
Message:

・受注.対応状況を発送済みにするタイミングでポイントを加算、発送済みから外れるタイミングで減算するように改訂。
・受注管理で使用ポイントや加算ポイントが変動した場合、顧客テーブルに反映するように改訂。
・ポイント加算するかの判定を拡張することで、発送済み以外のタイミングにも対応させる試み。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/comu-ver2/data/class/pages/admin/order/LC_Page_Admin_Order_Status.php

    r18099 r18100  
    6464        $objSess = new SC_Session(); 
    6565        $objDb = new SC_Helper_DB_Ex(); 
    66         $objQuery = new SC_Query(); 
    6766 
    6867        // 認証可否の判定 
     
    8281        case 'update': 
    8382            if (!isset($_POST['change_status'])) $_POST['change_status'] = ""; 
    84             if (!empty($_POST['change_status'])) { 
    85                 $this->lfStatusMove($_POST['change_status'], $_POST['move']); 
     83             
     84            switch ($_POST['change_status']) { 
     85                case '': 
     86                    break; 
     87                 
     88                // 削除 
     89                case 'delete': 
     90                    $this->lfDelete($_POST['move']); 
     91                    break; 
     92                 
     93                // 更新 
     94                default: 
     95                    $this->lfStatusMove($_POST['change_status'], $_POST['move']); 
     96                    break; 
    8697            } 
     98             
    8799            //ステータス情報 
    88100            $status = isset($_POST['status']) ? $_POST['status'] : ""; 
     
    151163    } 
    152164 
    153     //ステータス情報の更新(削除) 
    154     function lfStatusMove($status_id, $arrMove){ 
     165    /** 
     166     * ステータス情報の更新 
     167     */ 
     168    function lfStatusMove($statusId, $arrOrderId) { 
    155169        $objQuery = new SC_Query(); 
     170         
     171        if (!isset($arrOrderId) || !is_array($arrOrderId)) { 
     172            return false; 
     173        } 
    156174        $masterData = new SC_DB_MasterData_Ex(); 
    157175        $arrORDERSTATUS = $masterData->getMasterData("mtb_order_status"); 
    158  
    159         $table = 'dtb_order'; 
    160         $where = 'order_id = ?'; 
    161         $arrUpdate = array('update_date' => 'NOW()'); 
    162  
    163         $delflg  = '1'; // 削除フラグ 
    164         $message = '';  // ステータス変更後にポップアップするメッセージの内容 
    165  
    166         if ( $status_id == 'delete' ) { 
    167             $arrUpdate['del_flg'] = $delflg; 
    168             $message = '削除'; 
    169         } 
    170         // ステータスが発送済みの時は発送日を更新 
    171         elseif ( $status_id == ORDER_DELIV ) { 
    172             $arrUpdate['status'] = $status_id; 
    173             $arrUpdate['commit_date'] = 'NOW()'; 
    174             $message = $arrORDERSTATUS[$status_id] . 'へ移動'; 
    175         } 
    176         else { 
    177             $arrUpdate['status'] = $status_id; 
    178             $message = $arrORDERSTATUS[$status_id] . 'へ移動'; 
    179         } 
    180  
    181         if ( isset($arrMove) ){ 
    182             foreach ( $arrMove as $val ){ 
    183                 if ( $val != "" ) { 
    184                     $objQuery->update($table, $arrUpdate, $where, array($val)); 
    185                 } 
    186  
    187             } 
    188         } 
    189  
    190         $this->tpl_onload = "window.alert('選択項目を" . $message . "しました。');"; 
     176         
     177        $objQuery->begin(); 
     178         
     179        foreach ($arrOrderId as $orderId) { 
     180            SC_Helper_DB_Ex::sfUpdateOrderStatus($orderId, $statusId); 
     181        } 
     182         
     183        $objQuery->commit(); 
     184         
     185        $this->tpl_onload = "window.alert('選択項目を" . $arrORDERSTATUS[$statusId] . "へ移動しました。');"; 
     186        return true; 
     187    } 
     188 
     189    /** 
     190     * 受注テーブルの論理削除 
     191     */ 
     192    function lfDelete($arrOrderId) { 
     193        $objQuery = new SC_Query(); 
     194         
     195        if (!isset($arrOrderId) || !is_array($arrOrderId)) { 
     196            return false; 
     197        } 
     198         
     199        $arrUpdate = array( 
     200             'del_flg' => 1 
     201            ,'update_date' => 'Now()' 
     202        ); 
     203         
     204        $objQuery->begin(); 
     205         
     206        foreach ($arrOrderId as $orderId) { 
     207            $objQuery->update('dtb_order', $arrUpdate, 'order_id = ?', array($orderId)); 
     208        } 
     209         
     210        $objQuery->commit(); 
     211         
     212        $this->tpl_onload = "window.alert('選択項目を削除しました。');"; 
     213        return true; 
    191214    } 
    192215} 
Note: See TracChangeset for help on using the changeset viewer.