Mycar_SMS_Sender/gui/order_input_dialog.py

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)