Ignore:
Timestamp:
2012/03/27 11:12:18 (12 years ago)
Author:
eoogle
Message:

#1516 (複数受注でまとめてメール送信)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php

    r21591 r21687  
    7474        $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 
    7575        $objPlugin->doAction('lc_page_admin_order_mail_action_start', array($this)); 
    76  
     76         
     77        //一括送信用の処理 
     78        if(array_key_exists("mail_order_id",$_POST) and $_POST['mode'] == 'mail_select'){ 
     79            $_POST['order_id_array'] = implode(",",$_POST['mail_order_id']); 
     80        }else if(!array_key_exists("order_id_array",$_POST)){ 
     81            $_POST['order_id_array'] = $_POST['order_id']; 
     82        } 
     83         
     84         
     85        //一括送信処理変数チェック(ここですべきかは課題) 
     86        if(preg_match("/^[0-9|\,]*$/",$_POST['order_id_array'])){ 
     87            $this->order_id_array = $_POST['order_id_array']; 
     88        }else{ 
     89            //エラーで元に戻す 
     90            SC_Response_Ex::sendRedirect(ADMIN_ORDER_URLPATH); 
     91            exit; 
     92        } 
     93         
     94        //メール本文の確認例は初めの1受注とする 
     95        if($this->order_id_array){ 
     96            $order_id_array = split(",",$this->order_id_array); 
     97            $_POST['order_id'] = intval($order_id_array[0]); 
     98            $this->order_id_count = count($order_id_array); 
     99        } 
     100         
    77101        // パラメーター管理クラス 
    78102        $objFormParam = new SC_FormParam_Ex(); 
     
    90114        switch ($this->getMode()) { 
    91115            case 'pre_edit': 
     116            case 'mail_select': 
    92117                break; 
    93118            case 'return': 
     
    154179    function doSend(&$objFormParam) { 
    155180        $arrErr = $objFormParam->checkerror(); 
    156  
     181         
    157182        // メールの送信 
    158183        if (count($arrErr) == 0) { 
    159             // 注文受付メール 
    160             $objMail = new SC_Helper_Mail_Ex(); 
    161             $objSendMail = $objMail->sfSendOrderMail($objFormParam->getValue('order_id'), 
    162             $objFormParam->getValue('template_id'), 
    163             $objFormParam->getValue('subject'), 
    164             $objFormParam->getValue('header'), 
    165             $objFormParam->getValue('footer')); 
     184            // 注文受付メール(複数受注ID対応) 
     185            $order_id_array = explode(",",$this->order_id_array); 
     186            foreach($order_id_array as $order_id){ 
     187                $objMail = new SC_Helper_Mail_Ex(); 
     188                $objSendMail = $objMail->sfSendOrderMail($order_id, 
     189                $objFormParam->getValue('template_id'), 
     190                $objFormParam->getValue('subject'), 
     191                $objFormParam->getValue('header'), 
     192                $objFormParam->getValue('footer')); 
     193            } 
    166194            // TODO $SC_SendMail から送信がちゃんと出来たか確認できたら素敵。 
    167195            return true; 
     
    236264        // 検索条件のパラメーターを初期化 
    237265        parent::lfInitParam($objFormParam); 
    238  
    239         $objFormParam->addParam('オーダーID', 'order_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 
    240266        $objFormParam->addParam('テンプレート', 'template_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 
    241267        $objFormParam->addParam('メールタイトル', 'subject', STEXT_LEN, 'KVa',  array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'SPTAB_CHECK')); 
Note: See TracChangeset for help on using the changeset viewer.