치과 예약 시스템

그누보드5 + 영카트5 기반 치과 예약 시스템

문의하기
치과 예약 시스템
Bootstrap JavaScript PHP MySQL

🦷 그누보드5/영카트5 치과 예약 시스템

치과(병원)에 맞게 설계한 예약 솔루션입니다.


✅ 주요 기능

예약 시스템

  • FullCalendar 없이 순수 JS 달력 (그누보드 호환성 극대화)
  • 의사/진료과별 예약
  • 진료항목 선택 → 소요시간·가격 자동 반영
  • 예약 단위: 관리자에서 설정 (10/15/20/30/40/60/90/120분)
  • 점심시간 자동 제외
  • 의사별 개별 휴무 / 병원 전체 휴무 설정
  • 무료 상담은 결제 없이 즉시 확정

결제 (영카트5 연동)

  • 무통장입금
  • PG사: 이니시스 / KCP / LG U+ / 나이스페이 / 토스페이먼츠
  • KCP: orderform.1.php include 방식 (⚠️ 핵심 주의사항)

예약 상태 6단계

pendingconfirmedvisited / no_show / cancelled / admin_cancelled

관리자

  • 예약 목록 (날짜/의사/상태 필터, 키워드 검색)
  • 일괄 처리 (확정/진료완료/취소/미방문) — form POST 방식
  • 진료항목 CRUD
  • 의사별 / 전체 휴무 관리
  • 관리자 메모
  • 결제 상태 수동 변경

📁 파일 구조

/plugin/reserve/
  reserve_lib.php                  # 핵심 라이브러리

/bbs/
  reserve_form.php                 # 예약 폼 (날짜·시간·진료항목 선택)
  reserve_ajax.php                 # AJAX: 시간 슬롯 반환
  reserve_process.php              # 예약 신청 처리
  reserve_payment.php              # 결제 방법 선택
  reserve_payment_pg.php           # PG 결제 요청 ★
  reserve_payment_return.php       # PG 결제 완료 처리
  reserve_payment_bank.php         # 무통장입금 처리
  ...

/adm/reserve_admin/
  install_dental.php               # DB 자동 설치 ★ 설치 후 삭제
  reserve_list.php                 # 관리자 예약 목록
  reserve_view.php                 # 관리자 예약 상세
  reserve_action.php               # 예약 처리 (form POST)
  reserve_config.php               # 기본설정 + 진료항목 + 휴무 관리

/adm/
  admin.menu800.php                # 관리자 메뉴

/skin/board/doctor/
  list.skin.php                    # 의사 선택 프론트

🗄️ 데이터베이스 구조

g5_reserve_config (예약 설정)

rc_key 설명 기본값
checkin_unit 예약 슬롯 단위(분) ← 관리자 변경 가능 30
work_start 진료 시작 시간 09:00
work_end 진료 종료 시간 18:00
lunch_start 점심 시작 13:00
lunch_end 점심 종료 14:00
...

g5_facility (의사/진료실)

컬럼 설명
fa_id 의사 ID
fa_name 의사명
fa_department 진료과
...

g5_dental_service (진료 항목)

컬럼 설명
ds_id 항목 ID
ds_name 진료명
ds_category 분류 (일반/교정/임플란트 등)
...

g5_doctor_service (의사-진료항목 매핑)

컬럼 설명
fa_id 의사 ID
ds_id 진료항목 ID

g5_reserve (예약 정보)

컬럼 설명 풋살장 차이
re_date 예약일 동일
re_time 예약시간 (HH:MM) 동일
re_duration 소요시간(분) 2시간→30분
re_name 예약자명 추가
...

g5_doctor_off (의사별 휴무)

컬럼 설명
fa_id 의사 ID (0=병원 전체)
do_date 휴무일
do_memo 메모

🔧 설치 방법

1. 파일 업로드

위 파일 구조대로 그누보드 루트에 업로드

2. DB 설치

최고관리자 로그인 후 접속:
/adm/reserve_admin/install_dental.php

→ 설치 완료 후 install_dental.php 반드시 삭제

3. 관리자 메뉴 등록

/adm/admin.menu800.php 내용을 기존 메뉴 파일에 병합

4. 게시판 생성

관리자 > 게시판관리
- 게시판ID: doctor
- 스킨: /skin/board/doctor/  적용

5. 영카트5 결제 설정

영카트 관리자 > 쇼핑몰설정 > 결제설정
- PG사 선택 및 API 키 입력
- 무통장입금 계좌: "은행명 계좌번호 예금주" (공백 구분)
  예: "신한은행 110-123-456789 치과의원"

6. 기본 설정

관리자 > 치과 예약 관리 > 기본 설정
- 예약 단위(분) 설정 ← 핵심
- 진료 시간 설정
- 정기 휴무 요일, 공휴일 입력

7. 진료 항목 등록

관리자 > 치과 예약 관리 > 기본 설정 > 진료 항목 탭
- 진료명, 분류, 소요시간, 가격 입력
- 소요시간은 슬롯 단위와 무관하게 독립 설정 가능

💡 예약 흐름

사용자
  ↓ /board.php?bo_table=doctor → 의사 선택
  ↓ reserve_form.php?fa_id=N → 날짜/시간/진료항목 선택
  ↓ reserve_ajax.php → 시간 슬롯 AJAX 로드
  ↓ reserve_process.php (POST) → g5_reserve INSERT (pending)
  ↓ [무료 상담] → 즉시 confirmed + free → reserve_detail.php
  ↓ [유료 진료] → reserve_payment.php → 결제 방법 선택
  ↓ (무통장) → reserve_payment_bank.php → 입금 대기
  ↓ (PG)    → reserve_payment_pg.php → PG 결제창
  ↓           reserve_payment_return.php → confirmed + paid
  ↓ reserve_my.php → 내 예약 목록

지원

댓글 (0)

로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!