Changeset 20228


Ignore:
Timestamp:
2011/02/20 03:33:29 (13 years ago)
Author:
miningbrownie
Message:

そんなに大変なとこじゃなかったけど、頭働かないとリファクタリングも難しい。

File:
1 edited

Legend:

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

    r20213 r20228  
    8888        // 認証可否の判定 
    8989        SC_Utils_Ex::sfIsSuccess($objSess); 
    90  
    9190        // 画面遷移の正当性チェック用にuniqidを埋め込む 
    9291        $objPage->tpl_uniqid = $objSess->getUniqId(); 
     
    9594        $this->objFormParam = new SC_FormParam(); 
    9695        // パラメータ情報の初期化 
    97         $this->lfInitParam(); 
     96        $this->lfInitParam($this->objFormParam); 
    9897        $this->objFormParam->setParam($_POST); 
     98        // 入力値の変換 
     99        $this->objFormParam->convParam(); 
    99100         
    100         // どんな状態の時に isset($arrRet) == trueになるんだ? 
     101        // どんな状態の時に isset($arrRet) == trueになるんだ? これ以前に$arrRet無いが、、、、 
    101102        if (!isset($arrRet)) $arrRet = array(); 
    102          
    103103        switch($this->getMode()) { 
    104104            case "confirm": 
    105                 // 入力値の変換 
    106                 $this->confirm($this->objFormParam); 
     105                $status = $this->createPdf($this->objFormParam); 
     106                if($status === true){ 
     107                    exit; 
     108                }else{ 
     109                    $this->arrErr = $status; 
     110                    var_dump($status); 
     111                    echo "\n\n<br/>#######--------- line is ".__LINE__." on ".__FILE__."--------########<br/>\n\n"; 
     112                            
     113                } 
    107114                break; 
    108115            default: 
    109                 // ここが$arrFormの初登場ということを明示するため宣言する。 
    110                 $arrForm = array(); 
    111                 // タイトルをセット 
    112                 $arrForm['title'] = "お買上げ明細書(納品書)"; 
    113  
    114                 // 今日の日付をセット 
    115                 $arrForm['year']  = date("Y"); 
    116                 $arrForm['month'] = date("m"); 
    117                 $arrForm['day']   = date("d"); 
    118  
    119                 // メッセージ 
    120                 $arrForm['msg1'] = 'このたびはお買上げいただきありがとうございます。'; 
    121                 $arrForm['msg2'] = '下記の内容にて納品させていただきます。'; 
    122                 $arrForm['msg3'] = 'ご確認くださいますよう、お願いいたします。'; 
    123  
    124                 // 注文番号があったら、セットする 
    125                 if(SC_Utils_Ex::sfIsInt($_GET['order_id'])) { 
    126                     $arrForm['order_id'][0] = $_GET['order_id']; 
    127                 } elseif (is_array($_POST['pdf_order_id'])) { 
    128                     sort($_POST['pdf_order_id']); 
    129                     foreach ($_POST['pdf_order_id'] AS $key=>$val) { 
    130                         $arrForm['order_id'][] = $val; 
    131                     } 
    132                 } 
    133  
    134                 $this->arrForm = $arrForm; 
     116                $this->arrForm = $this->createFromValues(); 
    135117                break; 
    136118        } 
     
    138120    } 
    139121 
    140     function confirm(&$objFormParam){ 
    141         $this->objFormParam->convParam(); 
    142         $this->arrErr = $this->lfCheckError($arrRet); 
    143         $arrRet = $this->objFormParam->getHashArray(); 
     122    /** 
     123     * 
     124     * PDF作成フォームのデフォルト値の生成 
     125     */ 
     126    function createFromValues(){ 
     127        // ここが$arrFormの初登場ということを明示するため宣言する。 
     128        $arrForm = array(); 
     129        // タイトルをセット 
     130        $arrForm['title'] = "お買上げ明細書(納品書)"; 
     131 
     132        // 今日の日付をセット 
     133        $arrForm['year']  = date("Y"); 
     134        $arrForm['month'] = date("m"); 
     135        $arrForm['day']   = date("d"); 
     136 
     137        // メッセージ 
     138        $arrForm['msg1'] = 'このたびはお買上げいただきありがとうございます。'; 
     139        $arrForm['msg2'] = '下記の内容にて納品させていただきます。'; 
     140        $arrForm['msg3'] = 'ご確認くださいますよう、お願いいたします。'; 
     141 
     142        // 注文番号があったら、セットする 
     143        if(SC_Utils_Ex::sfIsInt($_GET['order_id'])) { 
     144            $arrForm['order_id'][0] = $_GET['order_id']; 
     145        } elseif (is_array($_POST['pdf_order_id'])) { 
     146            $this->getOrderIdFromPost($objFormParam); 
     147            sort($_POST['pdf_order_id']); 
     148            foreach ($_POST['pdf_order_id'] AS $key=>$val) { 
     149                $arrForm['order_id'][] = $val; 
     150            } 
     151        } 
     152 
     153        return $arrForm; 
     154    } 
     155 
     156    /** 
     157     * 
     158     * PDFの作成 
     159     * @param SC_FormParam $objFormParam 
     160     */ 
     161    function createPdf(&$objFormParam){ 
    144162         
     163        $arrErr = $this->lfCheckError($objFormParam); 
     164        $arrRet = $objFormParam->getHashArray(); 
     165 
    145166        $this->arrForm = $arrRet; 
    146167        // エラー入力なし 
    147         if (count($this->arrErr) == 0) { 
     168        if (count($arrErr) == 0) { 
    148169            $objFpdf = new SC_Fpdf($arrRet['download'], $arrRet['title']); 
    149170            foreach ($arrRet['order_id'] AS $key => $val) { 
     
    153174            } 
    154175            $objFpdf->createPdf(); 
    155             exit; 
     176            return true; 
     177        }else{ 
     178            return $arrErr; 
    156179        } 
    157180    } 
     
    168191    } 
    169192 
    170     /* パラメータ情報の初期化 */ 
    171     function lfInitParam() { 
    172         $this->objFormParam->addParam("注文番号", "order_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    173         $this->objFormParam->addParam("発行日", "year", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    174         $this->objFormParam->addParam("発行日", "month", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    175         $this->objFormParam->addParam("発行日", "day", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    176         $this->objFormParam->addParam("帳票の種類", "type", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    177         $this->objFormParam->addParam("ダウンロード方法", "download", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    178         $this->objFormParam->addParam("帳票タイトル", "title", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    179         $this->objFormParam->addParam("帳票メッセージ1行目", "msg1", STEXT_LEN*3/5, "KVa", array("MAX_LENGTH_CHECK")); 
    180         $this->objFormParam->addParam("帳票メッセージ2行目", "msg2", STEXT_LEN*3/5, "KVa", array("MAX_LENGTH_CHECK")); 
    181         $this->objFormParam->addParam("帳票メッセージ3行目", "msg3", STEXT_LEN*3/5, "KVa", array("MAX_LENGTH_CHECK")); 
    182         $this->objFormParam->addParam("備考1行目", "etc1", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
    183         $this->objFormParam->addParam("備考2行目", "etc2", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
    184         $this->objFormParam->addParam("備考3行目", "etc3", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
    185         $this->objFormParam->addParam("ポイント表記", "disp_point", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
     193    /** 
     194     *  パラメータ情報の初期化  
     195     *  @param SC_FormParam  
     196     */ 
     197    function lfInitParam(&$objFormParam) { 
     198        $objFormParam->addParam("注文番号", "order_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     199        $objFormParam->addParam("注文番号", "pdf_order_id", INT_LEN, "n", array( "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     200        $objFormParam->addParam("発行日", "year", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     201        $objFormParam->addParam("発行日", "month", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     202        $objFormParam->addParam("発行日", "day", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     203        $objFormParam->addParam("帳票の種類", "type", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     204        $objFormParam->addParam("ダウンロード方法", "download", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     205        $objFormParam->addParam("帳票タイトル", "title", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
     206        $objFormParam->addParam("帳票メッセージ1行目", "msg1", STEXT_LEN*3/5, "KVa", array("MAX_LENGTH_CHECK")); 
     207        $objFormParam->addParam("帳票メッセージ2行目", "msg2", STEXT_LEN*3/5, "KVa", array("MAX_LENGTH_CHECK")); 
     208        $objFormParam->addParam("帳票メッセージ3行目", "msg3", STEXT_LEN*3/5, "KVa", array("MAX_LENGTH_CHECK")); 
     209        $objFormParam->addParam("備考1行目", "etc1", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
     210        $objFormParam->addParam("備考2行目", "etc2", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
     211        $objFormParam->addParam("備考3行目", "etc3", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
     212        $objFormParam->addParam("ポイント表記", "disp_point", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    186213    } 
    187214 
     
    190217     *  @var SC_FormParam 
    191218     */ 
    192      
     219 
    193220    function lfCheckError(&$objFormParam) { 
    194221        // 入力データを渡す。 
    195222        $arrRet = $objFormParam->getHashArray(); 
    196         $objFormParam-> 
    197         $objErr = new SC_CheckError($arrRet); 
     223        $arrErr = $objFormParam->checkError(); 
     224 
     225        $year = $objFormParam->getValue('year'); 
     226        if(!is_numeric($year)){ 
     227            $arrErr['year'] = "発行年は数値で入力してください。"; 
     228        } 
     229 
     230        $month = $objFormParam->getValue('month'); 
     231        if(!is_numeric($month)){ 
     232            $arrErr['month'] = "発行月は数値で入力してください。"; 
     233        }else if(0 >= $month && 12 < $month){ 
     234                    
     235            $arrErr['month'] = "発行月は1〜12の間で入力してください。"; 
     236        } 
    198237         
    199         $objErr->arrErr = $this->objFormParam->checkError(); 
    200          
    201         // 特殊項目チェック 
    202         $objErr->doFunc(array("発行日", "year", "month", "day"), array("CHECK_DATE")); 
    203  
    204         return $objErr->arrErr; 
     238        $day = $objFormParam->getValue('day'); 
     239        if(!is_numeric($day)){ 
     240            $arrErr['day'] = "発行日は数値で入力してください。"; 
     241        }else if(0 >= $day && 31 < $day){ 
     242                    
     243            $arrErr['day'] = "発行日は1〜31の間で入力してください。"; 
     244        } 
     245 
     246        return $arrErr; 
    205247    } 
    206248 
Note: See TracChangeset for help on using the changeset viewer.