Ignore:
Timestamp:
2007/07/20 15:58:59 (19 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Location:
branches/feature-module-update
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update

    • Property svn:ignore set to
      .cache

      .settings

      .projectOptions
  • branches/feature-module-update/html/admin/total/index.php

    r13452 r15078  
    1313require_once("./class/SC_GraphBar.php"); 
    1414 
    15 // GD¥é¥¤¥Ö¥é¥ê¤Î¥¤¥ó¥¹¥È¡¼¥ëȽÄê 
     15// GDライブラリのインストール判定 
    1616$install_GD = (function_exists("gd_info"))?true:false; 
    1717 
     
    2929        global $arrWDAY; 
    3030        $this->arrWDAY = $arrWDAY; 
    31         // ¥Ú¡¼¥¸¥¿¥¤¥È¥ë 
    32         $this->arrTitle[''] = "´ü´ÖÊ̽¸·×"; 
    33         $this->arrTitle['term'] = "´ü´ÖÊ̽¸·×"; 
    34         $this->arrTitle['products'] = "¾¦ÉÊÊ̽¸·×"; 
    35         $this->arrTitle['age'] = "ǯÂåÊ̽¸·×"; 
    36         $this->arrTitle['job'] = "¿¦¶ÈÊ̽¸·×"; 
    37         $this->arrTitle['member'] = "²ñ°÷Ê̽¸·×"; 
    38          
    39         // ¥­¥ã¥Ã¥·¥å²óÈò¤Î¤¿¤á¤ËÆüÉÕ¤òÅϤ¹ 
     31        // ページタイトル 
     32        $this->arrTitle[''] = "期間別集計"; 
     33        $this->arrTitle['term'] = "期間別集計"; 
     34        $this->arrTitle['products'] = "商品別集計"; 
     35        $this->arrTitle['age'] = "年代別集計"; 
     36        $this->arrTitle['job'] = "職業別集計"; 
     37        $this->arrTitle['member'] = "会員別集計"; 
     38         
     39        // キャッシュ回避のために日付を渡す 
    4040        $this->cashtime = time(); 
    4141    } 
     
    4545$objView = new SC_AdminView(); 
    4646$objSess = new SC_Session(); 
    47 // ǧ¾Ú²ÄÈݤÎȽÄê 
     47// 認証可否の判定 
    4848sfIsSuccess($objSess); 
    4949 
    50 // ÆþÎÏ´ü´Ö¤ò¥»¥Ã¥·¥ç¥ó¤Ëµ­Ï¿¤¹¤ë 
     50// 入力期間をセッションに記録する 
    5151lfSaveDateSession(); 
    5252 
     
    5757} 
    5858 
    59 // ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹ 
     59// パラメータ管理クラス 
    6060$objFormParam = new SC_FormParam(); 
    61 // ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ 
     61// パラメータ情報の初期化 
    6262lfInitParam(); 
    6363$objFormParam->setParam($_POST); 
    6464$objFormParam->setParam($_GET); 
    6565 
    66 // ¸¡º÷¥ï¡¼¥É¤Î°ú¤­·Ñ¤® 
     66// 検索ワードの引き継ぎ 
    6767foreach ($_POST as $key => $val) { 
    6868    if (ereg("^search_", $key)) { 
     
    7676case 'csv': 
    7777case 'search': 
    78     // ÆþÎÏÃͤÎÊÑ´¹ 
     78    // 入力値の変換 
    7979    $objFormParam->convParam(); 
    8080    $objPage->arrErr = lfCheckError($arrRet); 
    8181    $arrRet = $objFormParam->getHashArray(); 
    8282     
    83     // ÆþÎÏ¥¨¥é¡¼¤Ê¤· 
     83    // 入力エラーなし 
    8484    if (count($objPage->arrErr) == 0) { 
    8585        foreach ($arrRet as $key => $val) { 
     
    109109         
    110110        switch($page) { 
    111         // ¾¦ÉÊÊ̽¸·× 
     111        // 商品別集計 
    112112        case 'products': 
    113113            if($type == "") { 
     
    115115            } 
    116116            $objPage->tpl_page_type = "total/page_products.tpl"; 
    117             // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦ 
     117            // 未集計データの集計を行う 
    118118            if(!DAILY_BATCH_MODE) { 
    119119                lfRealTimeDailyTotal($sdate, $edate); 
    120120            } 
    121             // ¸¡º÷·ë²Ì¤Î¼èÆÀ 
     121            // 検索結果の取得 
    122122            $objPage = lfGetOrderProducts($type, $sdate, $edate, $objPage, $install_GD, $mode); 
    123123            break; 
    124         // ¿¦¶ÈÊ̽¸·× 
     124        // 職業別集計 
    125125        case 'job': 
    126126            if($type == "") { 
     
    128128            } 
    129129            $objPage->tpl_page_type = "total/page_job.tpl"; 
    130             // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦ 
     130            // 未集計データの集計を行う 
    131131            if(!DAILY_BATCH_MODE) { 
    132132                lfRealTimeDailyTotal($sdate, $edate); 
    133133            } 
    134             // ¸¡º÷·ë²Ì¤Î¼èÆÀ 
     134            // 検索結果の取得 
    135135            $objPage = lfGetOrderJob($type, $sdate, $edate, $objPage, $install_GD); 
    136136            break; 
    137         // ²ñ°÷Ê̽¸·× 
     137        // 会員別集計 
    138138        case 'member': 
    139139            if($type == "") { 
     
    141141            } 
    142142            $objPage->tpl_page_type = "total/page_member.tpl"; 
    143             // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦ 
     143            // 未集計データの集計を行う 
    144144            if(!DAILY_BATCH_MODE) { 
    145145                lfRealTimeDailyTotal($sdate, $edate); 
    146146            } 
    147             // ¸¡º÷·ë²Ì¤Î¼èÆÀ 
     147            // 検索結果の取得 
    148148            $objPage = lfGetOrderMember($type, $sdate, $edate, $objPage, $install_GD); 
    149149            break; 
    150         // ǯÂåÊ̽¸·× 
     150        // 年代別集計 
    151151        case 'age': 
    152152            if($type == "") { 
     
    155155             
    156156            $objPage->tpl_page_type = "total/page_age.tpl"; 
    157             // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦ 
     157            // 未集計データの集計を行う 
    158158            if(!DAILY_BATCH_MODE) { 
    159159                lfRealTimeDailyTotal($sdate, $edate); 
    160160            } 
    161             // ¸¡º÷·ë²Ì¤Î¼èÆÀ 
     161            // 検索結果の取得 
    162162            $objPage = lfGetOrderAge($type, $sdate, $edate, $objPage, $install_GD); 
    163163            break; 
    164         // ´ü´ÖÊ̽¸·× 
     164        // 期間別集計 
    165165        default: 
    166166            if($type == "") { 
     
    168168            } 
    169169            $objPage->tpl_page_type = "total/page_term.tpl"; 
    170             // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦ 
     170            // 未集計データの集計を行う 
    171171            if(!DAILY_BATCH_MODE) { 
    172172                lfRealTimeDailyTotal($sdate, $edate); 
    173173            } 
    174             // ¸¡º÷·ë²Ì¤Î¼èÆÀ 
     174            // 検索結果の取得 
    175175            $objPage = lfGetOrderTerm($type, $sdate, $edate, $objPage, $install_GD); 
    176176             
     
    179179 
    180180        if($mode == 'csv') { 
    181             // CSV½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤Î¼èÆÀ 
     181            // CSV出力タイトル行の取得 
    182182            list($arrTitleCol, $arrDataCol) = lfGetCSVColum($page, $objPage->keyname); 
    183183            $head = sfGetCSVList($arrTitleCol); 
    184184            $data = lfGetDataColCSV($objPage->arrResults, $arrDataCol); 
    185             // CSV¤òÁ÷¿®¤¹¤ë¡£ 
     185            // CSVを送信する。 
    186186            sfCSVDownload($head.$data, $page."_".$type); 
    187187            exit; 
     
    189189         
    190190        if($mode == 'pdf') { 
    191             // CSV½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤Î¼èÆÀ 
     191            // CSV出力タイトル行の取得 
    192192            list($arrTitleCol, $arrDataCol, $arrColSize, $arrAlign, $title) = lfGetPDFColum($page, $type, $objPage->keyname); 
    193193            $head = sfGetPDFList($arrTitleCol); 
    194194            $data = lfGetDataColPDF($objPage->arrResults, $arrDataCol, 40); 
    195             // PDF½ÐÎÏÍÑ 
     195            // PDF出力用 
    196196            $graph_name = basename($objPage->tpl_image); 
    197197            lfPDFDownload($graph_name, $head . $data, $arrColSize, $arrAlign, $sdate, $edate, $title, $page); 
     
    202202default: 
    203203    if(count($_GET) == 0) { 
    204         // ¥Ð¥Ã¥Á¥â¡¼¥É¤Î¾ì¹ç¤Î¤ß¼Â¹Ô¤¹¤ë¡ÊÅöÆü¤Î½¸·×¤ò¹Ô¤¦¤¿¤á¡Ë 
     204        // バッチモードの場合のみ実行する(当日の集計を行うため) 
    205205        if(DAILY_BATCH_MODE) { 
    206             // 3ÆüÁ°¤Þ¤Ç¤Î½¸·× 
     206            // 3日前までの集計 
    207207            lfStartDailyTotal(3,0); 
    208208        } 
     
    214214$objPage->install_GD = $install_GD; 
    215215 
    216 // ÅÐÏ¿¡¦¹¹¿·Æü¸¡º÷ÍÑ 
     216// 登録・更新日検索用 
    217217$objDate = new SC_Date(); 
    218218$objDate->setStartYear(RELEASE_YEAR); 
     
    221221$objPage->arrMonth = $objDate->getMonth(); 
    222222$objPage->arrDay = $objDate->getDay(); 
    223 // ÆþÎÏÃͤμèÆÀ 
     223// 入力値の取得 
    224224$objPage->arrForm = $objFormParam->getFormParamList(); 
    225225 
     
    230230 
    231231//--------------------------------------------------------------------------------------------------------------------------- 
    232 /* PDF½ÐÎÏ */ 
     232/* PDF出力 */ 
    233233function lfPDFDownload($image, $table, $arrColSize, $arrAlign, $sdate, $edate, $title, $page = "") { 
    234234     
     
    236236    $objPdf->setTableColor("CCCCCC", "F0F0F0", "D1DEFE"); 
    237237             
    238     // ÅÚÂæ¤È¤Ê¤ëPDF¥Õ¥¡¥¤¥ë¤Î»ØÄê 
     238    // 土台となるPDFファイルの指定 
    239239    $objPdf->setTemplate(PDF_DIR . "total.pdf"); 
    240240 
     
    246246    $arrImage['graph_block'] = GRAPH_DIR . $image; 
    247247     
    248     // ʸËö¤Î\n¤òºï½ü¤¹¤ë 
     248    // 文末の\nを削除する 
    249249    $table = ereg_replace("\n$", "", $table); 
    250250    $arrRet = split("\n", $table); 
     
    253253    for($page = 1; $page <= $page_max; $page++) { 
    254254        if($page > 1) { 
    255             // 2¥Ú¡¼¥¸°Ê¹ß 
     255            // 2ページ以降 
    256256            $start_no = 35 * ($page - 1) + 1; 
    257257        } else { 
    258             // ³«»Ï¥Ú¡¼¥¸ 
     258            // 開始ページ 
    259259            $start_no = 1;           
    260260        } 
     
    263263        $objPdf->setTextBlock($arrText); 
    264264        $objPdf->setImageBlock($arrImage); 
    265         // ¥Ö¥í¥Ã¥¯ÃÍ¤ÎÆþÎÏ 
     265        // ブロック値の入力 
    266266        $objPdf->writeBlock(); 
    267         // ºÇ½ª¥Ú¡¼¥¸¤Î¤ß¡¢¾¦ÉÊÊ̽¸·×¤Ï¹ç·×¤¬¤Ê¤¤¤Î¤ÇºÇ½ª¹Ô¤Î¿§¤òÊѹ¹¤·¤Ê¤¤¡£ 
     267        // 最終ページのみ、商品別集計は合計がないので最終行の色を変更しない。 
    268268        if($page == $page_max && $page != 'products') { 
    269269            $last_color_flg = true; 
     
    275275    } 
    276276 
    277     // PDF¤Î½ÐÎÏ 
     277    // PDFの出力 
    278278    $objPdf->output();   
    279279} 
    280280 
    281 /* ¥»¥Ã¥·¥ç¥ó¤ËÆþÎÏ´ü´Ö¤òµ­Ï¿¤¹¤ë */ 
     281/* セッションに入力期間を記録する */ 
    282282function lfSaveDateSession() { 
    283283    if($_POST['form'] == 1) { 
     
    296296} 
    297297 
    298 /* ¥Ç¥Õ¥©¥ë¥ÈÃͤμèÆÀ */ 
     298/* デフォルト値の取得 */ 
    299299function lfGetDateDefault() { 
    300300    $year = date("Y"); 
     
    304304    $list = $_SESSION['total']; 
    305305     
    306     // ¥»¥Ã¥·¥ç¥ó¾ðÊó¤Ë³«»Ï·îÅÙ¤¬Êݸ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ 
     306    // セッション情報に開始月度が保存されていない。 
    307307    if($_SESSION['total']['startyear_m'] == "") { 
    308308        $list['startyear_m'] = $year; 
     
    310310    } 
    311311     
    312     // ¥»¥Ã¥·¥ç¥ó¾ðÊó¤Ë³«»ÏÆüÉÕ¡¢½ªÎ»ÆüÉÕ¤¬Êݸ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ 
     312    // セッション情報に開始日付、終了日付が保存されていない。 
    313313    if($_SESSION['total']['startyear'] == "" && $_SESSION['total']['endyear'] == "") { 
    314314        $list['startyear'] = $year; 
     
    323323} 
    324324 
    325 /* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */ 
     325/* パラメータ情報の初期化 */ 
    326326function lfInitParam() { 
    327327    global $objFormParam; 
    328328         
    329     // ¥Ç¥Õ¥©¥ë¥ÈÃͤμèÆÀ 
     329    // デフォルト値の取得 
    330330    $arrList = lfGetDateDefault(); 
    331331     
    332     // ·îÅÙ½¸·× 
    333     $objFormParam->addParam("·îÅÙ", "search_startyear_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear_m']); 
    334     $objFormParam->addParam("·îÅÙ", "search_startmonth_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth_m']); 
    335     // ´ü´Ö½¸·× 
    336     $objFormParam->addParam("³«»ÏÆü", "search_startyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear']); 
    337     $objFormParam->addParam("³«»ÏÆü", "search_startmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth']); 
    338     $objFormParam->addParam("³«»ÏÆü", "search_startday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startday']); 
    339     $objFormParam->addParam("½ªÎ»Æü", "search_endyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endyear']); 
    340     $objFormParam->addParam("½ªÎ»Æü", "search_endmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endmonth']); 
    341     $objFormParam->addParam("½ªÎ»Æü", "search_endday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endday']); 
    342      
    343     // hidden¥Ç¡¼¥¿¤Î¼èÆÀÍÑ 
     332    // 月度集計 
     333    $objFormParam->addParam("月度", "search_startyear_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear_m']); 
     334    $objFormParam->addParam("月度", "search_startmonth_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth_m']); 
     335    // 期間集計 
     336    $objFormParam->addParam("開始日", "search_startyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear']); 
     337    $objFormParam->addParam("開始日", "search_startmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth']); 
     338    $objFormParam->addParam("開始日", "search_startday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startday']); 
     339    $objFormParam->addParam("終了日", "search_endyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endyear']); 
     340    $objFormParam->addParam("終了日", "search_endmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endmonth']); 
     341    $objFormParam->addParam("終了日", "search_endday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endday']); 
     342     
     343    // hiddenデータの取得用 
    344344    $objFormParam->addParam("", "page"); 
    345345    $objFormParam->addParam("", "type"); 
     
    348348} 
    349349 
    350 /* ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯ */ 
     350/* 入力内容のチェック */ 
    351351function lfCheckError() { 
    352352    global $objFormParam; 
    353     // ÆþÎϥǡ¼¥¿¤òÅϤ¹¡£ 
     353    // 入力データを渡す。 
    354354    $arrRet =  $objFormParam->getHashArray(); 
    355355    $objErr = new SC_CheckError($arrRet); 
    356356    $objErr->arrErr = $objFormParam->checkError(); 
    357357     
    358     // ÆÃ¼ì¹àÌÜ¥Á¥§¥Ã¥¯ 
     358    // 特殊項目チェック 
    359359    if($_POST['form'] == 1) { 
    360         $objErr->doFunc(array("·îÅÙ", "search_startyear_m"), array("ONE_EXIST_CHECK")); 
     360        $objErr->doFunc(array("月度", "search_startyear_m"), array("ONE_EXIST_CHECK")); 
    361361    } 
    362362     
    363363    if($_POST['form'] == 2) { 
    364         $objErr->doFunc(array("´ü´Ö", "search_startyear", "search_endyear"), array("ONE_EXIST_CHECK")); 
     364        $objErr->doFunc(array("期間", "search_startyear", "search_endyear"), array("ONE_EXIST_CHECK")); 
    365365    } 
    366366             
    367     $objErr->doFunc(array("·îÅÙ", "search_startyear_m", "search_startmonth_m"), array("ALL_EXIST_CHECK")); 
    368     $objErr->doFunc(array("³«»ÏÆü", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE")); 
    369     $objErr->doFunc(array("½ªÎ»Æü", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE")); 
    370     $objErr->doFunc(array("³«»ÏÆü", "½ªÎ»Æü", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM")); 
     367    $objErr->doFunc(array("月度", "search_startyear_m", "search_startmonth_m"), array("ALL_EXIST_CHECK")); 
     368    $objErr->doFunc(array("開始日", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE")); 
     369    $objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE")); 
     370    $objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM")); 
    371371    return $objErr->arrErr; 
    372372} 
    373373 
    374 /* ÀÞ¤ìÀþ¥°¥é¥Õ¤ÎºîÀ® */ 
     374/* 折れ線グラフの作成 */ 
    375375function lfGetGraphLine($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate) { 
    376376     
    377377    $ret_path = ""; 
    378378     
    379     // ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£ 
     379    // 結果が0行以上ある場合のみグラフを生成する。 
    380380    if(count($arrResults) > 0) { 
    381381         
    382         // ¥°¥é¥Õ¤ÎÀ¸À® 
     382        // グラフの生成 
    383383        $arrList = sfArrKeyValue($arrResults, $keyname, "total"); 
    384384 
    385         // °ì»þ¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ 
     385        // 一時ファイル名の取得 
    386386        $pngname = lfGetGraphPng($type); 
    387387         
    388388        $path = GRAPH_DIR . $pngname; 
    389389         
    390         // ¥é¥Ù¥ëɽ¼¨¥¤¥ó¥¿¡¼¥Ð¥ë¤òµá¤á¤ë 
     390        // ラベル表示インターバルを求める 
    391391        $interval = intval(count($arrList) / 20); 
    392392        if($interval < 1) { 
     
    396396        $objGraphLine = new SC_GraphLine(); 
    397397         
    398         // ÃͤΥ»¥Ã¥È 
     398        // 値のセット 
    399399        $objGraphLine->setData($arrList); 
    400400        $objGraphLine->setXLabel(array_keys($arrList)); 
    401401         
    402         // ¥é¥Ù¥ë²óž(ÆüËܸìÉÔ²Ä) 
     402        // ラベル回転(日本語不可) 
    403403        if($keyname == "key_day"){ 
    404404            $objGraphLine->setXLabelAngle(45); 
    405405        } 
    406406 
    407         // ¥¿¥¤¥È¥ë¥»¥Ã¥È 
     407        // タイトルセット 
    408408        $objGraphLine->setXTitle($xtitle); 
    409409        $objGraphLine->setYTitle($ytitle); 
    410410         
    411         // ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ® 
     411        // メインタイトル作成 
    412412        list($sy, $sm, $sd) = split("[/ ]" , $sdate); 
    413413        list($ey, $em, $ed) = split("[/ ]" , $edate); 
    414         $start_date = $sy . "ǯ" . $sm . "·î" . $sd . "Æü"; 
    415         $end_date = $ey . "ǯ" . $em . "·î" . $ed . "Æü"; 
    416         $objGraphLine->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date); 
    417          
    418         // ¥°¥é¥ÕÉÁ²è 
     414        $start_date = $sy . "年" . $sm . "月" . $sd . "日"; 
     415        $end_date = $ey . "年" . $em . "月" . $ed . "日"; 
     416        $objGraphLine->drawTitle("集計期間:" . $start_date . " - " . $end_date); 
     417         
     418        // グラフ描画 
    419419        $objGraphLine->drawGraph(); 
    420420         
    421         // ¥°¥é¥Õ¤Î½ÐÎÏ 
     421        // グラフの出力 
    422422        if(DRAW_IMAGE){ 
    423423            $objGraphLine->outputGraph(); 
     
    425425        } 
    426426 
    427         // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹ 
     427        // ファイルパスを返す 
    428428        $ret_path = GRAPH_URL . $pngname; 
    429429    } 
     
    431431} 
    432432 
    433 // ±ß¥°¥é¥Õ¤ÎºîÀ®  
     433// 円グラフの作成  
    434434function lfGetGraphPie($arrResults, $keyname, $type, $title = "", $sdate = "", $edate = "") { 
    435435     
    436436    $ret_path = ""; 
    437437     
    438     // ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£ 
     438    // 結果が0行以上ある場合のみグラフを生成する。 
    439439    if(count($arrResults) > 0) { 
    440         // ¥°¥é¥Õ¤ÎÀ¸À® 
     440        // グラフの生成 
    441441        $arrList = sfArrKeyValue($arrResults, $keyname, "total", GRAPH_PIE_MAX, GRAPH_LABEL_MAX); 
    442442         
    443         // °ì»þ¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ 
     443        // 一時ファイル名の取得 
    444444        $pngname = lfGetGraphPng($type); 
    445445        $path = GRAPH_DIR . $pngname; 
     
    447447        $objGraphPie = new SC_GraphPie(); 
    448448         
    449         /* ¥Ç¥Ð¥Ã¥°É½¼¨ÍÑ by naka 
     449        /* デバッグ表示用 by naka 
    450450        foreach($arrList as $key => $val) { 
    451451            $objGraphPie->debugPrint("key:$key val:$val"); 
     
    453453        */ 
    454454         
    455         // ¥Ç¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë 
     455        // データをセットする 
    456456        $objGraphPie->setData($arrList); 
    457         // ËÞÎã¤ò¥»¥Ã¥È¤¹¤ë 
     457        // 凡例をセットする 
    458458        $objGraphPie->setLegend(array_keys($arrList)); 
    459459                                 
    460         // ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ® 
     460        // メインタイトル作成 
    461461        list($sy, $sm, $sd) = split("[/ ]" , $sdate); 
    462462        list($ey, $em, $ed) = split("[/ ]" , $edate); 
    463         $start_date = $sy . "ǯ" . $sm . "·î" . $sd . "Æü"; 
    464         $end_date = $ey . "ǯ" . $em . "·î" . $ed . "Æü"; 
    465         $objGraphPie->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date); 
     463        $start_date = $sy . "年" . $sm . "月" . $sd . "日"; 
     464        $end_date = $ey . "年" . $em . "月" . $ed . "日"; 
     465        $objGraphPie->drawTitle("集計期間:" . $start_date . " - " . $end_date); 
    466466                 
    467         // ±ß¥°¥é¥ÕÉÁ²è 
     467        // 円グラフ描画 
    468468        $objGraphPie->drawGraph(); 
    469469         
    470         // ¥°¥é¥Õ¤Î½ÐÎÏ 
     470        // グラフの出力 
    471471        if(DRAW_IMAGE){ 
    472472            $objGraphPie->outputGraph(); 
     
    474474        } 
    475475 
    476         // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹ 
     476        // ファイルパスを返す 
    477477        $ret_path = GRAPH_URL . $pngname; 
    478478    } 
     
    480480} 
    481481 
    482 // ËÀ¥°¥é¥Õ¤ÎºîÀ®  
     482// 棒グラフの作成  
    483483function lfGetGraphBar($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate) { 
    484484    $ret_path = ""; 
    485485     
    486     // ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£ 
     486    // 結果が0行以上ある場合のみグラフを生成する。 
    487487    if(count($arrResults) > 0) { 
    488         // ¥°¥é¥Õ¤ÎÀ¸À® 
     488        // グラフの生成 
    489489        $arrList = sfArrKeyValue($arrResults, $keyname, "total", GRAPH_PIE_MAX, GRAPH_LABEL_MAX); 
    490490         
    491         // °ì»þ¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ 
     491        // 一時ファイル名の取得 
    492492        $pngname = lfGetGraphPng($type); 
    493493        $path = GRAPH_DIR . $pngname; 
     
    496496         
    497497        foreach(array_keys($arrList) as $val) { 
    498             $arrKey[] = ereg_replace("¡Á", "-", $val); 
    499         } 
    500          
    501         // ¥°¥é¥ÕÉÁ²è 
     498            $arrKey[] = ereg_replace("", "-", $val); 
     499        } 
     500         
     501        // グラフ描画 
    502502        $objGraphBar->setXLabel($arrKey); 
    503503        $objGraphBar->setXTitle($xtitle); 
     
    505505        $objGraphBar->setData($arrList); 
    506506         
    507         // ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ® 
     507        // メインタイトル作成 
    508508        $arrKey = array_keys($arrList); 
    509509        list($sy, $sm, $sd) = split("[/ ]" , $sdate); 
    510510        list($ey, $em, $ed) = split("[/ ]" , $edate); 
    511         $start_date = $sy . "ǯ" . $sm . "·î" . $sd . "Æü"; 
    512         $end_date = $ey . "ǯ" . $em . "·î" . $ed . "Æü"; 
    513         $objGraphBar->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date); 
     511        $start_date = $sy . "年" . $sm . "月" . $sd . "日"; 
     512        $end_date = $ey . "年" . $em . "月" . $ed . "日"; 
     513        $objGraphBar->drawTitle("集計期間:" . $start_date . " - " . $end_date); 
    514514         
    515515        $objGraphBar->drawGraph(); 
     
    520520        } 
    521521         
    522         // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹ 
     522        // ファイルパスを返す 
    523523        $ret_path = GRAPH_URL . $pngname; 
    524524    } 
     
    526526} 
    527527 
    528 // ¥°¥é¥ÕÍѤÎPNG¥Õ¥¡¥¤¥ë̾  
     528// グラフ用のPNGファイル名  
    529529function lfGetGraphPng($keyname) { 
    530530    if($_POST['search_startyear_m'] != "") { 
     
    536536} 
    537537 
    538 // ²ñ°÷¡¢Èó²ñ°÷½¸·×¤ÎWHEREʬ¤ÎºîÀ® 
     538// 会員、非会員集計のWHERE分の作成 
    539539function lfGetWhereMember($col_date, $sdate, $edate, $type, $col_member = "customer_id") { 
    540     // ¼èÆÀÆüÉդλØÄê 
     540    // 取得日付の指定 
    541541    if($sdate != "") { 
    542542        if ($where != "") { 
     
    554554    } 
    555555     
    556     // ²ñ°÷¡¢Èó²ñ°÷¤ÎȽÄê 
     556    // 会員、非会員の判定 
    557557    switch($type) { 
    558     // Á´ÂΠ
     558    // 全体 
    559559    case 'all': 
    560560        break; 
     
    578578} 
    579579 
    580 /** ²ñ°÷Ê̽¸·× **/ 
     580/** 会員別集計 **/ 
    581581function lfGetOrderMember($type, $sdate, $edate, $objPage, $graph = true) { 
    582582    global $arrSex; 
     
    584584    list($where, $arrval) = lfGetWhereMember('create_date', $sdate, $edate, $type); 
    585585     
    586     // ²ñ°÷½¸·×¤Î¼èÆÀ 
     586    // 会員集計の取得 
    587587    $col = "COUNT(*) AS order_count, SUM(total) AS total, (AVG(total)) AS total_average, order_sex"; 
    588588    $from = "dtb_order"; 
     
    593593    $arrRet = $objQuery->select($col, $from, $tmp_where, $arrval); 
    594594     
    595     // ²ñ°÷¹ØÆþ¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤¹¤ë¡£ 
     595    // 会員購入であることを記録する。 
    596596    $max = count($arrRet); 
    597597    for($i = 0; $i < $max; $i++) { 
    598         $arrRet[$i]['member_name'] = '²ñ°÷'.$arrSex[$arrRet[$i]['order_sex']]; 
     598        $arrRet[$i]['member_name'] = '会員'.$arrSex[$arrRet[$i]['order_sex']]; 
    599599    } 
    600600    $objPage->arrResults = $arrRet; 
    601601     
    602     // Èó²ñ°÷½¸·×¤Î¼èÆÀ 
     602    // 非会員集計の取得 
    603603    $tmp_where = $where . " AND customer_id = 0 AND del_flg = 0 "; 
    604604    $arrRet = $objQuery->select($col, $from, $tmp_where, $arrval); 
    605     // Èó²ñ°÷¹ØÆþ¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤¹¤ë¡£ 
     605    // 非会員購入であることを記録する。 
    606606    $max = count($arrRet); 
    607607    for($i = 0; $i < $max; $i++) { 
    608         $arrRet[$i]['member_name'] = 'Èó²ñ°÷'.$arrSex[$arrRet[$i]['order_sex']]; 
     608        $arrRet[$i]['member_name'] = '非会員'.$arrSex[$arrRet[$i]['order_sex']]; 
    609609    } 
    610610     
    611611    $objPage->arrResults = array_merge($objPage->arrResults, $arrRet); 
    612612     
    613     // ±ß¥°¥é¥Õ¤ÎÀ¸À® 
     613    // 円グラフの生成 
    614614    if($graph) {     
    615615        $image_key = "member"; 
    616         $objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "member_name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate); 
     616        $objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "member_name", $image_key, "(売上比率)", $sdate, $edate); 
    617617    } 
    618618     
     
    620620} 
    621621 
    622 /** ¾¦ÉÊÊ̽¸·× **/ 
     622/** 商品別集計 **/ 
    623623function lfGetOrderProducts($type, $sdate, $edate, $objPage, $graph = true, $mode = "") { 
    624624    list($where, $arrval) = lfGetWhereMember('create_date', $sdate, $edate, $type); 
     
    644644    $objPage->arrResults = $objQuery->getall($sql, $arrval); 
    645645     
    646     // ±ß¥°¥é¥Õ¤ÎÀ¸À® 
     646    // 円グラフの生成 
    647647    if($graph) { 
    648648        $image_key = "products_" . $type; 
    649         $objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate); 
     649        $objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "name", $image_key, "(売上比率)", $sdate, $edate); 
    650650    } 
    651651     
     
    653653} 
    654654 
    655 /** ¿¦¶ÈÊ̽¸·× **/ 
     655/** 職業別集計 **/ 
    656656function lfGetOrderJob($type, $sdate, $edate, $objPage, $graph = true) { 
    657657    global $arrJob;  
     
    672672            $objPage->arrResults[$i]['job_name'] = $arrJob[$job_key]; 
    673673        } else { 
    674             $objPage->arrResults[$i]['job_name'] = "̤²óÅú"; 
    675         } 
    676     } 
    677  
    678     // ±ß¥°¥é¥Õ¤ÎÀ¸À®    
     674            $objPage->arrResults[$i]['job_name'] = "未回答"; 
     675        } 
     676    } 
     677 
     678    // 円グラフの生成   
    679679    if($graph) { 
    680680        $image_key = "job_" . $type; 
    681         $objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "job_name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate); 
     681        $objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "job_name", $image_key, "(売上比率)", $sdate, $edate); 
    682682    } 
    683683     
     
    685685} 
    686686 
    687 /** ǯÂåÊ̽¸·× **/ 
     687/** 年代別集計 **/ 
    688688function lfGetOrderAge($type, $sdate, $edate, $objPage, $graph = true) { 
    689689 
     
    706706        if($start_age != "" || $end_age != "") { 
    707707            if($end_age != 999) { 
    708                 $objPage->arrResults[$i]['age_name'] = $start_age . "¡Á" . $end_age . "ºÐ"; 
     708                $objPage->arrResults[$i]['age_name'] = $start_age . "〜" . $end_age . "歳"; 
    709709            } else { 
    710                 $objPage->arrResults[$i]['age_name'] = $start_age . "ºÐ¡Á"; 
     710                $objPage->arrResults[$i]['age_name'] = $start_age . "歳〜"; 
    711711            } 
    712712        } else { 
    713             $objPage->arrResults[$i]['age_name'] = "̤²óÅú"; 
    714         } 
    715     } 
    716      
    717     // ËÀ¥°¥é¥Õ¤ÎÀ¸À® 
     713            $objPage->arrResults[$i]['age_name'] = "未回答"; 
     714        } 
     715    } 
     716     
     717    // 棒グラフの生成 
    718718    if($graph) { 
    719719        $image_key = "age_" . $type; 
    720         $xtitle = "(ǯÎð)"; 
    721         $ytitle = "(Çä¾å¹ç·×)"; 
     720        $xtitle = "(年齢)"; 
     721        $ytitle = "(売上合計)"; 
    722722        $objPage->tpl_image = lfGetGraphBar($objPage->arrResults, "age_name", $image_key, $xtitle, $ytitle, $sdate, $edate); 
    723723    } 
     
    726726} 
    727727 
    728 /** ´ü´ÖÊ̽¸·× **/ 
     728/** 期間別集計 **/ 
    729729function lfGetOrderTerm($type, $sdate, $edate, $objPage, $graph = true) { 
    730730         
     
    736736         
    737737        switch($type) { 
    738         // ·îÊÌ 
     738        // 月別 
    739739        case 'month': 
    740740            $col = $tmp_col . ",key_month"; 
     
    742742            $objQuery->setOrder("key_month"); 
    743743            $objPage->keyname = "key_month"; 
    744             $objPage->tpl_tail = "·î"; 
     744            $objPage->tpl_tail = ""; 
    745745            $from = "dtb_bat_order_daily"; 
    746             $xtitle = "(·îÊÌ)"; 
    747             $ytitle = "(Çä¾å¹ç·×)"; 
    748             break; 
    749         // ǯÊÌ 
     746            $xtitle = "(月別)"; 
     747            $ytitle = "(売上合計)"; 
     748            break; 
     749        // 年別 
    750750        case 'year': 
    751751            $col = $tmp_col . ",key_year"; 
     
    753753            $objQuery->setOrder("key_year"); 
    754754            $objPage->keyname = "key_year"; 
    755             $objPage->tpl_tail = "ǯ"; 
     755            $objPage->tpl_tail = ""; 
    756756            $from = "dtb_bat_order_daily"; 
    757             $xtitle = "(ǯÊÌ)"; 
    758             $ytitle = "(Çä¾å¹ç·×)"; 
    759             break; 
    760         // ÍËÆüÊÌ 
     757            $xtitle = "(年別)"; 
     758            $ytitle = "(売上合計)"; 
     759            break; 
     760        // 曜日別 
    761761        case 'wday': 
    762762            $col = $tmp_col . ",key_wday, wday"; 
     
    764764            $objQuery->setOrder("wday"); 
    765765            $objPage->keyname = "key_wday"; 
    766             $objPage->tpl_tail = "ÍËÆü"; 
     766            $objPage->tpl_tail = "曜日"; 
    767767            $from = "dtb_bat_order_daily"; 
    768             $xtitle = "(ÍËÆüÊÌ)"; 
    769             $ytitle = "(Çä¾å¹ç·×)"; 
    770             break; 
    771         // »þ´ÖÊÌ 
     768            $xtitle = "(曜日別)"; 
     769            $ytitle = "(売上合計)"; 
     770            break; 
     771        // 時間別 
    772772        case 'hour': 
    773773            $col = $tmp_col . ",hour"; 
     
    775775            $objQuery->setOrder("hour"); 
    776776            $objPage->keyname = "hour"; 
    777             $objPage->tpl_tail = "»þ"; 
     777            $objPage->tpl_tail = ""; 
    778778            $from = "dtb_bat_order_daily_hour"; 
    779             $xtitle = "(»þ´ÖÊÌ)"; 
    780             $ytitle = "(Çä¾å¹ç·×)"; 
     779            $xtitle = "(時間別)"; 
     780            $ytitle = "(売上合計)"; 
    781781            break; 
    782782        default: 
     
    785785            $objPage->keyname = "key_day"; 
    786786            $from = "dtb_bat_order_daily"; 
    787             $xtitle = "(ÆüÊÌ)"; 
    788             $ytitle = "(Çä¾å¹ç·×)"; 
    789             break; 
    790         } 
    791          
    792  
    793     // ¼èÆÀÆüÉդλØÄê 
     787            $xtitle = "(日別)"; 
     788            $ytitle = "(売上合計)"; 
     789            break; 
     790        } 
     791         
     792 
     793    // 取得日付の指定 
    794794        if($sdate != "") { 
    795795            if ($where != "") { 
     
    807807        } 
    808808         
    809         // ¸¡º÷·ë²Ì¤Î¼èÆÀ 
     809        // 検索結果の取得 
    810810        $objPage->arrResults = $objQuery->select($col, $from, $where, $arrval); 
    811811         
    812         // ÀÞ¤ìÀþ¥°¥é¥Õ¤ÎÀ¸À®    
     812        // 折れ線グラフの生成     
    813813        if($graph) { 
    814814            $image_key = "term_" . $type; 
     
    816816        } 
    817817         
    818         // ¸¡º÷·ë²Ì¤¬0¤Ç¤Ê¤¤¾ì¹ç 
     818        // 検索結果が0でない場合 
    819819        if(count($objPage->arrResults) > 0) { 
    820             // ºÇ½ª½¸·×¹Ô¼èÆÀ¤¹¤ë 
     820            // 最終集計行取得する 
    821821            $col = $tmp_col; 
    822822            $objQuery = new SC_Query(); 
    823823            $arrRet = $objQuery->select($col, $from, $where, $arrval); 
    824             $arrRet[0][$objPage->keyname] = "¹ç·×"; 
     824            $arrRet[0][$objPage->keyname] = "合計"; 
    825825            $objPage->arrResults[] = $arrRet[0]; 
    826826        } 
    827827 
    828         // Ê¿¶ÑÃͤη׻» 
     828        // 平均値の計算 
    829829        $max = count($objPage->arrResults); 
    830830        for($i = 0; $i < $max; $i++) { 
Note: See TracChangeset for help on using the changeset viewer.