- ESC/POS QR 영수증 인쇄 함수 추가 (pos_qr_printer.py) - QR 코드 이미지를 ESC/POS 비트맵 래스터로 변환 - 150x150px QR 코드 + 거래 정보 텍스트 인쇄 - EUC-KR 인코딩으로 한글 지원 - TCP 소켓으로 프린터 전송 - POS GUI에 프린터 선택 토글 버튼 추가 - 🖨️ Zebra 라벨 ⇄ 🖨️ POS 영수증 전환 - POS 모드 시 설정 버튼 표시 (IP/포트 설정) - 미리보기 모드는 Zebra 전용 - POSSettingsDialog 재사용 (pos_thermal.py 연동) - config.json에 POS 프린터 설정 저장 - 테스트 인쇄 기능 활용 - QRGeneratorThread 프린터 모드 지원 - printer_mode 매개변수 추가 ('zebra' or 'pos') - pos_config 설정 전달 - 프린터별 분기 처리 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| pos_sales_gui.py | ||
| README.md | ||
| requirements.txt | ||
POS 판매 조회 GUI
PyQt5 기반 POS 판매 내역 조회 프로그램
기능
- 날짜별 판매 내역 조회
- 실시간 총 매출 집계
- 판매 상세 품목 조회 (더블클릭)
- QR 생성 및 라벨 인쇄
- 적립 정보 실시간 표시 (Flask app.py 연동)
실행 방법
# 의존성 설치
pip install -r requirements.txt
# GUI 실행
python pos_sales_gui.py
데이터베이스 연결
MSSQL
PM_PRES 데이터베이스에 연결합니다.
- SALE_MAIN: 판매 헤더
- SALE_SUB: 판매 상세
SQLite
mileage.db 데이터베이스에 연결합니다.
- claim_tokens: QR 토큰 정보
- users: 적립 사용자 정보
연결 설정은 ../db/dbsetup.py에서 관리됩니다.
Flask 웹 서버 연동
필수 사전 실행
이 GUI를 사용하기 전에 Flask 웹 서버(app.py)를 먼저 실행해야 합니다.
# 1단계: Flask 서버 실행 (필수)
cd backend
python app.py
# 2단계: POS GUI 실행
cd backend/gui
python pos_sales_gui.py
연계 흐름
1. POS GUI에서 판매 내역 조회
↓
2. QR 생성 버튼 클릭
↓
3. SQLite에 claim_token 저장
↓
4. QR 라벨 인쇄
↓
5. 고객이 QR 스캔 → Flask 웹 페이지 접속
↓
6. 전화번호 + 이름 입력 → 적립 완료
↓
7. POS GUI에서 적립 정보 실시간 확인 (적립자명, 포인트)
주요 기능
QR 생성
- 선택한 판매 내역에 대해 QR 코드 생성
- claim_token을 SQLite에 저장
- Zebra 프린터로 라벨 인쇄
적립 정보 표시
- 판매 내역 테이블에 적립 상태 표시
- 적립 완료 시 사용자 정보 표시 (이름, 전화번호, 포인트)
스크린샷
┌─────────────────────────────────────────────────┐
│ POS 판매 조회 [_] [□] [X] │
├─────────────────────────────────────────────────┤
│ 날짜: [2026-01-23] [새로고침] [QR 생성] │
├─────────────────────────────────────────────────┤
│ 주문번호 시간 금액 고객명 품목수 │
│ 20260123000042 14:30 45,000원 김철수 3 │
│ 20260123000041 14:15 12,000원 [비고객] 1 │
├─────────────────────────────────────────────────┤
│ 상태: 3건 조회 완료 | 총 매출: 125,500원 │
└─────────────────────────────────────────────────┘