Index: /temp/trunk/html/admin/total/index.php
===================================================================
--- /temp/trunk/html/admin/total/index.php	(revision 5433)
+++ /temp/trunk/html/admin/total/index.php	(revision 5554)
@@ -1,600 +1,790 @@
 <?php
 require_once("../require.php");
-$INSTALL_DIR = realpath(dirname( __FILE__));
+require_once("./index_sub.php");
+require_once("../batch/daily.php");
+
+require_once("./class/SC_GraphPie.php");
+require_once("./class/SC_GraphLine.php");
+require_once("./class/SC_GraphBar.php");
 
 class LC_Page {
+	var $arrResults;
+	var $keyname;
+	var $tpl_image;
+	var $arrTitle;
 	function LC_Page() {
-		$this->arrDB_TYPE = array(
-			'pgsql' => 'PostgreSQL',
-			'mysql' => 'mySQL'	
-		);
+		$this->tpl_mainpage = 'total/index.tpl';
+		$this->tpl_subnavi = 'total/subnavi.tpl';
+		$this->tpl_graphsubtitle = 'total/subtitle.tpl';
+		$this->tpl_titleimage = '/img/title/title_sale.jpg';
+		$this->tpl_mainno = 'total';
+		global $arrWDAY;
+		$this->arrWDAY = $arrWDAY;
+		// ¥Ú¡¼¥¸¥¿¥¤¥È¥ë
+		$this->arrTitle[''] = "´ü´ÖÊÌ½¸·×";
+		$this->arrTitle['term'] = "´ü´ÖÊÌ½¸·×";
+		$this->arrTitle['products'] = "¾¦ÉÊÊÌ½¸·×";
+		$this->arrTitle['age'] = "Ç¯ÂåÊÌ½¸·×";
+		$this->arrTitle['job'] = "¿¦¶ÈÊÌ½¸·×";
+		$this->arrTitle['member'] = "²ñ°÷ÊÌ½¸·×";
 	}
 }
 
 $objPage = new LC_Page();
-
-// ¥Æ¥ó¥×¥ì¡¼¥È¥³¥ó¥Ñ¥¤¥ë¥Ç¥£¥ì¥¯¥È¥ê¤Î½ñ¹þ¤ß¸¢¸Â¥Á¥§¥Ã¥¯
-$temp_dir = $INSTALL_DIR . '/temp';
-$mode = lfGetFileMode($temp_dir);
-
-if($mode != '777') {
-	sfErrorHeader($temp_dir . "¤Ë¥æ¡¼¥¶½ñ¹þ¤ß¸¢¸Â(777)¤òÉÕÍ¿¤·¤Æ²¼¤µ¤¤¡£", true);
-	exit;
-}
-
-$objView = new SC_InstallView($INSTALL_DIR . '/templates', $INSTALL_DIR . '/temp');
+$objView = new SC_AdminView();
+$objSess = new SC_Session();
+// Ç§¾Ú²ÄÈÝ¤ÎÈ½Äê
+sfIsSuccess($objSess);
+
+// ÆþÎÏ´ü´Ö¤ò¥»¥Ã¥·¥ç¥ó¤Ëµ­Ï¿¤¹¤ë
+lfSaveDateSession();
 
 // ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
-$objWebParam = new SC_FormParam();
-$objDBParam = new SC_FormParam();
+$objFormParam = new SC_FormParam();
 // ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
