견적서 시스템 기능 테스트";
// 1. 데이터베이스 테이블 확인
echo "
1. 데이터베이스 테이블 확인
";
$tables_to_check = ['order_config', 'order_mail_templates', 'order_sms_templates', 'estimate'];
foreach ($tables_to_check as $table) {
$full_table_name = ($table === 'estimate') ? $table : G5_TABLE_PREFIX . $table;
$result = sql_query("SHOW TABLES LIKE '{$full_table_name}'", false);
if ($result && sql_num_rows($result) > 0) {
echo "✓ {$table} 테이블 존재
";
// 데이터 개수 확인
$count_result = sql_query("SELECT COUNT(*) as cnt FROM {$full_table_name}", false);
if ($count_result) {
$count_row = sql_fetch_array($count_result);
echo "- 데이터 개수: {$count_row['cnt']}개
";
}
} else {
echo "✗ {$table} 테이블 없음
";
}
}
// 2. notification_helper.php 함수 테스트
echo "2. 알림 시스템 함수 테스트
";
include_once G5_LIB_PATH . '/notification_helper.php';
// get_order_config 함수 테스트
$timer_enabled = get_order_config('timer_enabled', '1');
$visit_fee = get_order_config('expert_visit_fee', '50000');
echo "타이머 활성화: " . ($timer_enabled ? '예' : '아니오') . "
";
echo "전문가 방문 비용: " . number_format($visit_fee) . "원
";
// 3. 템플릿 시스템 테스트
echo "3. 템플릿 시스템 테스트
";
$mail_templates = sql_query("SELECT template_key, template_name FROM order_mail_templates LIMIT 5");
if ($mail_templates && sql_num_rows($mail_templates) > 0) {
echo "✓ 메일 템플릿 로드 성공
";
echo "";
while ($row = sql_fetch_array($mail_templates)) {
echo "- {$row['template_key']}: {$row['template_name']}
";
}
echo "
";
} else {
echo "✗ 메일 템플릿 없음
";
}
$sms_templates = sql_query("SELECT template_key, template_name FROM order_sms_templates LIMIT 5");
if ($sms_templates && sql_num_rows($sms_templates) > 0) {
echo "✓ SMS 템플릿 로드 성공
";
echo "";
while ($row = sql_fetch_array($sms_templates)) {
echo "- {$row['template_key']}: {$row['template_name']}
";
}
echo "
";
} else {
echo "✗ SMS 템플릿 없음
";
}
// 4. estimate 테이블 구조 확인
echo "4. estimate 테이블 구조 확인
";
$result = sql_query("DESCRIBE estimate", false);
if ($result) {
echo "";
echo "| 컬럼명 | 타입 | 설명 |
";
while ($row = sql_fetch_array($result)) {
$description = '';
if (strpos($row['Field'], 'temp_') === 0) {
switch ($row['Field']) {
case 'temp_1':
$description = '전문가 방문 요청 여부 (Y/N)';
break;
case 'temp_2':
$description = '전문가 방문 상태';
break;
case 'temp_3':
$description = '전문가 방문 비용';
break;
case 'temp_4':
$description = '전문가 방문 일정';
break;
case 'temp_5':
$description = '전문가 방문 메모';
break;
}
} elseif (strpos($row['Field'], 'extra_') === 0) {
switch ($row['Field']) {
case 'extra_1':
$description = '고객 연락처';
break;
case 'extra_2':
$description = '결제 상태';
break;
case 'extra_3':
$description = '추가 요청사항';
break;
case 'extra_4':
$description = '관리자 메모';
break;
case 'extra_5':
$description = '예비 필드';
break;
}
}
echo "| {$row['Field']} | {$row['Type']} | {$description} |
";
}
echo "
";
} else {
echo "✗ estimate 테이블 구조 확인 실패
";
}
// 5. 24시간 타이머 계산 테스트
echo "5. 24시간 타이머 계산 테스트
";
$now = time();
$test_time = date('Y-m-d H:i:s', $now - 3600); // 1시간 전
$test_timestamp = strtotime($test_time);
$elapsed = $now - $test_timestamp;
$limit_seconds = 24 * 60 * 60; // 24시간
$remain = $limit_seconds - $elapsed;
echo "현재 시간: " . date('Y-m-d H:i:s', $now) . "
";
echo "테스트 시작 시간: {$test_time}
";
echo "경과 시간: " . gmdate('H:i:s', $elapsed) . "
";
echo "남은 시간: " . gmdate('H:i:s', $remain) . "
";
echo "타이머 활성화: " . ($remain > 0 ? '예' : '아니오') . "
";
echo "
";
echo "테스트 완료
";
echo "데이터베이스 업데이트 실행
";
echo "시스템 설정 관리
";
echo "전문가 방문 관리
";
echo "메일 템플릿 관리
";
echo "SMS 템플릿 관리
";
?>