콘텐츠로 이동

선납권 충전 / 사용

이 페이지에서 찾을 수 있는 것

선납권 / 선납금 / 선수납 / 충전 / 사용 / 환불 / 가족 대납 / 잔액 확인 / 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만원 구매

  1. 환자 차트 또는 현황판 → 우클릭 → "선납권 구매" 메뉴
  2. 별도 팝업(/popup/prepaid-purchase/:patientId) 자동 열림
  3. Standard / Gold / VIP 카드 중 선택
  4. "구매 확정" 버튼 → pending_payment 상태 생성
  5. 자동으로 수납 팝업 오픈
  6. 결제 수단 선택 (카드 200만원) → 결제 처리
  7. PG/VAN 카드 승인 완료
  8. 시스템 자동:
    • payments INSERT (200만원, 매출 인식)
    • patient_packages.status = 'active'
    • patient_prepaid_balance.prepaid_balance += 2,000,000
    • 자동 보너스 포인트: point_balance += 200,000
    • 당일 미수 자동 차감 (있으면 자동 정리)
  9. "선납권 결제 완료! 선납금과 포인트가 충전되었습니다" 알림

시나리오 2 — 선납권으로 진료비 결제

보유 잔액에서 진료비 차감

  1. 차트 입력 + 저장 (예: 슈링크 39,000원)
  2. 수납 팝업 진입 → 미수처리 탭
  3. 결제 수단 행 중 "선납권" 또는 "포인트" 선택, 39,000원 입력
  4. 자동 차감 (포인트 우선):
    • 포인트 잔액 충분: 포인트에서 39,000원 차감
    • 포인트 부족: 부족분만 선납금에서 차감
  5. payments 테이블에 INSERT 안 됨 (이중매출 방지)
  6. patient_prepaid usage 이력만 기록
  7. 차트 paid_amount 자동 갱신 + reservation 수납완료 자동 전환

시나리오 3 — 선수납 결제/내역 탭에서 잔액 확인

환자 보유 선납금 잔액 보기

  1. 환자 검색 → 우클릭 → 수납/미수 → 수납 팝업
  2. "선수납 결제/내역" 탭 클릭
  3. 상단: 현재 잔액 + 만료일 표시
  4. 하단: 거래 이력 (충전 / 사용 / 환불 / 취소복원)
컬럼 의미
일자 거래 일자
구분 deposit / usage / refund / reversal / expire
금액 거래 금액
잔액 거래 후 잔액
메모 "선납권 Standard 충전" 등
취소 잘못 입력 시 취소 버튼 (level 4 OK)

시나리오 4 — 가족 대납 (어머니 선납권으로 자녀 결제)

다른 환자 선납금으로 결제

  1. 자녀 차트 → 수납 팝업 → 미수처리 탭
  2. "가족선납권조회" 버튼 클릭
  3. 어머니 환자 검색 → 어머니 보유 선납금 표시
  4. 어머니 선납금에서 자녀 진료비 차감
  5. 어머니의 patient_prepaid usage 이력에 "자녀 진료비" 메모와 함께 기록
  6. 자녀 차트의 paid_amount는 정상 갱신

→ 가족 관계는 등록되어 있지 않아도 환자 검색으로 가능. 단 환자 동의 필요.

시나리오 5 — 잘못된 사용 이력 취소

실수로 차감한 선납권 복원

  1. 환자 검색 → 수납 팝업 → 선수납 결제/내역 탭
  2. 잘못 입력된 사용 이력 우측 "취소" 버튼
  3. 자동 처리:
    • patient_prepaid.is_cancelled = 1 (soft delete)
    • 잔액 자동 복원 (+사용액)
    • 정합성 봇 4번 "잔액 마이너스" 알림 자동 정리
  4. 정상 환불 이력은 절대 취소하지 마세요.

시나리오 6 — 선납권 환불

Standard 200만 충전, 일부 사용 후 환불

환불 정책 (work-item 04-07 정책):

  1. 차트 또는 환자 검색 → 패키지/선납권 탭 → Standard → "환불" 버튼
  2. 시스템 자동 계산:
    • 포인트 전액 삭제 (200,000 → 0)
    • 사용한 시술은 정가 차감 (할인 받은 가격이 아닌 정가 기준)
    • 예: 슈링크 1000샷 정가 95,000 × 5회 = 475,000 차감
    • 환불액 = 선납금 잔액 - 시술 정가
    • 예: 충전 200만 - 사용 5회 정가 47.5만 = 환불 152.5만원
  3. 환불 결제 수단 선택 (현금/카드 환불)
  4. 처리 완료:
    • patient_prepaid refund 이력 INSERT
    • payments INSERT (is_refund=1, refund_amount)
    • patient_packages.status = 'cancelled'
    • 잔액 0으로 초기화

환자에게 미리 환불 정책 안내 부탁드립니다.


자동 처리 로직

충전 시

  1. PG/VAN 결제 승인
  2. payments INSERT (매출 인식)
  3. patient_packages.status = 'active'
  4. patient_prepaid_balance 충전액 + 보너스 포인트 추가
  5. 당일 미수 자동 차감 (있으면 자동 정리)
  6. patient_prepaid deposit 이력 INSERT

사용 시 (포인트 우선)

  1. 포인트 잔액 ≥ 결제액 → 포인트에서 전액 차감
  2. 포인트 < 결제액 → 포인트 전액 + 선납금에서 부족분 차감
  3. patient_prepaid usage 이력 INSERT (category='point' 또는 'prepaid')
  4. patient_prepaid_balance 잔액 갱신
  5. payments INSERT 안 함 (이중매출 방지)
  6. 차트 paid_amount 자동 갱신

환불 시

  1. 포인트 전액 삭제 (patient_prepaid expire 또는 refund)
  2. 사용 시술 정가 차감 계산
  3. 환불액 = 잔액 - 시술 정가
  4. payments INSERT (is_refund=1)
  5. 잔액 0으로 초기화
  6. 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 행으로 관리됩니다.


관련 페이지