From 30abf18e95ab374b0a5b053cbc6ca4ae3291d547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=8B=9C=EA=B3=A8=EC=95=BD=EC=82=AC?= Date: Fri, 23 Jan 2026 16:46:07 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20POS=20GUI=20=EC=A0=81=EB=A6=BD=EC=9E=90?= =?UTF-8?q?=20=EC=A0=95=EB=B3=B4=20=EC=BB=AC=EB=9F=BC=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - '적립 사용자' 단일 컬럼을 '적립자명'과 '전화번호' 2개 컬럼으로 분리 - 각 컬럼에 녹색 볼드 텍스트 스타일 유지 - 테이블 컬럼 수: 6개 → 7개 - 윈도우 너비: 1100px → 1200px Co-Authored-By: Claude Sonnet 4.5 --- backend/gui/pos_sales_gui.py | 43 +++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/backend/gui/pos_sales_gui.py b/backend/gui/pos_sales_gui.py index c3d3372..5161814 100644 --- a/backend/gui/pos_sales_gui.py +++ b/backend/gui/pos_sales_gui.py @@ -90,11 +90,13 @@ class SalesQueryThread(QThread): """, (order_no,)) claimed_user = sqlite_cursor.fetchone() - # 적립 사용자 정보 포맷팅 + # 적립 사용자 정보 분리 if claimed_user and claimed_user['nickname'] and claimed_user['phone']: - claimed_info = f"{claimed_user['nickname']} ({claimed_user['phone']})" + claimed_name = claimed_user['nickname'] + claimed_phone = claimed_user['phone'] else: - claimed_info = "" + claimed_name = "" + claimed_phone = "" sales_list.append({ 'order_no': order_no, @@ -102,7 +104,8 @@ class SalesQueryThread(QThread): 'amount': float(sale_amount) if sale_amount else 0.0, 'customer': customer, 'item_count': item_count, - 'claimed_user': claimed_info + 'claimed_name': claimed_name, + 'claimed_phone': claimed_phone }) self.query_complete.emit(sales_list) @@ -373,7 +376,7 @@ class POSSalesGUI(QMainWindow): def init_ui(self): """UI 초기화""" self.setWindowTitle('POS 판매 조회') - self.setGeometry(100, 100, 1100, 600) + self.setGeometry(100, 100, 1200, 600) # 중앙 위젯 central_widget = QWidget() @@ -427,16 +430,17 @@ class POSSalesGUI(QMainWindow): sales_group.setLayout(sales_layout) self.sales_table = QTableWidget() - self.sales_table.setColumnCount(6) + self.sales_table.setColumnCount(7) self.sales_table.setHorizontalHeaderLabels([ - '주문번호', '시간', '금액', '고객명', '품목수', '적립 사용자' + '주문번호', '시간', '금액', '고객명', '품목수', '적립자명', '전화번호' ]) self.sales_table.setColumnWidth(0, 160) self.sales_table.setColumnWidth(1, 70) self.sales_table.setColumnWidth(2, 110) self.sales_table.setColumnWidth(3, 100) self.sales_table.setColumnWidth(4, 70) - self.sales_table.setColumnWidth(5, 180) + self.sales_table.setColumnWidth(5, 100) + self.sales_table.setColumnWidth(6, 120) self.sales_table.setSelectionBehavior(QTableWidget.SelectRows) self.sales_table.doubleClicked.connect(self.show_sale_detail) @@ -531,15 +535,24 @@ class POSSalesGUI(QMainWindow): count_item.setTextAlignment(Qt.AlignCenter) self.sales_table.setItem(row, 4, count_item) - # 적립 사용자 (SQLite) - claimed_item = QTableWidgetItem(sale['claimed_user']) - if sale['claimed_user']: - from PyQt5.QtGui import QColor, QFont - claimed_item.setForeground(QColor('#4CAF50')) + # 적립자명 (SQLite) + from PyQt5.QtGui import QColor, QFont + claimed_name_item = QTableWidgetItem(sale['claimed_name']) + if sale['claimed_name']: + claimed_name_item.setForeground(QColor('#4CAF50')) font = QFont() font.setBold(True) - claimed_item.setFont(font) - self.sales_table.setItem(row, 5, claimed_item) + claimed_name_item.setFont(font) + self.sales_table.setItem(row, 5, claimed_name_item) + + # 전화번호 (SQLite) + claimed_phone_item = QTableWidgetItem(sale['claimed_phone']) + if sale['claimed_phone']: + claimed_phone_item.setForeground(QColor('#4CAF50')) + font = QFont() + font.setBold(True) + claimed_phone_item.setFont(font) + self.sales_table.setItem(row, 6, claimed_phone_item) def on_query_error(self, error_msg): """DB 조회 에러 처리"""