-$objWebParam = lfInitWebParam($objWebParam);
-$objDBParam = lfInitDBParam($objDBParam);
-
-if ($_POST['db_type'] == 'pgsql') {
-	$port = "";
-}else{
-	$port = ":".$_POST['db_port'];
-}
-
-//¥Õ¥©¡¼¥àÇÛÎó¤Î¼èÆÀ
-$objWebParam->setParam($_POST);
-$objDBParam->setParam($_POST);
+lfInitParam();
+$objFormParam->setParam($_POST);
+$objFormParam->setParam($_GET);
+
+// ¸¡º÷¥ï¡¼¥É¤Î°ú¤­·Ñ¤®
+foreach ($_POST as $key => $val) {
+	if (ereg("^search_", $key)) {
+		$objPage->arrHidden[$key] = $val;		
+	}
+}
 
 switch($_POST['mode']) {
-// ¤è¤¦¤³¤½
-case 'welcome':
-	$objPage = lfDispStep0($objPage);
+case 'pdf':
+case 'csv':
+case 'search':
+	// ÆþÎÏÃÍ¤ÎÊÑ´¹
+	$objFormParam->convParam();
+	$objPage->arrErr = lfCheckError($arrRet);
+	$arrRet = $objFormParam->getHashArray();
+	
+	// ÆþÎÏ¥¨¥é¡¼¤Ê¤·
+	if (count($objPage->arrErr) == 0) {
+		foreach ($arrRet as $key => $val) {
+			if($val == "") {
+				continue;
+			}
+			switch ($key) {
+			case 'search_startyear':
+				$sdate = $_POST['search_startyear'] . "/" . $_POST['search_startmonth'] . "/" . $_POST['search_startday'];
+				break;
+			case 'search_endyear':
+				$edate = $_POST['search_endyear'] . "/" . $_POST['search_endmonth'] . "/" . $_POST['search_endday'];
+				break;
+			case 'search_startyear_m':
+				list($sdate, $edate) = sfTermMonth($_POST['search_startyear_m'], $_POST['search_startmonth_m'], CLOSE_DAY);
+				break;
+			default:
+				break;
+			}
+		}
+
+		if($_POST['type'] != "") {
+			$type = $_POST['type'];
+		}
+				
+		$page = $objFormParam->getValue('page');
+		switch($page) {
+		// ¾¦ÉÊÊÌ½¸·×
+		case 'products':
+			if($type == "") {
+				$type = 'all';
+			}
+			$objPage->tpl_page_type = "total/page_products.tpl";
+			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
+			lfRealTimeDailyTotal($sdate, $edate);
+			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
+			$objPage = lfGetOrderProducts($type, $sdate, $edate, $objPage);
+			break;
+		// ¿¦¶ÈÊÌ½¸·×
+		case 'job':
+			if($type == "") {
+				$type = 'all';
+			}
+			$objPage->tpl_page_type = "total/page_job.tpl";
+			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
+			lfRealTimeDailyTotal($sdate, $edate);
+			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
+			$objPage = lfGetOrderJob($type, $sdate, $edate, $objPage);
+			break;
+		// ²ñ°÷ÊÌ½¸·×
+		case 'member':
+			if($type == "") {
+				$type = 'all';
+			}
+			$objPage->tpl_page_type = "total/page_member.tpl";
+			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
+			lfRealTimeDailyTotal($sdate, $edate);
+			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
+			$objPage = lfGetOrderMember($type, $sdate, $edate, $objPage);
+			break;
+		// Ç¯ÂåÊÌ½¸·×
+		case 'age':
+			if($type == "") {
+				$type = 'all';
+			}
+			$objPage->tpl_page_type = "total/page_age.tpl";
+			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
+			lfRealTimeDailyTotal($sdate, $edate);
+			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
+			$objPage = lfGetOrderAge($type, $sdate, $edate, $objPage);
+			break;
+		// ´ü´ÖÊÌ½¸·×
+		default:
+			if($type == "") {
+				$type = 'day';
+			}
+			$objPage->tpl_page_type = "total/page_term.tpl";
+			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
+			lfRealTimeDailyTotal($sdate, $edate);
+			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
+			$objPage = lfGetOrderTerm($type, $sdate, $edate, $objPage);
+			
+			break;
+		}
+
+		if($_POST['mode'] == 'csv') {
+			// CSV½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤Î¼èÆÀ
+			list($arrTitleCol, $arrDataCol) = lfGetCSVColum($page, $objPage->keyname);
+			$head = sfGetCSVList($arrTitleCol);
+			$data = lfGetDataColCSV($objPage->arrResults, $arrDataCol);
+			// CSV¤òÁ÷¿®¤¹¤ë¡£
+			sfCSVDownload($head.$data, $page."_".$type);
+			exit;
+		}
+		
+		if($_POST['mode'] == 'pdf') {
+			// CSV½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤Î¼èÆÀ
+			list($arrTitleCol, $arrDataCol, $arrColSize, $arrAlign, $title) = lfGetPDFColum($page, $type, $objPage->keyname);
+			$head = sfGetPDFList($arrTitleCol);
+			$data = lfGetDataColPDF($objPage->arrResults, $arrDataCol, 40);
+			// PDF½ÐÎÏÍÑ
+			$graph_name = basename($objPage->tpl_image);
+			lfPDFDownload($graph_name, $head . $data, $arrColSize, $arrAlign, $sdate, $edate, $title);
+			exit;	
+		}	
+	}
 	break;
-// ¥¢¥¯¥»¥¹¸¢¸Â¤Î¥Á¥§¥Ã¥¯
-case 'step0':
-	$objPage = lfDispStep0_1($objPage);
-	break;	
-// ¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼
-case 'step0_1':
-	$objPage = lfDispStep1($objPage);
-	break;	
-// WEB¥µ¥¤¥È¤ÎÀßÄê
-case 'step1':
-	//ÆþÎÏÃÍ¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯
-	$objPage->arrErr = lfCheckWEBError($objWebParam);
-	if(count($objPage->arrErr) == 0) {
-		$objPage = lfDispStep2($objPage);
-	} else {
-		$objPage = lfDispStep1($objPage);
+default:
+	if(count($_GET) == 0) {
+		/*
+			¥ê¥¢¥ë¥¿¥¤¥à½¸·×¤ËÀÚ¤êÂØ¤¨ by Nakagawa 2006/08/31
+			// 1¥ö·îÊ¬¤Î½¸·×
+			lfStartDailyTotal(31,0);
+		*/
 	}
 	break;
-// ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀßÄê
-case 'step2':
-
-	//ÆþÎÏÃÍ¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯
-	$objPage->arrErr = lfCheckDBError($objDBParam);
-	if(count($objPage->arrErr) == 0) {
-		
-		// Å¹ÊÞ¤òÊÑ¹¹¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï´°Î»²èÌÌ¤ØÁ«°Ü
-		$skip = $_POST["db_skip"];
-		if ($skip == "on") {
-			// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÀ¸À®
-			lfMakeConfigFile();
-			$objPage = lfDispComplete($objPage);
-			break;
-		}
-		
-		$objPage = lfDispStep3($objPage);
-
-	} else {
-		$objPage = lfDispStep2($objPage);
-	}
-	break;
-// ¥Æ¡¼¥Ö¥ë¤ÎºîÀ®
-case 'step3':
-	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
-	$arrRet =  $objDBParam->getHashArray();
-
-	// ¥Æ¡¼¥Ö¥ë¤ÎºîÀ®
-	$objPage->arrErr = lfExecuteSQL("./create_table_".$arrRet['db_type'].".sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
-	if(count($objPage->arrErr) == 0) {
-		$objPage->tpl_message.="¡û¡§¥Æ¡¼¥Ö¥ë¤ÎºîÀ®¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
-	} else {
-		$objPage->tpl_message.="¡ß¡§¥Æ¡¼¥Ö¥ë¤ÎºîÀ®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
-	}
-
-	// ¥Ó¥å¡¼¤ÎºîÀ®
-	if(count($objPage->arrErr) == 0 and $arrRet['db_type'] == 'pgsql') {
-		// ¥Ó¥å¡¼¤ÎºîÀ®
-		$objPage->arrErr = lfExecuteSQL("./create_view.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
-		if(count($objPage->arrErr) == 0) {
-			$objPage->tpl_message.="¡û¡§¥Ó¥å¡¼¤ÎºîÀ®¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
+}
+
+// ÅÐÏ¿¡¦¹¹¿·Æü¸¡º÷ÍÑ
+$objDate = new SC_Date();
+$objDate->setStartYear(RELEASE_YEAR);
+$objDate->setEndYear(DATE("Y"));
+$objPage->arrYear = $objDate->getYear();
+$objPage->arrMonth = $objDate->getMonth();
+$objPage->arrDay = $objDate->getDay();
+// ÆþÎÏÃÍ¤Î¼èÆÀ
+$objPage->arrForm = $objFormParam->getFormParamList();
+
+$objPage->tpl_subtitle = $objPage->arrTitle[$objFormParam->getValue('page')];
+
+$objView->assignobj($objPage);
+$objView->display(MAIN_FRAME);
+
+//---------------------------------------------------------------------------------------------------------------------------
+/* PDF½ÐÎÏ */
+function lfPDFDownload($image, $table, $arrColSize, $arrAlign, $sdate, $edate, $title) {
+	
+	$objPdf = new SC_Pdf();
+	$objPdf->setTableColor("CCCCCC", "F0F0F0", "D1DEFE");
+			
+	// ÅÚÂæ¤È¤Ê¤ëPDF¥Õ¥¡¥¤¥ë¤Î»ØÄê
+	$objPdf->setTemplate(PDF_DIR . "total.pdf");
+
+	$disp_sdate = sfDispDBDate($sdate, false);
+	$disp_edate = sfDispDBDate($edate, false);
+				
+	$arrText['title_block'] = $title;
+	$arrText['date_block'] = "$disp_sdate-$disp_edate";
+	$arrImage['graph_block'] = GRAPH_DIR . $image;
+	
+	// Ê¸Ëö¤Î\n¤òºï½ü¤¹¤ë
+	$table = ereg_replace("\n$", "", $table);
+	$arrRet = split("\n", $table);
+	$page_max = intval((count($arrRet) / 35) + 1);
+	
+	for($page = 1; $page <= $page_max; $page++) {
+		if($page > 1) {
+			// 2¥Ú¡¼¥¸°Ê¹ß
+			$start_no = 35 * ($page - 1) + 1;
 		} else {
-			$objPage->tpl_message.="¡ß¡§¥Ó¥å¡¼¤ÎºîÀ®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
-		}
-	}	
-	
-	// ½é´ü¥Ç¡¼¥¿¤ÎºîÀ®
-	if(count($objPage->arrErr) == 0) {
-		$objPage->arrErr = lfExecuteSQL("./insert_data.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
-		if(count($objPage->arrErr) == 0) {
-			$objPage->tpl_message.="¡û¡§½é´ü¥Ç¡¼¥¿¤ÎºîÀ®¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
+			// ³«»Ï¥Ú¡¼¥¸
+			$start_no = 1;			
+		}
+				
+		$arrText['page_block'] = $page . " / " . $page_max;
+		$objPdf->setTextBlock($arrText);
+		$objPdf->setImageBlock($arrImage);
+		// ¥Ö¥í¥Ã¥¯ÃÍ¤ÎÆþÎÏ
+		$objPdf->writeBlock();
+		// ºÇ½ª¥Ú¡¼¥¸¤Î¤ß¡¢¾¦ÉÊÊÌ½¸·×¤Ï¹ç·×¤¬¤Ê¤¤¤Î¤ÇºÇ½ª¹Ô¤Î¿§¤òÊÑ¹¹¤·¤Ê¤¤¡£
+		if($page == $page_max && $_POST['page'] != 'products') {
+			$last_color_flg = true;
 		} else {
-			$objPage->tpl_message.="¡ß¡§½é´ü¥Ç¡¼¥¿¤ÎºîÀ®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
-		}
-	}	
-	
-	// ¥«¥é¥à¥³¥á¥ó¥È¤Î½ñ¹þ¤ß
-	if(count($objPage->arrErr) == 0) {
-		$objPage->arrErr = lfExecuteSQL("./column_comment.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
-		if(count($objPage->arrErr) == 0) {
-			$objPage->tpl_message.="¡û¡§¥«¥é¥à¥³¥á¥ó¥È¤Î½ñ¹þ¤ß¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
-		} else {
-			$objPage->tpl_message.="¡ß¡§¥«¥é¥à¥³¥á¥ó¥È¤Î½ñ¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
-		}
-	}	
-	
-	// ¥Æ¡¼¥Ö¥ë¥³¥á¥ó¥È¤Î½ñ¹þ¤ß
-	if(count($objPage->arrErr) == 0) {
-		$objPage->arrErr = lfExecuteSQL("./table_comment.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
-		if(count($objPage->arrErr) == 0) {
-			$objPage->tpl_message.="¡û¡§¥Æ¡¼¥Ö¥ë¥³¥á¥ó¥È¤Î½ñ¹þ¤ß¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
-		} else {
-			$objPage->tpl_message.="¡ß¡§¥Æ¡¼¥Ö¥ë¥³¥á¥ó¥È¤Î½ñ¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
-		}
-	}
-
-
-	if(count($objPage->arrErr) == 0) {
-		// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÀ¸À®
-		lfMakeConfigFile();
-		$objPage = lfDispStep3($objPage);
-		$objPage->tpl_mode = 'complete';
-	} else {
-		$objPage = lfDispStep3($objPage);
-	}
-	break;
-// ¥Æ¡¼¥Ö¥ëÎàºï½ü
-case 'drop':
-	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
-	$arrRet =  $objDBParam->getHashArray();
-	
-	if ($arrRet['db_type'] == 'pgsql'){
-		// ¥Ó¥å¡¼¤Îºï½ü
-		$objPage->arrErr = lfExecuteSQL("./drop_view.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port'], false); 
-		if(count($objPage->arrErr) == 0) {
-			$objPage->tpl_message.="¡û¡§¥Ó¥å¡¼¤Îºï½ü¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
-		} else {
-			$objPage->tpl_message.="¡ß¡§¥Ó¥å¡¼¤Îºï½ü¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
-		}
-	}
-
-
-	// ¥Æ¡¼¥Ö¥ë¤Îºï½ü
-	if(count($objPage->arrErr) == 0) {
-		$objPage->arrErr = lfExecuteSQL("./drop_table.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port'], false); 
-		if(count($objPage->arrErr) == 0) {
-			$objPage->tpl_message.="¡û¡§¥Æ¡¼¥Ö¥ë¤Îºï½ü¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
-		} else {
-			$objPage->tpl_message.="¡ß¡§¥Æ¡¼¥Ö¥ë¤Îºï½ü¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
-		}
-	}
-	$objPage = lfDispStep3($objPage);
-	break;
-// ´°Î»²èÌÌ
-case 'complete':
-	// ¥·¥ç¥Ã¥×¥Þ¥¹¥¿¾ðÊó¤Î½ñ¤­¹þ¤ß
-	$arrRet =  $objDBParam->getHashArray();
-	$dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@".$arrRet['db_server'].$port."/".$arrRet['db_name'];
-	$sqlval['shop_name'] = $objWebParam->getValue('shop_name');
-	$sqlval['email01'] = $objWebParam->getValue('admin_mail');
-	$sqlval['email02'] = $objWebParam->getValue('admin_mail');
-	$sqlval['email03'] = $objWebParam->getValue('admin_mail');
-	$sqlval['email04'] = $objWebParam->getValue('admin_mail');
-	$sqlval['email05'] = $objWebParam->getValue('admin_mail');
-	$sqlval['top_tpl'] = "default1";
-	$sqlval['product_tpl'] = "default1";
-	$sqlval['detail_tpl'] = "default1";
-	$sqlval['mypage_tpl'] = "default1";
-	$objQuery = new SC_Query($dsn);
-	$cnt = $objQuery->count("dtb_baseinfo");
-	if($cnt > 0) {
-		$objQuery->update("dtb_baseinfo", $sqlval);
-	} else {		
-		$objQuery->insert("dtb_baseinfo", $sqlval);		
-	}
-	global $GLOBAL_ERR;
-	$GLOBAL_ERR = "";
-	$objPage = lfDispComplete($objPage);
-	break;
-case 'return_step0':
-	$objPage = lfDispStep0($objPage);
-	break;	
-case 'return_step1':
-	$objPage = lfDispStep1($objPage);
-	break;
-case 'return_step2':
-	$objPage = lfDispStep2($objPage);
-	break;
-case 'return_welcome':
-default:
-	$objPage = lfDispWelcome($objPage);
-	break;
-}
-
-//¥Õ¥©¡¼¥àÍÑ¤Î¥Ñ¥é¥á¡¼¥¿¤òÊÖ¤¹
-$objPage->arrForm = $objWebParam->getFormParamList();
-$objPage->arrForm = array_merge($objPage->arrForm, $objDBParam->getFormParamList());
-
-// SiteInfo¤òÆÉ¤ß¹þ¤Þ¤Ê¤¤
-$objView->assignobj($objPage);
-$objView->display('install_frame.tpl');
-//-----------------------------------------------------------------------------------------------------------------------------------
-// ¤è¤¦¤³¤½²èÌÌ¤ÎÉ½¼¨
-function lfDispWelcome($objPage) {
-	global $objWebParam;
-	global $objDBParam;
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = $objWebParam->getHashArray();
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
-	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
-	$objPage->tpl_mainpage = 'welcome.tpl';
-	$objPage->tpl_mode = 'welcome';
-	return $objPage;
-}
-
-// STEP0²èÌÌ¤ÎÉ½¼¨(¥Õ¥¡¥¤¥ë¸¢¸Â¥Á¥§¥Ã¥¯) 
-function lfDispStep0($objPage) {
-	global $objWebParam;
-	global $objDBParam;
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = $objWebParam->getHashArray();
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
-	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
-	$objPage->tpl_mainpage = 'step0.tpl';
-	$objPage->tpl_mode = 'step0';
-	
-	// ¥×¥í¥°¥é¥à¤Ç½ñ¹þ¤ß¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥ì¥¯¥È¥ê
-	$arrWriteFile = array(
-		"html/install.inc",
-		"html/user_data",
-		"html/upload",
-		"data/Smarty/templates_c",		
-		"data/update",
-		"data/logs",
-	);
-	
-	$mess = "";
-	$err_file = false;
-	foreach($arrWriteFile as $val) {
-		$path = "../../" . $val;		
-		if(file_exists($path)) {
-			$mode = lfGetFileMode("../../" . $val);
-			
-			// ¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç
-			if(is_dir($path)) {
-				if($mode == "777") {
-					$mess.= ">> ¡û¡§$val($mode) ¤ÏÌäÂê¤¢¤ê¤Þ¤»¤ó¡£<br>";					
-				} else {
-					$mess.= ">> ¡ß¡§$val($mode) ¤Ë¥æ¡¼¥¶½ñ¹þ¤ß¸¢¸Â(777)¤òÉÕÍ¿¤·¤Æ²¼¤µ¤¤¡£<br>";
-					$err_file = true;										
-				}
-			} else {
-				if($mode == "666") {
-					$mess.= ">> ¡û¡§$val($mode) ¤ÏÌäÂê¤¢¤ê¤Þ¤»¤ó¡£<br>";					
-				} else {
-					$mess.= ">> ¡ß¡§$val($mode) ¤Ë¥æ¡¼¥¶½ñ¹þ¤ß¸¢¸Â(666)¤òÉÕÍ¿¤·¤Æ²¼¤µ¤¤¡£<br>";
-					$err_file = true;							
-				}
-			}	
-			
-		} else {
-			$mess.= ">> ¡ß¡§$val ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£<br>";
-			$err_file = true;
-		}
-	}
-	
-	// ¸¢¸Â¥¨¥é¡¼Åù¤¬È¯À¸¤·¤Æ¤¤¤Ê¤¤¾ì¹ç
-	if(!$err_file) {
-		$path = "../../data/Smarty/templates_c/admin";
-		if(!file_exists($path)) {
-			mkdir($path);
-		}
-		$path = "../../html/upload/save_image";
-		if(!file_exists($path)) {
-			mkdir($path);
-		}
-		$path = "../../html/upload/temp_image";
-		if(!file_exists($path)) {
-			mkdir($path);
-		}
-		$path = "../../html/upload/graph_image";
-		if(!file_exists($path)) {
-			mkdir($path);
-		}
-		$path = "../../html/upload/csv";
-		if(!file_exists($path)) {
-			mkdir($path);
-		}
-	}
-	
-	$objPage->mess = $mess;
-	$objPage->err_file = $err_file;
-
-	return $objPage;
-}
-
-
-// STEP0_1²èÌÌ¤ÎÉ½¼¨(¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼) 
-function lfDispStep0_1($objPage) {
-	global $objWebParam;
-	global $objDBParam;
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = $objWebParam->getHashArray();
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
-	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
-	$objPage->tpl_mainpage = 'step0_1.tpl';
-	$objPage->tpl_mode = 'step0_1';
-	// ¥Õ¥¡¥¤¥ë¥³¥Ô¡¼
-	$objPage->copy_mess = lfCopyDir("./user_data/", "../../html/user_data/", $objPage->copy_mess);
-	$objPage->copy_mess = lfCopyDir("./save_image/", "../../html/upload/save_image/", $objPage->copy_mess);	
-	return $objPage;
-}
-
-function lfGetFileMode($path) {
-	$mode = substr(sprintf('%o', fileperms($path)), -3);
-	return $mode;
-}
-
-// STEP1²èÌÌ¤ÎÉ½¼¨
-function lfDispStep1($objPage) {
-	global $objDBParam;
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = $objDBParam->getHashArray();
-	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
-	$objPage->tpl_mainpage = 'step1.tpl';
-	$objPage->tpl_mode = 'step1';
-	return $objPage;
-}
-
-// STEP2²èÌÌ¤ÎÉ½¼¨
-function lfDispStep2($objPage) {
-	global $objWebParam;
-	global $objDBParam;
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = $objWebParam->getHashArray();
-	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
-	$objPage->tpl_mainpage = 'step2.tpl';
-	$objPage->tpl_mode = 'step2';
-	return $objPage;
-}
-
-// STEP3²èÌÌ¤ÎÉ½¼¨
-function lfDispStep3($objPage) {
-	global $objWebParam;
-	global $objDBParam;
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = $objWebParam->getHashArray();
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
-	$objPage->tpl_db_skip = $_POST['db_skip'];
-	$objPage->tpl_mainpage = 'step3.tpl';
-	$objPage->tpl_mode = 'step3';
-	return $objPage;
-}
-
-// ´°Î»²èÌÌ¤ÎÉ½¼¨
-function lfDispComplete($objPage) {
-	global $objWebParam;
-	global $objDBParam;
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = $objWebParam->getHashArray();
-	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
-	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
-	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
-	$objPage->tpl_mainpage = 'complete.tpl';
-	$objPage->tpl_mode = 'complete';
-	return $objPage;
-}
-
-// WEB¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
-function lfInitWebParam($objWebParam) {
-	
-	$install_dir = realpath(dirname( __FILE__) . "/../../") . "/";
-	$normal_url = "http://" . $_SERVER['HTTP_HOST'] . "/";
-	$secure_url = "http://" . $_SERVER['HTTP_HOST'] . "/";
-	$domain = ereg_replace("^[a-zA-Z0-9_~=&\?\/-]+\.", "", $_SERVER['HTTP_HOST']);
-	$objWebParam->addParam("Å¹Ì¾", "shop_name", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"));
-	$objWebParam->addParam("´ÉÍý¼Ô¥á¡¼¥ë¥¢¥É¥ì¥¹", "admin_mail", MTEXT_LEN, "", array("EXIST_CHECK","EMAIL_CHECK","EMAIL_CHAR_CHECK","MAX_LENGTH_CHECK"));
-	$objWebParam->addParam("¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê", "install_dir", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $install_dir);
-	$objWebParam->addParam("URL(ÄÌ¾ï)", "normal_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $normal_url);
-	$objWebParam->addParam("URL(¥»¥­¥å¥¢)", "secure_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $secure_url);
-	$objWebParam->addParam("¥É¥á¥¤¥ó", "domain", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $domain);	
-
-	return $objWebParam;
-}
-
-// DB¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
-function lfInitDBParam($objDBParam) {
-	
-	$db_server = "127.0.0.1";
-	$db_port = "3306";
-	$db_name = "eccube_db";
-	$db_user = "eccube_db_user";
-	
-	$objDBParam->addParam("DB¤Î¼ïÎà", "db_type", INT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"));
-	$objDBParam->addParam("DB¥µ¡¼¥Ð", "db_server", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_server);
-	$objDBParam->addParam("DB¥Ý¡¼¥È", "db_port", INT_LEN, "", array("MAX_LENGTH_CHECK"), $db_port);
-	$objDBParam->addParam("DBÌ¾", "db_name", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_name);
-	$objDBParam->addParam("DB¥æ¡¼¥¶", "db_user", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_user);
-	$objDBParam->addParam("DB¥Ñ¥¹¥ï¡¼¥É", "db_password", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"));	
-
-	return $objDBParam;
-}
-
-// ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯
-function lfCheckWebError($objFormParam) {
+			$last_color_flg = false;
+		}	
+		$objPdf->writeTableCenter($table, 500, $arrColSize, $arrAlign, 35, $start_no, $last_color_flg);
+		$objPdf->closePage();
+	}
+
+	// PDF¤Î½ÐÎÏ
+	$objPdf->output();	
+}
+
+/* ¥»¥Ã¥·¥ç¥ó¤ËÆþÎÏ´ü´Ö¤òµ­Ï¿¤¹¤ë */
+function lfSaveDateSession() {
+	if($_POST['form'] == 1) {
+		$_SESSION['total']['startyear_m'] = $_POST['search_startyear_m'];
+		$_SESSION['total']['startmonth_m'] = $_POST['search_startmonth_m'];
+	}
+	
+	if($_POST['form'] == 2) {
+		$_SESSION['total']['startyear'] = $_POST['search_startyear'];
+		$_SESSION['total']['startmonth'] = $_POST['search_startmonth'];
+		$_SESSION['total']['startday'] = $_POST['search_startday'];
+		$_SESSION['total']['endyear'] = $_POST['search_endyear'];
+		$_SESSION['total']['endmonth'] = $_POST['search_endmonth'];
+		$_SESSION['total']['endday'] = $_POST['search_endday'];
+	}
+}
+
+/* ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Î¼èÆÀ */
+function lfGetDateDefault() {
+	$year = date("Y");
+	$month = date("m");
+	$day = date("d");
+	
+	$list = $_SESSION['total'];
+	
+	// ¥»¥Ã¥·¥ç¥ó¾ðÊó¤Ë³«»Ï·îÅÙ¤¬ÊÝÂ¸¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+	if($_SESSION['total']['startyear_m'] == "") {
+		$list['startyear_m'] = $year;
+		$list['startmonth_m'] = $month;
+	}
+	
+	// ¥»¥Ã¥·¥ç¥ó¾ðÊó¤Ë³«»ÏÆüÉÕ¡¢½ªÎ»ÆüÉÕ¤¬ÊÝÂ¸¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+	if($_SESSION['total']['startyear'] == "" && $_SESSION['total']['endyear'] == "") {
+		$list['startyear'] = $year;
+		$list['startmonth'] = $month;
+		$list['startday'] = $day;
+		$list['endyear'] = $year;
+		$list['endmonth'] = $month;
+		$list['endday'] = $day;
+	}
+	
+	return $list;	
+}
+
+/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
+function lfInitParam() {
+	global $objFormParam;
+		
+	// ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Î¼èÆÀ
+	$arrList = lfGetDateDefault();
+	
+	// ·îÅÙ½¸·×
+	$objFormParam->addParam("·îÅÙ", "search_startyear_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear_m']);
+	$objFormParam->addParam("·îÅÙ", "search_startmonth_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth_m']);
+	// ´ü´Ö½¸·×
+	$objFormParam->addParam("³«»ÏÆü", "search_startyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear']);
+	$objFormParam->addParam("³«»ÏÆü", "search_startmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth']);
+	$objFormParam->addParam("³«»ÏÆü", "search_startday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startday']);
+	$objFormParam->addParam("½ªÎ»Æü", "search_endyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endyear']);
+	$objFormParam->addParam("½ªÎ»Æü", "search_endmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endmonth']);
+	$objFormParam->addParam("½ªÎ»Æü", "search_endday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endday']);
+	
+	// hidden¥Ç¡¼¥¿¤Î¼èÆÀÍÑ
+	$objFormParam->addParam("", "page");
+	$objFormParam->addParam("", "type");
+}
+
+/* ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯ */
+function lfCheckError() {
+	global $objFormParam;
 	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
 	$arrRet =  $objFormParam->getHashArray();
 	$objErr = new SC_CheckError($arrRet);
 	$objErr->arrErr = $objFormParam->checkError();
+	
+	// ÆÃ¼ì¹àÌÜ¥Á¥§¥Ã¥¯
+	if($_POST['form'] == 1) {
+		$objErr->doFunc(array("·îÅÙ", "search_startyear_m"), array("ONE_EXIST_CHECK"));
+	}
+	
+	if($_POST['form'] == 2) {
+		$objErr->doFunc(array("´ü´Ö", "search_startyear", "search_endyear"), array("ONE_EXIST_CHECK"));
+	}
+			
+	$objErr->doFunc(array("·îÅÙ", "search_startyear_m", "search_startmonth_m"), array("ALL_EXIST_CHECK"));
+	$objErr->doFunc(array("³«»ÏÆü", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE"));
+	$objErr->doFunc(array("½ªÎ»Æü", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE"));
+	$objErr->doFunc(array("³«»ÏÆü", "½ªÎ»Æü", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM"));
 	return $objErr->arrErr;
 }
 
-// ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯
-function lfCheckDBError($objFormParam) {
-	global $port;
-	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
-	$arrRet =  $objFormParam->getHashArray();
-	
-	sfprintr($arrRet);
-	
-	$objErr = new SC_CheckError($arrRet);
-	$objErr->arrErr = $objFormParam->checkError();
-	
-	if(count($objErr->arrErr) == 0) {
-		// ÀÜÂ³³ÎÇ§
-		$dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@".$arrRet['db_server'].$port."/".$arrRet['db_name'];
-		// Debug¥â¡¼¥É»ØÄê
-		$options['debug'] = 3;
-		$objDB = DB::connect($dsn, $options);
-		// ÀÜÂ³¥¨¥é¡¼
-		if(PEAR::isError($objDB)) {
-			$objErr->arrErr['all'] = ">> " . $objDB->message . "<br>";
-			// ¥¨¥é¡¼Ê¸¤ò¼èÆÀ¤¹¤ë
-			ereg("\[(.*)\]", $objDB->userinfo, $arrKey);
-			$objErr->arrErr['all'].= $arrKey[0] . "<br>";
-			gfPrintLog($objDB->userinfo, "./temp/install.log");
-		}
-	}
-	return $objErr->arrErr;
-}
-
-// SQLÊ¸¤Î¼Â¹Ô
-function lfExecuteSQL($filepath, $db_user, $db_password, $db_server, $db_name, $db_type, $db_port, $disp_err = true) {
-	global $port;
-	$arrErr = array();
-
-	if(!file_exists($filepath)) {
-		$arrErr['all'] = ">> ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó";
+/* ÀÞ¤ìÀþ¥°¥é¥Õ¤ÎºîÀ® */
+function lfGetGraphLine($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate) {
+	
+	$ret_path = "";
+	
+	// ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£
+	if(count($arrResults) > 0) {
+		
+		// ¥°¥é¥Õ¤ÎÀ¸À®
+		$arrList = sfArrKeyValue($arrResults, $keyname, "total");
+
+		// °ì»þ¥Õ¥¡¥¤¥ëÌ¾¤Î¼èÆÀ
+		$pngname = lfGetGraphPng($type);
+		
+		$path = GRAPH_DIR . $pngname;
+		
+		// ¥é¥Ù¥ëÉ½¼¨¥¤¥ó¥¿¡¼¥Ð¥ë¤òµá¤á¤ë
+		$interval = intval(count($arrList) / 20);
+		if($interval < 1) {
+			$interval = 1;
+		}
+		$objGraphPie = new SC_GraphPie();
+		$objGraphLine = new SC_GraphLine();
+		
+		// ÃÍ¤Î¥»¥Ã¥È
+		$objGraphLine->setData($arrList);
+		$objGraphLine->setXLabel(array_keys($arrList));
+		
+		// ¥é¥Ù¥ë²óÅ¾(ÆüËÜ¸ìÉÔ²Ä)
+		if($keyname == "key_day"){
+			$objGraphLine->setXLabelAngle(45);
+		}
+
+		// ¥¿¥¤¥È¥ë¥»¥Ã¥È
+		$objGraphLine->setXTitle($xtitle);
+		$objGraphLine->setYTitle($ytitle);
+		
+		// ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ®
+		list($sy, $sm, $sd) = split("[/ ]" , $sdate);
+		list($ey, $em, $ed) = split("[/ ]" , $edate);
+		$start_date = $sy . "Ç¯" . $sm . "·î" . $sd . "Æü";
+		$end_date = $ey . "Ç¯" . $em . "·î" . $ed . "Æü";
+		$objGraphLine->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date);
+		
+		// ¥°¥é¥ÕÉÁ²è
+		$objGraphLine->drawGraph();
+		$objGraphLine->outputGraph(false, $path);
+
+		// ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹
+		$ret_path = GRAPH_URL . $pngname;
+	}
+	return $ret_path;
+}
+
+// ±ß¥°¥é¥Õ¤ÎºîÀ® 
+function lfGetGraphPie($arrResults, $keyname, $type, $title = "", $sdate = "", $edate = "") {
+	
+	$ret_path = "";
+	
+	// ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£
+	if(count($arrResults) > 0) {
+		// ¥°¥é¥Õ¤ÎÀ¸À®
+		$arrList = sfArrKeyValue($arrResults, $keyname, "total", GRAPH_PIE_MAX, GRAPH_LABEL_MAX);
+		
+		// °ì»þ¥Õ¥¡¥¤¥ëÌ¾¤Î¼èÆÀ
+		$pngname = lfGetGraphPng($type);
+		$path = GRAPH_DIR . $pngname;
+		
+			$objGraphPie = new SC_GraphPie();
+			
+			/* ¥Ç¥Ð¥Ã¥°É½¼¨ÍÑ by naka
+			foreach($arrList as $key => $val) {
+				$objGraphPie->debugPrint("key:$key val:$val");
+			}
+			*/
+			
+			// ¥Ç¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë
+			$objGraphPie->setData($arrList);
+			// ËÞÎã¤ò¥»¥Ã¥È¤¹¤ë
+			$objGraphPie->setLegend(array_keys($arrList));
+									
+			// ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ®
+			list($sy, $sm, $sd) = split("[/ ]" , $sdate);
+			list($ey, $em, $ed) = split("[/ ]" , $edate);
+			$start_date = $sy . "Ç¯" . $sm . "·î" . $sd . "Æü";
+			$end_date = $ey . "Ç¯" . $em . "·î" . $ed . "Æü";
+			$objGraphPie->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date);
+					
+			// ±ß¥°¥é¥ÕÉÁ²è
+			$objGraphPie->drawGraph();
+			
+			// ¥°¥é¥Õ¤Î½ÐÎÏ
+			$objGraphPie->outputGraph(false, $path);			
+
+		// ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹
+		$ret_path = GRAPH_URL . $pngname;
+	}
+	return $ret_path;
+}
+
+// ËÀ¥°¥é¥Õ¤ÎºîÀ® 
+function lfGetGraphBar($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate) {
+	$ret_path = "";
+	
+	// ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£
+	if(count($arrResults) > 0) {
+		// ¥°¥é¥Õ¤ÎÀ¸À®
+		$arrList = sfArrKeyValue($arrResults, $keyname, "total", GRAPH_PIE_MAX, GRAPH_LABEL_MAX);
+		
+		// °ì»þ¥Õ¥¡¥¤¥ëÌ¾¤Î¼èÆÀ
+		$pngname = lfGetGraphPng($type);
+		$path = GRAPH_DIR . $pngname;
+		
+			$objGraphBar = new SC_GraphBar();
+			
+			foreach(array_keys($arrList) as $val) {
+				$arrKey[] = ereg_replace("¡Á", "-", $val);
+			}
+			
+			// ¥°¥é¥ÕÉÁ²è
+			$objGraphBar->setXLabel($arrKey);
+			$objGraphBar->setXTitle($xtitle);
+			$objGraphBar->setYTitle($ytitle);
+			$objGraphBar->setData($arrList);
+			
+			// ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ®
+			$arrKey = array_keys($arrList);
+			list($sy, $sm, $sd) = split("[/ ]" , $sdate);
+			list($ey, $em, $ed) = split("[/ ]" , $edate);
+			$start_date = $sy . "Ç¯" . $sm . "·î" . $sd . "Æü";
+			$end_date = $ey . "Ç¯" . $em . "·î" . $ed . "Æü";
+			$objGraphBar->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date);
+			
+			$objGraphBar->drawGraph();
+			$objGraphBar->outputGraph(false,$path);
+
+		// ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹
+		$ret_path = GRAPH_URL . $pngname;
+	}
+	return $ret_path;
+}
+
+// ¥°¥é¥ÕÍÑ¤ÎPNG¥Õ¥¡¥¤¥ëÌ¾ 
+function lfGetGraphPng($keyname) {
+	if($_POST['search_startyear_m'] != "") {
+		$pngname = sprintf("%s_%02d%02d.png", $keyname, substr($_POST['search_startyear_m'],2), $_POST['search_startmonth_m']);
 	} else {
-  		if($fp = fopen($filepath,"r")) {
-			$sql = fread($fp, filesize($filepath));
-			fclose($fp);
-		}
-
-		$dsn = $db_type."://".$db_user.":".$db_password."@".$db_server.$port."/".$db_name;
-		
-		$objDB = DB::connect($dsn);
-		// ÀÜÂ³¥¨¥é¡¼
-		if(!PEAR::isError($objDB)) {
-			// ²þ¹Ô¡¢¥¿¥Ö¤ò1¥¹¥Ú¡¼¥¹¤ËÊÑ´¹
-			$sql = preg_replace("/[\r\n\t]/"," ",$sql);
-			$sql_split = split(";",$sql);
-			foreach($sql_split as $key => $val){
-				if (trim($val) != "") {
-					$ret = $objDB->query($val);
-					if(PEAR::isError($ret) and $disp_err) {
-						$arrErr['all'] = ">> " . $ret->message . "<br>";
-						// ¥¨¥é¡¼Ê¸¤ò¼èÆÀ¤¹¤ë
-						ereg("\[(.*)\]", $ret->userinfo, $arrKey);
-						$arrErr['all'].= $arrKey[0] . "<br>";
-						$objPage->update_mess.=">> ¥Æ¡¼¥Ö¥ë¹½À®¤ÎÊÑ¹¹¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";
-						gfPrintLog($ret->userinfo, "./temp/install.log");
-					}
-				}
-			}
-			
+		$pngname = sprintf("%s_%02d%02d%02d_%02d%02d%02d.png", $keyname, substr($_POST['search_startyear'], 2), $_POST['search_startmonth'], $_POST['search_startday'], substr($_POST['search_endyear'],2), $_POST['search_endmonth'], $_POST['search_endday']);
+	}
+	return $pngname;
+}
+
+// ²ñ°÷¡¢Èó²ñ°÷½¸·×¤ÎWHEREÊ¬¤ÎºîÀ®
+function lfGetWhereMember($col_date, $sdate, $edate, $type, $col_member = "customer_id") {
+	// ¼èÆÀÆüÉÕ¤Î»ØÄê
+	if($sdate != "") {
+		if ($where != "") {
+			$where.= " AND ";
+		}			
+		$where.= " $col_date >= '". $sdate ."'";
+	}
+		
+	if($edate != "") {
+		if ($where != "") {
+			$where.= " AND ";
+		}
+		$edate = date("Y/m/d",strtotime("1 day" ,strtotime($edate)));	
+		$where.= " $col_date < date('" . $edate ."')";
+	}
+	
+	// ²ñ°÷¡¢Èó²ñ°÷¤ÎÈ½Äê
+	switch($type) {
+	// Á´ÂÎ
+	case 'all':
+		break;
+	case 'member':
+		if ($where != "") {
+			$where.= " AND ";
+		}
+		$where.= " $col_member <> 0";
+		break;
+	case 'nonmember':
+		if ($where != "") {
+			$where.= " AND ";
+		}
+		$where.= " $col_member = 0";
+		break;
+	default:
+		break;
+	}
+	
+	return array($where, $arrval);
+}
+
+/** ²ñ°÷ÊÌ½¸·× **/
+function lfGetOrderMember($type, $sdate, $edate, $objPage, $graph = true) {
+	global $arrSex;
+		
+	list($where, $arrval) = lfGetWhereMember('create_date', $sdate, $edate, $type);
+	
+	// ²ñ°÷½¸·×¤Î¼èÆÀ
+	$col = "COUNT(*) AS order_count, SUM(total) AS total, (AVG(total)) AS total_average, order_sex";
+	$from = "dtb_order";
+	$objQuery = new SC_Query();
+	$objQuery->setGroupBy("order_sex");
+	
+	$tmp_where = $where . " AND customer_id <> 0 AND del_flg = 0 ";
+	$arrRet = $objQuery->select($col, $from, $tmp_where, $arrval);
+	
+	// ²ñ°÷¹ØÆþ¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤¹¤ë¡£
+	$max = count($arrRet);
+	for($i = 0; $i < $max; $i++) {
+		$arrRet[$i]['member_name'] = '²ñ°÷'.$arrSex[$arrRet[$i]['order_sex']];
+	}
+	$objPage->arrResults = $arrRet;
+	
+	// Èó²ñ°÷½¸·×¤Î¼èÆÀ
+	$tmp_where = $where . " AND customer_id = 0 AND del_flg = 0 ";
+	$arrRet = $objQuery->select($col, $from, $tmp_where, $arrval);
+	// Èó²ñ°÷¹ØÆþ¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤¹¤ë¡£
+	$max = count($arrRet);
+	for($i = 0; $i < $max; $i++) {
+		$arrRet[$i]['member_name'] = 'Èó²ñ°÷'.$arrSex[$arrRet[$i]['order_sex']];
+	}
+	
+	$objPage->arrResults = array_merge($objPage->arrResults, $arrRet);
+	
+	// ±ß¥°¥é¥Õ¤ÎÀ¸À®
+	if($graph) {	
+		$image_key = "member";
+		$objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "member_name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate);
+	}
+	
+	return $objPage;
+}
+
+/** ¾¦ÉÊÊÌ½¸·× **/
+function lfGetOrderProducts($type, $sdate, $edate, $objPage, $graph = true) {
+	list($where, $arrval) = lfGetWhereMember('create_date', $sdate, $edate, $type);
+	
+	$sql = "SELECT T1.product_id, T1.product_code, T2.name, T1.products_count, T1.order_count, T1.price, T1.total ";
+	$sql.= "FROM ( ";
+	$sql.= "SELECT product_id, product_code, price, ";
+	$sql.= "COUNT(*) AS order_count, ";
+	$sql.= "SUM(quantity) AS products_count, ";
+	$sql.= "(price * sum(quantity)) AS total ";
+	$sql.= "FROM dtb_order_detail WHERE order_id IN (SELECT order_id FROM dtb_order WHERE $where ) ";
+	$sql.= "GROUP BY product_id, product_code, price ";
+	$sql.= ") ";
+	$sql.= "AS T1 LEFT JOIN dtb_products AS T2 USING (product_id) WHERE T2.name IS NOT NULL AND status = 1 ORDER BY T1.total DESC ";
+	
+	if($_POST['mode'] != "csv") {
+		$sql.= "LIMIT " . PRODUCTS_TOTAL_MAX;
+	}
+	
+	$objQuery = new SC_Query();
+	$objPage->arrResults = $objQuery->getall($sql, $arrval);
+	
+	// ±ß¥°¥é¥Õ¤ÎÀ¸À®
+	if($graph) {
+		$image_key = "products_" . $type;
+		$objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate);
+	}
+	
+	return $objPage;
+}
+
+/** ¿¦¶ÈÊÌ½¸·× **/
+function lfGetOrderJob($type, $sdate, $edate, $objPage, $graph = true) {
+	global $arrJob;	
+		
+	list($where, $arrval) = lfGetWhereMember('T2.create_date', $sdate, $edate, $type);
+	
+	$sql = "SELECT job, count(*) AS order_count, SUM(total) AS total, (AVG(total)) AS total_average ";
+	$sql.= "FROM dtb_customer AS T1 LEFT JOIN dtb_order AS T2 USING ( customer_id ) WHERE $where AND T2.del_flg = 0 ";
+	$sql.= "GROUP BY job ORDER BY total DESC";
+	
+	$objQuery = new SC_Query();
+	$objPage->arrResults = $objQuery->getall($sql, $arrval);
+			
+	$max = count($objPage->arrResults);
+	for($i = 0; $i < $max; $i++) {
+		$job_key = $objPage->arrResults[$i]['job'];
+		if($job_key != "") {
+			$objPage->arrResults[$i]['job_name'] = $arrJob[$job_key];
 		} else {
-			$arrErr['all'] = ">> " . $objDB->message;
-			gfPrintLog($objDB->userinfo, "./temp/install.log");
-		}
-	}
-	return $arrErr;
-}
-
-// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎºîÀ®
-function lfMakeConfigFile() {
-	global $objWebParam;
-	global $objDBParam;
-	global $port;
-	
-	$filepath = $objWebParam->getValue('install_dir') . "/html/install.inc";
-	$domain = $objWebParam->getValue('domain');
-	if(!ereg("^\.", $domain)) {
-		$domain = "." . $domain;
-	}
-	
-	$root_dir = $objWebParam->getValue('install_dir');
-	if (!ereg("/$", $root_dir)) {
-		$root_dir = $root_dir . "/";
-	}
-	
-	$config_data = 
-	"<?php\n".
-	"    define ('ECCUBE_INSTALL', 'ON');\n" .
-	"    define ('ROOT_DIR', '" . $root_dir . "');\n" . 
-	"    define ('SITE_URL', '" . $objWebParam->getValue('normal_url') . "');\n" .
-	"    define ('SSL_URL', '" . $objWebParam->getValue('secure_url') . "');\n" .
-	"    define ('DOMAIN_NAME', '" . $domain . "');\n" .
-	"    define ('DB_TYPE', '" . $objDBParam->getValue('db_type') . "');\n" .
-	"    define ('DB_USER', '" . $objDBParam->getValue('db_user') . "');\n" . 
-	"    define ('DB_PASSWORD', '" . $objDBParam->getValue('db_password') . "');\n" .
-	"    define ('DB_SERVER', '" . $objDBParam->getValue('db_server') . "');\n" .
-	"    define ('DB_NAME', '" . $objDBParam->getValue('db_name') . "');\n" .
-	"    define ('DB_PORT', '" . $port . "');\n" .
-	"?>";
-	
-	if($fp = fopen($filepath,"w")) {
-		fwrite($fp, $config_data);
-		fclose($fp);
-	}
-}
-
-// ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òºÆµ¢Åª¤Ë¥³¥Ô¡¼
-function lfCopyDir($src, $des, $mess, $override = false){
-	if(!is_dir($src)){
-		return false;
-	}
-
-	$oldmask = umask(0);
-	$mod= stat($src);
-	
-	// ¥Ç¥£¥ì¥¯¥È¥ê¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë
-	if(!file_exists($des)) {
-		mkdir($des, $mod[2]);
-	}
-	
-	$fileArray=glob( $src."*" );
-	foreach( $fileArray as $key => $data_ ){
-		// CVS´ÉÍý¥Õ¥¡¥¤¥ë¤Ï¥³¥Ô¡¼¤·¤Ê¤¤
-		if(ereg("/CVS/Entries", $data_)) {
-			break;
-		}
-		if(ereg("/CVS/Repository", $data_)) {
-			break;
-		}
-		if(ereg("/CVS/Root", $data_)) {
-			break;
-		}
-		
-		mb_ereg("^(.*[\/])(.*)",$data_, $matches);
-		$data=$matches[2];
-		if( is_dir( $data_ ) ){
-			$mess = lfCopyDir( $data_.'/', $des.$data.'/', $mess);
-		}else{
-			if(!$override && file_exists($des.$data)) {
-				$mess.= $des.$data . "¡§¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤¹\n";
+			$objPage->arrResults[$i]['job_name'] = "Ì¤²óÅú";
+		}
+	}
+	
+	// ±ß¥°¥é¥Õ¤ÎÀ¸À®	
+	if($graph) {
+		$image_key = "job_" . $type;
+		$objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "job_name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate);
+	}
+	
+	return $objPage;
+}
+
+/** Ç¯ÂåÊÌ½¸·× **/
+function lfGetOrderAge($type, $sdate, $edate, $objPage, $graph = true) {
+
+	list($where, $arrval) = lfGetWhereMember('order_date', $sdate, $edate, $type, "member");
+	
+	$sql = "SELECT SUM(order_count) AS order_count, SUM(total) AS total, start_age, end_age ";
+	$sql.= "FROM dtb_bat_order_daily_age WHERE $where ";
+	$sql.= "GROUP BY start_age, end_age ORDER BY start_age, end_age";
+
+	$objQuery = new SC_Query();
+	$objPage->arrResults = $objQuery->getall($sql, $arrval);
+	
+	$max = count($objPage->arrResults);
+	for($i = 0; $i < $max; $i++) {
+		if($objPage->arrResults[$i]['order_count'] > 0) {
+			$objPage->arrResults[$i]['total_average'] = intval($objPage->arrResults[$i]['total'] / $objPage->arrResults[$i]['order_count']);
+		}	
+		$start_age = $objPage->arrResults[$i]['start_age'];
+		$end_age = $objPage->arrResults[$i]['end_age'];
+		if($start_age != "" || $end_age != "") {
+			if($end_age != 999) {
+				$objPage->arrResults[$i]['age_name'] = $start_age . "¡Á" . $end_age . "ºÐ";
 			} else {
-				if(@copy( $data_, $des.$data)) {
-					$mess.= $des.$data . "¡§¥³¥Ô¡¼À®¸ù\n";
-				} else {
-					$mess.= $des.$data . "¡§¥³¥Ô¡¼¼ºÇÔ\n";
-				}
-			}
-			$mod=stat($data_ );
-		}
-	}
-	umask($oldmask);
-	return $mess;
-}
+				$objPage->arrResults[$i]['age_name'] = $start_age . "ºÐ¡Á";
+			}
+		} else {
+			$objPage->arrResults[$i]['age_name'] = "Ì¤²óÅú";
+		}
+	}
+	
+	// ËÀ¥°¥é¥Õ¤ÎÀ¸À®
+	if($graph) {
+		$image_key = "age_" . $type;
+		$xtitle = "(Ç¯Îð)";
+		$ytitle = "(Çä¾å¹ç·×)";
+		$objPage->tpl_image = lfGetGraphBar($objPage->arrResults, "age_name", $image_key, $xtitle, $ytitle, $sdate, $edate);
+	}
+	
+	return $objPage;
+}
+
+/** ´ü´ÖÊÌ½¸·× **/
+function lfGetOrderTerm($type, $sdate, $edate, $objPage, $graph = true) {
+		
+		$tmp_col = "sum(total_order) as total_order, sum(men) as men, sum(women) as women,";
+		$tmp_col.= "sum(men_member) as men_member, sum(men_nonmember) as men_nonmember,";
+		$tmp_col.= "sum(women_member) as women_member, sum(women_nonmember) as women_nonmember,";
+		$tmp_col.= "sum(total) as total, (avg(total_average)) as total_average";
+		$objQuery = new SC_Query();
+		
+		switch($type) {
+		// ·îÊÌ
+		case 'month':
+			$col = $tmp_col . ",key_month";
+			$objQuery->setgroupby("key_month");
+			$objQuery->setOrder("key_month");
+			$objPage->keyname = "key_month";
+			$objPage->tpl_tail = "·î";
+			$from = "dtb_bat_order_daily";
+			$xtitle = "(·îÊÌ)";
+			$ytitle = "(Çä¾å¹ç·×)";
+			break;
+		// Ç¯ÊÌ
+		case 'year':
+			$col = $tmp_col . ",key_year";
+			$objQuery->setgroupby("key_year");
+			$objQuery->setOrder("key_year");
+			$objPage->keyname = "key_year";
+			$objPage->tpl_tail = "Ç¯";
+			$from = "dtb_bat_order_daily";
+			$xtitle = "(Ç¯ÊÌ)";
+			$ytitle = "(Çä¾å¹ç·×)";
+			break;
+		// ÍËÆüÊÌ
+		case 'wday':
+			$col = $tmp_col . ",key_wday, wday";
+			$objQuery->setgroupby("key_wday, wday");
+			$objQuery->setOrder("wday");
+			$objPage->keyname = "key_wday";
+			$objPage->tpl_tail = "ÍËÆü";
+			$from = "dtb_bat_order_daily";
+			$xtitle = "(ÍËÆüÊÌ)";
+			$ytitle = "(Çä¾å¹ç·×)";
+			break;
+		// »þ´ÖÊÌ
+		case 'hour':
+			$col = $tmp_col . ",hour";
+			$objQuery->setgroupby("hour");
+			$objQuery->setOrder("hour");
+			$objPage->keyname = "hour";
+			$objPage->tpl_tail = "»þ";
+			$from = "dtb_bat_order_daily_hour";
+			$xtitle = "(»þ´ÖÊÌ)";
+			$ytitle = "(Çä¾å¹ç·×)";
+			break;
+		default:
+			$col = "*";
+			$objQuery->setOrder("key_day");
+			$objPage->keyname = "key_day";
+			$from = "dtb_bat_order_daily";
+			$xtitle = "(ÆüÊÌ)";
+			$ytitle = "(Çä¾å¹ç·×)";
+			break;
+		}
+		
+
+	// ¼èÆÀÆüÉÕ¤Î»ØÄê
+		if($sdate != "") {
+			if ($where != "") {
+				$where.= " AND ";
+			}			
+			$where.= " order_date >= '". $sdate ."'";
+		}
+		
+		if($edate != "") {
+			if ($where != "") {
+				$where.= " AND ";
+			}
+			$edate = date("Y/m/d",strtotime("1 day" ,strtotime($edate)));
+			$where.= " order_date < date('" . $edate ."')";
+		}
+		
+		// ¸¡º÷·ë²Ì¤Î¼èÆÀ
+		$objPage->arrResults = $objQuery->select($col, $from, $where, $arrval);
+		
+		// ÀÞ¤ìÀþ¥°¥é¥Õ¤ÎÀ¸À®	
+		if($graph) {
+			$image_key = "term_" . $type;
+			$objPage->tpl_image = lfGetGraphLine($objPage->arrResults, $objPage->keyname, $image_key, $xtitle, $ytitle, $sdate, $edate);
+		}
+		
+		// ¸¡º÷·ë²Ì¤¬0¤Ç¤Ê¤¤¾ì¹ç
+		if(count($objPage->arrResults) > 0) {
+			// ºÇ½ª½¸·×¹Ô¼èÆÀ¤¹¤ë
+			$col = $tmp_col;
+			$objQuery = new SC_Query();
+			$arrRet = $objQuery->select($col, $from, $where, $arrval);
+			$arrRet[0][$objPage->keyname] = "¹ç·×";
+			$objPage->arrResults[] = $arrRet[0];
+		}
+
+		// Ê¿¶ÑÃÍ¤Î·×»»
+		$max = count($objPage->arrResults);
+		for($i = 0; $i < $max; $i++) {
+			if($objPage->arrResults[$i]['total_order'] > 0) {
+				$objPage->arrResults[$i]['total_average'] = intval($objPage->arrResults[$i]['total'] / $objPage->arrResults[$i]['total_order']);
+			}
+		}
+		
+		return $objPage;
+}
+
 ?>
Index: /temp/trunk/html/admin/system/bkup.php
===================================================================
--- /temp/trunk/html/admin/system/bkup.php	(revision 5553)
+++ /temp/trunk/html/admin/system/bkup.php	(revision 5554)
@@ -42,5 +42,4 @@
 		lfUpdBkupData($_POST);
 	}
-	
 
 	break;
@@ -191,5 +190,4 @@
 	$sql = "INSERT INTO dtb_bkup (bkup_name,create_date) values (?,now())";
 	$objQuery->query($sql, array($data['bkup_name']));
-	
 }
 
Index: /temp/trunk/data/class/SC_Query.php
===================================================================
--- /temp/trunk/data/class/SC_Query.php	(revision 4935)
+++ /temp/trunk/data/class/SC_Query.php	(revision 5554)
@@ -357,4 +357,17 @@
 	}
 	
+	function curval($table, $colname) {
+		$sql = "";
+		if (DB_TYPE == "pgsql") {
+			$seqtable = $table . "_" . $colname . "_seq";
+			$sql = "SELECT CURTVAL('$seqtable')";
+		}else if (DB_TYPE == "mysql") {
+			$sql = "SELECT last_insert_id();";
+		}
+		$ret = $this->conn->getOne($sql);
+		
+		return $ret;
+	}	
+	
 	function query($n ,$arr = "", $ignore_err = false){
 		$result = $this->conn->query($n, $arr, $ignore_err);
