146 lines
7.0 KiB
Python
146 lines
7.0 KiB
Python
# gui/order_input_dialog.py (일부 발췌)
|
|
from PySide6.QtWidgets import QDialog, QFormLayout, QLineEdit, QComboBox, QPushButton, QHBoxLayout, QVBoxLayout, QLabel
|
|
from PySide6.QtCore import QSettings
|
|
|
|
class OrderInputDialog(QDialog):
|
|
def __init__(self, logger, parent=None):
|
|
super().__init__(parent)
|
|
self.logger = logger
|
|
self.setWindowTitle("주문정보 입력")
|
|
self.setup_ui()
|
|
self.apply_styles()
|
|
|
|
|
|
order_data = {
|
|
"customer_name": self.customer_name_edit.text().strip(),
|
|
"product_name": self.product_name_edit.text().strip(), # 추가
|
|
"order_market": self.order_market_edit.text().strip(),
|
|
"customer_phone": self.customer_phone_edit.text().strip(),
|
|
"shop_name": self.shop_combo.currentText(),
|
|
"taobao_tracking": self.taobao_tracking_edit.text().strip(),
|
|
"delivery_agent": self.delivery_agent_edit.text().strip(),
|
|
"pre_carrier": self.pre_carrier_edit.text().strip(),
|
|
"domestic_tracking": self.tracking_edit.text().strip(),
|
|
"freight_tracking": self.freight_tracking_edit.text().strip(),
|
|
"cs_memo1": self.cs_memo1_edit.text().strip(),
|
|
"cs_memo2": self.cs_memo2_edit.text().strip(),
|
|
"order_step": None # '선택된 단계번호", # 예: 1 ~ 5
|
|
# 기타 필요한 필드...
|
|
}
|
|
|
|
def setup_ui(self):
|
|
layout = QVBoxLayout(self)
|
|
form_layout = QFormLayout()
|
|
|
|
# 샵 이름 선택 ComboBox 추가
|
|
self.shop_combo = QComboBox()
|
|
self.shop_combo.setToolTip("주문서에 사용할 샵 이름을 선택하세요")
|
|
settings = QSettings("MyCompany", "MySMSApp")
|
|
shop_names = settings.value("shop_names", [])
|
|
if not isinstance(shop_names, list):
|
|
shop_names = [shop_names] if shop_names else []
|
|
self.shop_combo.addItems(shop_names)
|
|
form_layout.addRow("샵 이름:", self.shop_combo)
|
|
|
|
self.customer_name_edit = QLineEdit()
|
|
self.customer_name_edit.setPlaceholderText("고객 이름 입력")
|
|
self.customer_name_edit.setToolTip("고객의 이름을 입력하세요")
|
|
form_layout.addRow("고객 이름:", self.customer_name_edit)
|
|
|
|
self.product_name_edit = QLineEdit()
|
|
self.product_name_edit.setPlaceholderText("상품명")
|
|
self.product_name_edit.setToolTip("상품명을 입력하세요")
|
|
form_layout.addRow("상품명:", self.product_name_edit)
|
|
|
|
self.order_market_edit = QLineEdit()
|
|
self.order_market_edit.setPlaceholderText("주문 마켓 입력 (예: 쿠팡, 11번가 등)")
|
|
self.order_market_edit.setToolTip("주문이 발생한 국내 마켓을 입력하세요")
|
|
form_layout.addRow("주문 마켓:", self.order_market_edit)
|
|
|
|
self.customer_phone_edit = QLineEdit()
|
|
self.customer_phone_edit.setPlaceholderText("010-1234-5678")
|
|
self.customer_phone_edit.setToolTip("고객 전화번호를 입력하세요")
|
|
form_layout.addRow("고객 전화번호:", self.customer_phone_edit)
|
|
|
|
self.taobao_tracking_edit = QLineEdit()
|
|
self.taobao_tracking_edit.setPlaceholderText("타오바오 트래킹 번호 입력")
|
|
self.taobao_tracking_edit.setToolTip("타오바오에서 발행된 트래킹 번호")
|
|
form_layout.addRow("타오바오 트래킹:", self.taobao_tracking_edit)
|
|
|
|
self.delivery_agent_edit = QLineEdit()
|
|
self.delivery_agent_edit.setPlaceholderText("배대지 이름 입력")
|
|
self.delivery_agent_edit.setToolTip("배송대행지(배대지)의 이름을 입력하세요")
|
|
form_layout.addRow("배대지 이름:", self.delivery_agent_edit)
|
|
|
|
self.pre_carrier_edit = QLineEdit()
|
|
self.pre_carrier_edit.setPlaceholderText("선송장 택배사 입력")
|
|
self.pre_carrier_edit.setToolTip("주문 발송 시 사용한 택배사를 입력하세요")
|
|
form_layout.addRow("선송장 택배사:", self.pre_carrier_edit)
|
|
|
|
self.tracking_edit = QLineEdit()
|
|
self.tracking_edit.setPlaceholderText("배송대행지 주문 트래킹 번호 입력")
|
|
self.tracking_edit.setToolTip("배송대행지에서 발행한 국내 트래킹 번호")
|
|
form_layout.addRow("국내 트래킹번호:", self.tracking_edit)
|
|
|
|
self.freight_carrier_edit = QLineEdit()
|
|
self.freight_carrier_edit.setPlaceholderText("화물택배사 입력")
|
|
self.freight_carrier_edit.setToolTip("물품이 무거울 경우 사용한 화물택배사를 입력")
|
|
form_layout.addRow("화물택배사:", self.freight_carrier_edit)
|
|
|
|
self.freight_tracking_edit = QLineEdit()
|
|
self.freight_tracking_edit.setPlaceholderText("화물택배 트래킹 번호 입력")
|
|
self.freight_tracking_edit.setToolTip("화물택배 전환 시 발행된 트래킹 번호")
|
|
form_layout.addRow("화물 트래킹번호:", self.freight_tracking_edit)
|
|
|
|
self.cs_memo1_edit = QLineEdit()
|
|
self.cs_memo1_edit.setPlaceholderText("고객 서비스 메모1 입력")
|
|
self.cs_memo1_edit.setToolTip("주문 관련 CS 메모를 입력하세요")
|
|
form_layout.addRow("CS 메모1:", self.cs_memo1_edit)
|
|
|
|
self.cs_memo2_edit = QLineEdit()
|
|
self.cs_memo2_edit.setPlaceholderText("고객 서비스 메모2 입력")
|
|
self.cs_memo2_edit.setToolTip("추가 CS 메모를 입력하세요")
|
|
form_layout.addRow("CS 메모2:", self.cs_memo2_edit)
|
|
|
|
layout.addLayout(form_layout)
|
|
|
|
button_layout = QHBoxLayout()
|
|
self.complete_button = QPushButton("입력완료")
|
|
self.complete_button.setToolTip("주문 정보를 입력하고 저장합니다.")
|
|
self.complete_send_button = QPushButton("입력완료 및 1단계 문자발송")
|
|
self.complete_send_button.setToolTip("주문 정보를 입력 후 1단계 SMS를 전송합니다.")
|
|
self.temp_save_button = QPushButton("임시저장")
|
|
self.temp_save_button.setToolTip("주문 정보를 임시 저장합니다.")
|
|
self.cancel_button = QPushButton("취소")
|
|
self.cancel_button.setToolTip("입력을 취소합니다.")
|
|
|
|
button_layout.addWidget(self.complete_button)
|
|
button_layout.addWidget(self.complete_send_button)
|
|
button_layout.addWidget(self.temp_save_button)
|
|
button_layout.addWidget(self.cancel_button)
|
|
|
|
layout.addLayout(button_layout)
|
|
|
|
def apply_styles(self):
|
|
style = """
|
|
QDialog {
|
|
background-color: #ffffff;
|
|
}
|
|
QLineEdit, QComboBox {
|
|
padding: 4px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 4px;
|
|
}
|
|
QPushButton {
|
|
background-color: #1976D2;
|
|
color: white;
|
|
border-radius: 4px;
|
|
padding: 6px 12px;
|
|
}
|
|
QPushButton:hover {
|
|
background-color: #1565C0;
|
|
}
|
|
"""
|
|
self.setStyleSheet(style)
|
|
|