선납권 충전 / 사용¶
이 페이지에서 찾을 수 있는 것
선납권 / 선납금 / 선수납 / 충전 / 사용 / 환불 / 가족 대납 / 잔액 확인 / Standard / Gold / VIP / 등급
선납권(prepaid package)을 환자가 구매하고, 진료비 결제 시 선납금/포인트로 차감하는 흐름입니다. 수납 관점의 매뉴얼이며, 진료실 관점(차트 좌측 패키지 영역)은 패키지/선납권을 참조하세요.
핵심 정책 요약¶
선납권 = 패키지 통합
- 선납권 구매 시 차트는 만들지 않습니다 (이중 매출 방지)
- 진료비 결제 시 포인트 우선 차감 → 선납금
- 환불 시 포인트 전액 삭제 + 사용 시술 정가 차감
- 가족 대납(어머니 선납권 → 자녀 결제) 지원
등급 (3단계)¶
| 등급 | 충전액 | 보너스 포인트 | 총 사용 가능 |
|---|---|---|---|
| Standard (파란색 카드) | 2,000,000원 | 200,000원 (10%) | 2,200,000원 |
| Gold (노란색 카드) | 3,000,000원 | 360,000원 (12%) | 3,360,000원 |
| VIP (보라색 카드) | 5,000,000원 | 750,000원 (15%) | 5,750,000원 |
→ 등급별 색상으로 시각적 구분 (구매 팝업).
자주 쓰는 동작¶
시나리오 1 — 선납권 신규 구매¶
환자가 Standard 200만원 구매
- 환자 차트 또는 현황판 → 우클릭 → "선납권 구매" 메뉴
- 별도 팝업(
/popup/prepaid-purchase/:patientId) 자동 열림 - Standard / Gold / VIP 카드 중 선택
- "구매 확정" 버튼 →
pending_payment상태 생성 - 자동으로 수납 팝업 오픈
- 결제 수단 선택 (카드 200만원) → 결제 처리
- PG/VAN 카드 승인 완료
- 시스템 자동:
paymentsINSERT (200만원, 매출 인식)patient_packages.status = 'active'patient_prepaid_balance.prepaid_balance+= 2,000,000- 자동 보너스 포인트:
point_balance+= 200,000 - 당일 미수 자동 차감 (있으면 자동 정리)
- "선납권 결제 완료! 선납금과 포인트가 충전되었습니다" 알림
시나리오 2 — 선납권으로 진료비 결제¶
보유 잔액에서 진료비 차감
- 차트 입력 + 저장 (예: 슈링크 39,000원)
- 수납 팝업 진입 → 미수처리 탭
- 결제 수단 행 중 "선납권" 또는 "포인트" 선택, 39,000원 입력
- 자동 차감 (포인트 우선):
- 포인트 잔액 충분: 포인트에서 39,000원 차감
- 포인트 부족: 부족분만 선납금에서 차감
payments테이블에 INSERT 안 됨 (이중매출 방지)patient_prepaidusage 이력만 기록- 차트 paid_amount 자동 갱신 + reservation 수납완료 자동 전환
시나리오 3 — 선수납 결제/내역 탭에서 잔액 확인¶
환자 보유 선납금 잔액 보기
- 환자 검색 → 우클릭 → 수납/미수 → 수납 팝업
- "선수납 결제/내역" 탭 클릭
- 상단: 현재 잔액 + 만료일 표시
- 하단: 거래 이력 (충전 / 사용 / 환불 / 취소복원)
| 컬럼 | 의미 |
|---|---|
| 일자 | 거래 일자 |
| 구분 | deposit / usage / refund / reversal / expire |
| 금액 | 거래 금액 |
| 잔액 | 거래 후 잔액 |
| 메모 | "선납권 Standard 충전" 등 |
| 취소 | 잘못 입력 시 취소 버튼 (level 4 OK) |
시나리오 4 — 가족 대납 (어머니 선납권으로 자녀 결제)¶
다른 환자 선납금으로 결제
- 자녀 차트 → 수납 팝업 → 미수처리 탭
- "가족선납권조회" 버튼 클릭
- 어머니 환자 검색 → 어머니 보유 선납금 표시
- 어머니 선납금에서 자녀 진료비 차감
- 어머니의
patient_prepaidusage 이력에 "자녀 진료비" 메모와 함께 기록 - 자녀 차트의 paid_amount는 정상 갱신
→ 가족 관계는 등록되어 있지 않아도 환자 검색으로 가능. 단 환자 동의 필요.
시나리오 5 — 잘못된 사용 이력 취소¶
실수로 차감한 선납권 복원
- 환자 검색 → 수납 팝업 → 선수납 결제/내역 탭
- 잘못 입력된 사용 이력 우측 "취소" 버튼
- 자동 처리:
patient_prepaid.is_cancelled = 1(soft delete)- 잔액 자동 복원 (+사용액)
- 정합성 봇 4번 "잔액 마이너스" 알림 자동 정리
- 정상 환불 이력은 절대 취소하지 마세요.
시나리오 6 — 선납권 환불¶
Standard 200만 충전, 일부 사용 후 환불
환불 정책 (work-item 04-07 정책):
- 차트 또는 환자 검색 → 패키지/선납권 탭 → Standard → "환불" 버튼
- 시스템 자동 계산:
- 포인트 전액 삭제 (200,000 → 0)
- 사용한 시술은 정가 차감 (할인 받은 가격이 아닌 정가 기준)
- 예: 슈링크 1000샷 정가 95,000 × 5회 = 475,000 차감
- 환불액 = 선납금 잔액 - 시술 정가
- 예: 충전 200만 - 사용 5회 정가 47.5만 = 환불 152.5만원
- 환불 결제 수단 선택 (현금/카드 환불)
- 처리 완료:
patient_prepaidrefund 이력 INSERTpaymentsINSERT (is_refund=1, refund_amount)patient_packages.status = 'cancelled'- 잔액 0으로 초기화
→ 환자에게 미리 환불 정책 안내 부탁드립니다.
자동 처리 로직¶
충전 시¶
- PG/VAN 결제 승인
paymentsINSERT (매출 인식)patient_packages.status = 'active'patient_prepaid_balance충전액 + 보너스 포인트 추가- 당일 미수 자동 차감 (있으면 자동 정리)
patient_prepaiddeposit 이력 INSERT
사용 시 (포인트 우선)¶
- 포인트 잔액 ≥ 결제액 → 포인트에서 전액 차감
- 포인트 < 결제액 → 포인트 전액 + 선납금에서 부족분 차감
patient_prepaidusage 이력 INSERT (category='point' 또는 'prepaid')patient_prepaid_balance잔액 갱신paymentsINSERT 안 함 (이중매출 방지)- 차트 paid_amount 자동 갱신
환불 시¶
- 포인트 전액 삭제 (
patient_prepaidexpire 또는 refund) - 사용 시술 정가 차감 계산
- 환불액 = 잔액 - 시술 정가
paymentsINSERT (is_refund=1)- 잔액 0으로 초기화
- patient_packages.status = 'cancelled'
권한별 차이¶
| 기능 | 권한 |
|---|---|
| 선납권 구매 등록 | 🟢 모든 직원 |
| 선납권으로 진료비 결제 (사용) | 🟢 모든 직원 |
| 사용 이력 취소 | 🟢 모든 직원 (level 4 OK) |
| 선납권 환불 | 🟢 모든 직원 |
| 가족 대납 (가족선납권조회) | 🟢 모든 직원 |
| 선납권 패키지 마스터 추가/수정 (Standard/Gold/VIP 가격 변경 등) | 🔴 Level 1~2 (병원 설정) |
자동 검증 (정합성)¶
선납권 관련 정합성 봇 알림:
| 검사 번호 | 내용 | 처리 |
|---|---|---|
| 4 | 선납금/포인트 잔액 마이너스 | 잘못된 사용/환불 이력 "취소" 클릭 |
| 8 | 선납권 잔액 불일치 (캐시 vs 이력) | 🔴 #dev 문의 (이력 정정 동반) |
| 13 | 차트에 선납권 패키지 혼입 | 차트에서 "선납권 Standard" 등 오더 삭제 |
| 15 | 선납권 차감했는데 시술 기록 없음 | 차트에 시술 항목 추가 또는 사용 취소 |
→ 정합성 점검 처리 참조.
자주 발생하는 문제 / FAQ¶
Q1. 선납권 구매했는데 차트에 "선납권 Standard" 오더로 추가했어요. A. 잘못된 흐름입니다. 매출 이중집계됩니다 (구매 결제 + 차트 청구액). 정합성 봇 13번 "차트에 선납권 패키지 혼입"에 잡힙니다. → 차트에서 선납권 오더 삭제 + 선납권 구매는 우클릭 메뉴 "선납권 구매" 팝업으로 진행.
Q2. 충전했는데 잔액이 안 늘었어요.
A. PG/VAN 결제가 정상 승인됐는지 확인. 승인 실패 시 충전 안 됩니다. 또는 pending_payment 상태 그대로 남아있을 수 있으니 #dev 문의.
Q3. 환불 금액이 너무 적어요. A. 환불 정책상 사용한 시술은 정가로 차감됩니다. 200만 충전 + 정가 50만 시술 받았으면 환불은 150만 (할인 받은 가격이 아닌 정가). 환자 미리 안내 부탁드립니다.
Q4. 잔액이 마이너스로 나와요. A. 정합성 봇 4번에 잡힙니다. 선수납 결제/내역 탭에서 잘못된 사용 이력 "취소" 클릭하여 잔액 0 이상으로 정상화.
Q5. 가족 선납권으로 결제하고 싶은데 가족 정보가 등록 안 되어 있어요. A. 가족 관계 사전 등록 불필요. 환자 검색으로 가족 환자 찾고 "가족선납권조회"로 진행. 단 환자(가족) 동의 필요.
Q6. 포인트와 선납금 중 어느 쪽이 먼저 차감되나요? A. 포인트 우선 차감 (2026-04-07 정책 변경). 포인트 잔액 부족 시 부족분만 선납금에서 차감.
Q7. 만료된 선납권은 어떻게 되나요?
A. 시스템상 만료되면 자동으로 사용 불가 처리되며 patient_prepaid expire 이력 생성. 만료 전 환불 권장.
Q8. 선납권 구매 시 자동 미수 차감은 어떻게 동작하나요? A. 충전 시점에 환자에게 미수가 있으면 보유 잔액에서 자동으로 차감하여 미수 정리. 직원이 별도 처리할 필요 없음.
Q9. 선납권으로 결제했는데 매출 통계에서 안 보여요.
A. 선납권 사용은 payments에 INSERT 안 되므로 일일결산의 "수납" 컬럼에는 안 나옵니다. 단 차트의 paid_amount는 갱신되고, 매출 청구액은 그대로 잡힙니다 (충전 시점에 매출 인식 완료).
Q10. 동일 환자가 Standard 여러 번 구매할 수 있나요? A. 가능합니다. 각 구매마다 별도 patient_packages 행으로 관리됩니다.
관련 페이지¶
- 패키지/선납권 (진료 관점) — 차트 좌측 패키지 보유 영역, 사용 모달
- 수납 처리 — 일반 결제 흐름
- 환불 처리 — 일반 결제 환불 (선납권은 별도 흐름)
- 차트(진료실) — 선납권으로 차감 결제 후 차트 자동 갱신
- 정합성 점검 처리 — 4/8/13/15번 알림 대응