.# 팜IT3000 (PIT3000) DB 구조

## DB 접속 정보
- **서버**: 192.168.0.101\PM2014 (MSSQL)
- **계정**: sa / tmddls214!%(
- **ODBC**: Driver 18 + `OPENSSL_CONF=/root/person-lookup-web-local/openssl_legacy.conf` 필수
- **코드 위치**: /root/person-lookup-web-local/ (CT 200)

## 데이터베이스 목록
| DB명 | 용도 |
|------|------|
| PM_BASE | 환자 정보, 개인정보, 판매마스터 |
| PM_PRES | 처방전, 판매(SALE), 수납(CD_SUNAB), 키오스크 |
| PM_DRUG | 약품 마스터(CD_GOODS), 창고 거래(WH_sub) |
| PM_DUMS | 재고 관리(INVENTORY, NIMS_REALTIME_INVENTORY) |
| PM_ALIMI | 알림톡, SMS |
| PM_ALDB | 알림 DB |
| PM_EDIRECE/PM_EDISEND | EDI 전자문서 |
| PM_IMAGE | 약품 이미지 |
| PM_JOBLOG | 작업/시스템 로그 |

## 결제(수납) 테이블 구조

### CD_SUNAB (PM_PRES) - 핵심 수납 테이블
건별 결제 내역. PRESERIAL로 처방과 연결.

#### 결제 수단 구분 (금액 기반, 단일 구분 컬럼 없음)
| 구분 | 카드결제 | 현금결제 | 외상/기타 |
|------|---------|---------|----------|
| 조제(ETC, 전문의약품) | `ETC_CARD` | `ETC_CASH` | `ETC_PAPER` |
| OTC(일반의약품) | `OTC_CARD` | `OTC_CASH` | `OTC_PAPER` |

**판별법**: 금액이 0보다 크면 해당 결제수단 사용
- `ETC_CARD=6100, ETC_CASH=0` → 카드결제
- `ETC_CARD=0, ETC_CASH=5100` → 현금결제

#### 카드 관련 컬럼
| 컬럼 | 설명 |
|------|------|
| `PCardName` | 카드사 이름 (KB국민카드, 신한카드 등) |
| `pAPPROVAL_NUM` | 카드 승인번호 |
| `pCARDINMODE` | 카드 입력 방식 |
| `pTRDTYPE` | 거래 유형 (D1 등) |
| `pCHK_GUBUN` | 체크 구분 (TASA=타사, KIC 등) |
| `Appr_Gubun` | 승인 구분 (9=정상승인, A 등) |
| `pCANCEL_NUM` | 취소 승인번호 |
| `CANCEL_DATE` | 취소 일시 |

#### 현금 관련 컬럼
| 컬럼 | 설명 |
|------|------|
| `nCASHINMODE` | 현금영수증 입력 방식 (1 등, 대부분 빈값=미발행) |
| `nAPPROVAL_NUM` | 현금영수증 승인번호 |
| `nCHK_GUBUN` | 현금 체크 구분 (TASA 등) |

#### 카드사 분포 (PCardName)
| 카드사 | 건수 |
|--------|------|
| KB국민카드 | 6,106 |
| NH농협카드 | 5,172 |
| 비씨카드사 | 4,900 |
| 하나카드 | 4,880 |
| 신한카드 | 3,210 |
| 삼성카드사 | 2,100 |
| 현대카드사 | 1,960 |
| 우리카드 | 1,285 |
| 롯데카드사 | 837 |
| 카카오페이 | 57 |
| 모바일상품권 | 11 |

### CD_SELL_MASTE (PM_BASE) - 판매마스터
| 컬럼 | 설명 |
|------|------|
| `CARD_C` | 카드 결제금액 |
| `CHASH_C` | 현금 결제금액 |
| `PAPER_C` | 외상 금액 |
| `P_GUBUN` | 처방 구분 |
| `C_GUBUN` | 고객 구분 |

### SALE_main (PM_PRES) - 판매 메인
| 컬럼 | 설명 |
|------|------|
| `SL_MY_sale` | 판매금액 |
| `SL_MY_credit` | 외상금액 |
| `SL_MY_recive` | 수납금액 |
| `POS_GUBUN` | POS 구분 (빈값=일반, C=카드?, G=기타?) |
| `PRESERIAL` | 처방번호 (CD_SUNAB과 조인 키) |

### KIOSK 테이블 (PM_PRES)
- `KIOSK_MAIN`: 키오스크 처방 접수
- `KIOSK_CARD`: 키오스크 카드결제 (CARD_NM, CARD_NO, APP_NUM 등)
- `KIOSK_CARD_PRES`: 키오스크 카드-처방 연결
- `KIOSK_SUB`: 키오스크 서브

## 주요 조인 관계
- `CD_SUNAB.PRESERIAL` ↔ `SALE_main.PRESERIAL` (수납-판매 연결)
- `CD_SUNAB.CUSCODE` ↔ `CD_PERSON.CUSCODE` (수납-환자 연결, PM_BASE)
- `SALE_main.SL_NO_order` ↔ `SALE_sub.SL_NO_order` (판매 메인-서브)
