├── .idea ├── .gitignore ├── Project.iml ├── dataSources.xml ├── inspectionProfiles │ └── profiles_settings.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml ├── sqldialects.xml └── vcs.xml ├── LOGO.ico ├── UI ├── Customerinfo_widget.py ├── Customerinfo_widget.ui ├── Login.ui ├── Orderinfo_widget.py ├── Orderinfo_widget.ui ├── Outboundlist_widget.py ├── Outboundlist_widget.ui ├── Purchaseorderquery_widget.py ├── Purchaseorderquery_widget.ui ├── Saleinfo_widget.py ├── Saleinfo_widget.ui ├── Salelist_widget.py ├── Salelist_widget.ui ├── Supplier_information.py ├── Supplier_information.ui ├── Supplierinfo_widget.py ├── Supplierinfo_widget.ui ├── __pycache__ │ ├── Customerinfo_widget.cpython-38.pyc │ ├── Orderinfo_widget.cpython-38.pyc │ ├── Purchaseorderquery_widget.cpython-38.pyc │ ├── Saleinfo_widget.cpython-38.pyc │ ├── Salelist_widget.cpython-38.pyc │ ├── Supplierinfo_widget.cpython-38.pyc │ ├── addGoods_widget.cpython-38.pyc │ ├── login.cpython-38.pyc │ ├── outboundinfo_widget.cpython-38.pyc │ ├── user_purchasing.cpython-38.pyc │ ├── user_sale.cpython-38.pyc │ └── user_warehouse.cpython-38.pyc ├── addGoods_widget.py ├── addGoods_widget.ui ├── login.py ├── outboundinfo_widget.py ├── outboundinfo_widget.ui ├── user_purchasing.py ├── user_purchasing.ui ├── user_sale.py ├── user_sale.ui ├── user_warehouse.py └── user_warehouse.ui ├── UML ├── user.purchasing_win.png ├── user.purchasing_win_lite.png ├── vo.Customer.png ├── vo.Dispatch.png ├── vo.Goods.png ├── vo.Inbound.png ├── vo.Manager.png ├── vo.Order.png ├── vo.Outbound.png ├── vo.Purchase.png ├── vo.Return.png ├── vo.Sale.png └── vo.Supplier.png ├── __pycache__ └── main.cpython-38.pyc ├── build └── main │ ├── Analysis-00.toc │ ├── EXE-00.toc │ ├── PKG-00.toc │ ├── PYZ-00.pyz │ ├── PYZ-00.toc │ ├── Tree-00.toc │ ├── Tree-01.toc │ ├── Tree-02.toc │ ├── base_library.zip │ ├── main.exe.manifest │ ├── main.pkg │ ├── warn-main.txt │ └── xref-main.html ├── dist ├── 更新记录.txt └── 药品进销存管理系统-2019212239-卫闰朴-beta4.exe ├── docs └── 物流信息系统设计.docx ├── func ├── CustomerFuc.py ├── DatabaseConnection.py ├── DispatchFuc.py ├── DraftOrderFuc.py ├── GoodsFuc.py ├── InboundFuc.py ├── ManagerFuc.py ├── OrderFuc.py ├── OutboundFuc.py ├── PurchaseFuc.py ├── ReturnFuc.py ├── SaleFuc.py ├── SupplierFuc.py └── __pycache__ │ ├── CustomerFuc.cpython-38.pyc │ ├── DatabaseConnection.cpython-38.pyc │ ├── DispatchFuc.cpython-38.pyc │ ├── GoodsFuc.cpython-38.pyc │ ├── InboundFuc.cpython-38.pyc │ ├── ManagerFuc.cpython-38.pyc │ ├── OrderFuc.cpython-38.pyc │ ├── OutboundFuc.cpython-38.pyc │ ├── ReturnFuc.cpython-38.pyc │ ├── SaleFuc.cpython-38.pyc │ └── SupplierFuc.cpython-38.pyc ├── main.py ├── main.qrc ├── main.spec ├── main_rc.py ├── makeExe.bat ├── requirements.txt ├── resource ├── Goods_icon.png ├── add_icon.png ├── customer_icon.png ├── customer_management.png ├── delete_icon.png ├── dispatch_management.png ├── down-arrow.png ├── exit_icon.png ├── inbound_icon.png ├── inboundinfo_icon.png ├── info_icon.png ├── inventory_icon.png ├── logo.png ├── modify_icon.png ├── outbound_icon.png ├── outbound_info.png ├── outboundinfo_icon.png ├── purchase_icon.png ├── sale_icon.png ├── sale_management.png ├── saleinfo_icon.png ├── search_icon.png ├── submit_icon.png ├── supplier_icon.png ├── warehouse_icon.png └── write.png ├── sql └── Dump20220428.sql ├── user ├── __pycache__ │ ├── fuc.cpython-38.pyc │ ├── purchasing_win.cpython-38.pyc │ ├── sale_win.cpython-38.pyc │ ├── warehouse_win.cpython-38.pyc │ ├── widget_Customerinfo_win.cpython-38.pyc │ ├── widget_Goods_win.cpython-38.pyc │ ├── widget_Orderinfo_win.cpython-38.pyc │ ├── widget_Outboundinfo.cpython-38.pyc │ ├── widget_Purchaseorderquery_win.cpython-38.pyc │ ├── widget_Saleinfo_win.cpython-38.pyc │ ├── widget_Salelist.cpython-38.pyc │ └── widget_Supplier_win.cpython-38.pyc ├── fuc.py ├── purchasing_win.py ├── sale_win.py ├── warehouse_win.py ├── widget_Customerinfo_win.py ├── widget_Goods_win.py ├── widget_Orderinfo_win.py ├── widget_Outboundinfo.py ├── widget_Outboundlist.py ├── widget_Purchaseorderquery_win.py ├── widget_Saleinfo_win.py ├── widget_Salelist.py └── widget_Supplier_win.py └── vo ├── AutoGeneration.py ├── Customer.py ├── Dispatch.py ├── DraftOrder.py ├── Goods.py ├── Inbound.py ├── Manager.py ├── Order.py ├── Outbound.py ├── Purchase.py ├── Return.py ├── Sale.py ├── Supplier.py └── __pycache__ ├── Customer.cpython-38.pyc ├── Dispatch.cpython-38.pyc ├── Goods.cpython-38.pyc ├── Inbound.cpython-38.pyc ├── Manager.cpython-38.pyc ├── Order.cpython-38.pyc ├── Outbound.cpython-38.pyc ├── Return.cpython-38.pyc ├── Sale.cpython-38.pyc └── Supplier.cpython-38.pyc /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /.idea/Project.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/dataSources.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | mysql.8 6 | true 7 | com.mysql.cj.jdbc.Driver 8 | jdbc:mysql://localhost:3306 9 | $ProjectFileDir$ 10 | 11 | 12 | mysql.8 13 | true 14 | com.mysql.cj.jdbc.Driver 15 | jdbc:mysql://tars-knock.cn:3306/MedicineManagementSystem 16 | $ProjectFileDir$ 17 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/sqldialects.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /LOGO.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/LOGO.ico -------------------------------------------------------------------------------- /UI/Customerinfo_widget.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'Customerinfo_widget.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Form(object): 12 | def setupUi(self, Form): 13 | Form.setObjectName("Form") 14 | Form.resize(991, 561) 15 | icon = QtGui.QIcon() 16 | icon.addPixmap(QtGui.QPixmap(":/img/resource/customer_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 17 | Form.setWindowIcon(icon) 18 | self.layoutWidget_4 = QtWidgets.QWidget(Form) 19 | self.layoutWidget_4.setGeometry(QtCore.QRect(10, 10, 971, 521)) 20 | self.layoutWidget_4.setObjectName("layoutWidget_4") 21 | self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.layoutWidget_4) 22 | self.verticalLayout_6.setContentsMargins(0, 0, 0, 0) 23 | self.verticalLayout_6.setObjectName("verticalLayout_6") 24 | self.label_25 = QtWidgets.QLabel(self.layoutWidget_4) 25 | self.label_25.setAlignment(QtCore.Qt.AlignCenter) 26 | self.label_25.setObjectName("label_25") 27 | self.verticalLayout_6.addWidget(self.label_25) 28 | self.horizontalLayout_8 = QtWidgets.QHBoxLayout() 29 | self.horizontalLayout_8.setObjectName("horizontalLayout_8") 30 | self.label_26 = QtWidgets.QLabel(self.layoutWidget_4) 31 | self.label_26.setMaximumSize(QtCore.QSize(100, 16777215)) 32 | self.label_26.setAlignment(QtCore.Qt.AlignCenter) 33 | self.label_26.setObjectName("label_26") 34 | self.horizontalLayout_8.addWidget(self.label_26) 35 | self.customer_id = QtWidgets.QLineEdit(self.layoutWidget_4) 36 | self.customer_id.setMaximumSize(QtCore.QSize(200, 16777215)) 37 | self.customer_id.setObjectName("customer_id") 38 | self.horizontalLayout_8.addWidget(self.customer_id) 39 | self.label_27 = QtWidgets.QLabel(self.layoutWidget_4) 40 | self.label_27.setMaximumSize(QtCore.QSize(100, 16777215)) 41 | self.label_27.setAlignment(QtCore.Qt.AlignCenter) 42 | self.label_27.setObjectName("label_27") 43 | self.horizontalLayout_8.addWidget(self.label_27) 44 | self.customer_name = QtWidgets.QLineEdit(self.layoutWidget_4) 45 | self.customer_name.setMaximumSize(QtCore.QSize(200, 16777215)) 46 | self.customer_name.setObjectName("customer_name") 47 | self.horizontalLayout_8.addWidget(self.customer_name) 48 | self.search_user = QtWidgets.QPushButton(self.layoutWidget_4) 49 | self.search_user.setMaximumSize(QtCore.QSize(100, 16777215)) 50 | self.search_user.setObjectName("search_user") 51 | self.horizontalLayout_8.addWidget(self.search_user) 52 | self.verticalLayout_6.addLayout(self.horizontalLayout_8) 53 | self.table_customer = QtWidgets.QTableWidget(self.layoutWidget_4) 54 | self.table_customer.setStyleSheet("QHeaderView::section {background-color:#008CBA ; /* 蓝色 */\n" 55 | " color: WHITE;\n" 56 | " };\n" 57 | " text-align : center;") 58 | self.table_customer.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) 59 | self.table_customer.setObjectName("table_customer") 60 | self.table_customer.setColumnCount(5) 61 | self.table_customer.setRowCount(0) 62 | item = QtWidgets.QTableWidgetItem() 63 | self.table_customer.setHorizontalHeaderItem(0, item) 64 | item = QtWidgets.QTableWidgetItem() 65 | self.table_customer.setHorizontalHeaderItem(1, item) 66 | item = QtWidgets.QTableWidgetItem() 67 | self.table_customer.setHorizontalHeaderItem(2, item) 68 | item = QtWidgets.QTableWidgetItem() 69 | self.table_customer.setHorizontalHeaderItem(3, item) 70 | item = QtWidgets.QTableWidgetItem() 71 | self.table_customer.setHorizontalHeaderItem(4, item) 72 | self.verticalLayout_6.addWidget(self.table_customer) 73 | 74 | self.retranslateUi(Form) 75 | QtCore.QMetaObject.connectSlotsByName(Form) 76 | 77 | def retranslateUi(self, Form): 78 | _translate = QtCore.QCoreApplication.translate 79 | Form.setWindowTitle(_translate("Form", "添加顾客信息")) 80 | self.label_25.setText(_translate("Form", "顾客信息")) 81 | self.label_26.setText(_translate("Form", "顾客编号:")) 82 | self.customer_id.setPlaceholderText(_translate("Form", "无")) 83 | self.label_27.setText(_translate("Form", "顾客名称:")) 84 | self.customer_name.setPlaceholderText(_translate("Form", "无")) 85 | self.search_user.setText(_translate("Form", "搜索")) 86 | item = self.table_customer.horizontalHeaderItem(0) 87 | item.setText(_translate("Form", "顾客编号")) 88 | item = self.table_customer.horizontalHeaderItem(1) 89 | item.setText(_translate("Form", "顾客姓名")) 90 | item = self.table_customer.horizontalHeaderItem(2) 91 | item.setText(_translate("Form", "顾客电话")) 92 | item = self.table_customer.horizontalHeaderItem(3) 93 | item.setText(_translate("Form", "送货地址")) 94 | item = self.table_customer.horizontalHeaderItem(4) 95 | item.setText(_translate("Form", "操作")) 96 | 97 | import main_rc 98 | 99 | if __name__ == "__main__": 100 | import sys 101 | app = QtWidgets.QApplication(sys.argv) 102 | Form = QtWidgets.QWidget() 103 | ui = Ui_Form() 104 | ui.setupUi(Form) 105 | Form.show() 106 | sys.exit(app.exec_()) 107 | 108 | -------------------------------------------------------------------------------- /UI/Customerinfo_widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 991 10 | 561 11 | 12 | 13 | 14 | 添加顾客信息 15 | 16 | 17 | 18 | :/img/resource/customer_icon.png:/img/resource/customer_icon.png 19 | 20 | 21 | 22 | 23 | 10 24 | 10 25 | 971 26 | 521 27 | 28 | 29 | 30 | 31 | 32 | 33 | 顾客信息 34 | 35 | 36 | Qt::AlignCenter 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 100 47 | 16777215 48 | 49 | 50 | 51 | 顾客编号: 52 | 53 | 54 | Qt::AlignCenter 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 200 63 | 16777215 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 100 76 | 16777215 77 | 78 | 79 | 80 | 顾客名称: 81 | 82 | 83 | Qt::AlignCenter 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 200 92 | 16777215 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 100 105 | 16777215 106 | 107 | 108 | 109 | 搜索 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 119 | color: WHITE; 120 | }; 121 | text-align : center; 122 | 123 | 124 | QAbstractItemView::NoEditTriggers 125 | 126 | 127 | 128 | 顾客编号 129 | 130 | 131 | 132 | 133 | 顾客姓名 134 | 135 | 136 | 137 | 138 | 顾客电话 139 | 140 | 141 | 142 | 143 | 送货地址 144 | 145 | 146 | 147 | 148 | 操作 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /UI/Orderinfo_widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1097 10 | 607 11 | 12 | 13 | 14 | 采购单详情 15 | 16 | 17 | 18 | :/img/resource/info_icon.png:/img/resource/info_icon.png 19 | 20 | 21 | 22 | 23 | 11 24 | 11 25 | 1071 26 | 571 27 | 28 | 29 | 30 | 31 | 32 | 33 | 采购单详情 34 | 35 | 36 | Qt::AlignCenter 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 订单编号: 46 | 47 | 48 | Qt::AlignCenter 49 | 50 | 51 | 52 | 53 | 54 | 55 | Qt::NoFocus 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 0 64 | 0 65 | 66 | 67 | 68 | 69 | 16777215 70 | 16777215 71 | 72 | 73 | 74 | 供应商编号: 75 | 76 | 77 | Qt::AlignCenter 78 | 79 | 80 | 81 | 82 | 83 | 84 | Qt::NoFocus 85 | 86 | 87 | 88 | 89 | 90 | 91 | 供应商名称: 92 | 93 | 94 | Qt::AlignCenter 95 | 96 | 97 | 98 | 99 | 100 | 101 | Qt::NoFocus 102 | 103 | 104 | 105 | 106 | 107 | 108 | 供应商地址: 109 | 110 | 111 | Qt::AlignCenter 112 | 113 | 114 | 115 | 116 | 117 | 118 | Qt::NoFocus 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 供应商联系人: 130 | 131 | 132 | Qt::AlignCenter 133 | 134 | 135 | 136 | 137 | 138 | 139 | Qt::NoFocus 140 | 141 | 142 | 143 | 144 | 145 | 146 | 联系人电话: 147 | 148 | 149 | Qt::AlignCenter 150 | 151 | 152 | 153 | 154 | 155 | 156 | Qt::NoFocus 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 采购负责人: 167 | 168 | 169 | Qt::AlignCenter 170 | 171 | 172 | 173 | 174 | 175 | 176 | Qt::NoFocus 177 | 178 | 179 | 180 | 181 | 182 | 183 | 下单时间: 184 | 185 | 186 | Qt::AlignCenter 187 | 188 | 189 | 190 | 191 | 192 | 193 | Qt::NoFocus 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 203 | color: WHITE; 204 | }; 205 | text-align : center; 206 | 207 | 208 | QAbstractItemView::NoEditTriggers 209 | 210 | 211 | true 212 | 213 | 214 | true 215 | 216 | 217 | 218 | 商品编号 219 | 220 | 221 | 222 | 223 | 商品名称 224 | 225 | 226 | 227 | 228 | 商品供应商 229 | 230 | 231 | 232 | 233 | 采购数量 234 | 235 | 236 | 237 | 238 | 商品单位 239 | 240 | 241 | 242 | 243 | 商品进价/元 244 | 245 | 246 | 247 | 248 | 总价/元 249 | 250 | 251 | 252 | 253 | 订单状态 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | -------------------------------------------------------------------------------- /UI/Outboundlist_widget.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'Outboundlist_widget.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Form(object): 12 | def setupUi(self, Form): 13 | Form.setObjectName("Form") 14 | Form.resize(988, 584) 15 | icon = QtGui.QIcon() 16 | icon.addPixmap(QtGui.QPixmap(":/img/resource/outbound_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 17 | Form.setWindowIcon(icon) 18 | self.layoutWidget = QtWidgets.QWidget(Form) 19 | self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 971, 551)) 20 | self.layoutWidget.setObjectName("layoutWidget") 21 | self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget) 22 | self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) 23 | self.verticalLayout_2.setObjectName("verticalLayout_2") 24 | self.label_12 = QtWidgets.QLabel(self.layoutWidget) 25 | self.label_12.setAlignment(QtCore.Qt.AlignCenter) 26 | self.label_12.setObjectName("label_12") 27 | self.verticalLayout_2.addWidget(self.label_12) 28 | self.horizontalLayout_5 = QtWidgets.QHBoxLayout() 29 | self.horizontalLayout_5.setObjectName("horizontalLayout_5") 30 | self.label_13 = QtWidgets.QLabel(self.layoutWidget) 31 | self.label_13.setAlignment(QtCore.Qt.AlignCenter) 32 | self.label_13.setObjectName("label_13") 33 | self.horizontalLayout_5.addWidget(self.label_13) 34 | self.outbound_id = QtWidgets.QLineEdit(self.layoutWidget) 35 | self.outbound_id.setObjectName("outbound_id") 36 | self.horizontalLayout_5.addWidget(self.outbound_id) 37 | self.label_14 = QtWidgets.QLabel(self.layoutWidget) 38 | self.label_14.setAlignment(QtCore.Qt.AlignCenter) 39 | self.label_14.setObjectName("label_14") 40 | self.horizontalLayout_5.addWidget(self.label_14) 41 | self.saleinfo_outbound = QtWidgets.QLineEdit(self.layoutWidget) 42 | self.saleinfo_outbound.setObjectName("saleinfo_outbound") 43 | self.horizontalLayout_5.addWidget(self.saleinfo_outbound) 44 | self.label_15 = QtWidgets.QLabel(self.layoutWidget) 45 | self.label_15.setAlignment(QtCore.Qt.AlignCenter) 46 | self.label_15.setObjectName("label_15") 47 | self.horizontalLayout_5.addWidget(self.label_15) 48 | self.time_outbound = QtWidgets.QLineEdit(self.layoutWidget) 49 | self.time_outbound.setObjectName("time_outbound") 50 | self.horizontalLayout_5.addWidget(self.time_outbound) 51 | self.search_outbound = QtWidgets.QPushButton(self.layoutWidget) 52 | self.search_outbound.setMinimumSize(QtCore.QSize(0, 30)) 53 | self.search_outbound.setObjectName("search_outbound") 54 | self.horizontalLayout_5.addWidget(self.search_outbound) 55 | self.verticalLayout_2.addLayout(self.horizontalLayout_5) 56 | self.table_outboundinfo = QtWidgets.QTableWidget(self.layoutWidget) 57 | self.table_outboundinfo.setStyleSheet("QHeaderView::section {background-color:#008CBA ; /* 蓝色 */\n" 58 | " color: WHITE;\n" 59 | " };\n" 60 | " text-align : center;") 61 | self.table_outboundinfo.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) 62 | self.table_outboundinfo.setObjectName("table_outboundinfo") 63 | self.table_outboundinfo.setColumnCount(5) 64 | self.table_outboundinfo.setRowCount(0) 65 | item = QtWidgets.QTableWidgetItem() 66 | self.table_outboundinfo.setHorizontalHeaderItem(0, item) 67 | item = QtWidgets.QTableWidgetItem() 68 | self.table_outboundinfo.setHorizontalHeaderItem(1, item) 69 | item = QtWidgets.QTableWidgetItem() 70 | self.table_outboundinfo.setHorizontalHeaderItem(2, item) 71 | item = QtWidgets.QTableWidgetItem() 72 | self.table_outboundinfo.setHorizontalHeaderItem(3, item) 73 | item = QtWidgets.QTableWidgetItem() 74 | self.table_outboundinfo.setHorizontalHeaderItem(4, item) 75 | self.verticalLayout_2.addWidget(self.table_outboundinfo) 76 | 77 | self.retranslateUi(Form) 78 | QtCore.QMetaObject.connectSlotsByName(Form) 79 | 80 | def retranslateUi(self, Form): 81 | _translate = QtCore.QCoreApplication.translate 82 | Form.setWindowTitle(_translate("Form", "关联出库单")) 83 | self.label_12.setText(_translate("Form", "出库单查询")) 84 | self.label_13.setText(_translate("Form", "出库单编号:")) 85 | self.label_14.setText(_translate("Form", "销售单编号:")) 86 | self.label_15.setText(_translate("Form", "订单时间:")) 87 | self.search_outbound.setText(_translate("Form", "搜索")) 88 | item = self.table_outboundinfo.horizontalHeaderItem(0) 89 | item.setText(_translate("Form", "订单编号")) 90 | item = self.table_outboundinfo.horizontalHeaderItem(1) 91 | item.setText(_translate("Form", "顾客名称")) 92 | item = self.table_outboundinfo.horizontalHeaderItem(2) 93 | item.setText(_translate("Form", "负责人")) 94 | item = self.table_outboundinfo.horizontalHeaderItem(3) 95 | item.setText(_translate("Form", "订单日期")) 96 | item = self.table_outboundinfo.horizontalHeaderItem(4) 97 | item.setText(_translate("Form", "操作")) 98 | 99 | import main_rc 100 | 101 | if __name__ == "__main__": 102 | import sys 103 | app = QtWidgets.QApplication(sys.argv) 104 | Form = QtWidgets.QWidget() 105 | ui = Ui_Form() 106 | ui.setupUi(Form) 107 | Form.show() 108 | sys.exit(app.exec_()) 109 | 110 | -------------------------------------------------------------------------------- /UI/Outboundlist_widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 988 10 | 584 11 | 12 | 13 | 14 | 关联出库单 15 | 16 | 17 | 18 | :/img/resource/outbound_icon.png:/img/resource/outbound_icon.png 19 | 20 | 21 | 22 | 23 | 10 24 | 10 25 | 971 26 | 551 27 | 28 | 29 | 30 | 31 | 32 | 33 | 出库单查询 34 | 35 | 36 | Qt::AlignCenter 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 出库单编号: 46 | 47 | 48 | Qt::AlignCenter 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 销售单编号: 59 | 60 | 61 | Qt::AlignCenter 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 订单时间: 72 | 73 | 74 | Qt::AlignCenter 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 0 86 | 30 87 | 88 | 89 | 90 | 搜索 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 100 | color: WHITE; 101 | }; 102 | text-align : center; 103 | 104 | 105 | QAbstractItemView::NoEditTriggers 106 | 107 | 108 | 109 | 订单编号 110 | 111 | 112 | 113 | 114 | 顾客名称 115 | 116 | 117 | 118 | 119 | 负责人 120 | 121 | 122 | 123 | 124 | 订单日期 125 | 126 | 127 | 128 | 129 | 操作 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /UI/Purchaseorderquery_widget.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'Purchaseorderquery_widget.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Form(object): 12 | def setupUi(self, Form): 13 | Form.setObjectName("Form") 14 | Form.resize(990, 556) 15 | Form.setMinimumSize(QtCore.QSize(0, 30)) 16 | icon = QtGui.QIcon() 17 | icon.addPixmap(QtGui.QPixmap(":/img/resource/search_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 18 | Form.setWindowIcon(icon) 19 | self.layoutWidget = QtWidgets.QWidget(Form) 20 | self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 971, 521)) 21 | self.layoutWidget.setObjectName("layoutWidget") 22 | self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget) 23 | self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) 24 | self.verticalLayout_2.setObjectName("verticalLayout_2") 25 | self.label_12 = QtWidgets.QLabel(self.layoutWidget) 26 | self.label_12.setAlignment(QtCore.Qt.AlignCenter) 27 | self.label_12.setObjectName("label_12") 28 | self.verticalLayout_2.addWidget(self.label_12) 29 | self.horizontalLayout_5 = QtWidgets.QHBoxLayout() 30 | self.horizontalLayout_5.setObjectName("horizontalLayout_5") 31 | self.label_13 = QtWidgets.QLabel(self.layoutWidget) 32 | self.label_13.setAlignment(QtCore.Qt.AlignCenter) 33 | self.label_13.setObjectName("label_13") 34 | self.horizontalLayout_5.addWidget(self.label_13) 35 | self.order_id = QtWidgets.QLineEdit(self.layoutWidget) 36 | self.order_id.setObjectName("order_id") 37 | self.horizontalLayout_5.addWidget(self.order_id) 38 | self.label_14 = QtWidgets.QLabel(self.layoutWidget) 39 | self.label_14.setAlignment(QtCore.Qt.AlignCenter) 40 | self.label_14.setObjectName("label_14") 41 | self.horizontalLayout_5.addWidget(self.label_14) 42 | self.supplier_id = QtWidgets.QLineEdit(self.layoutWidget) 43 | self.supplier_id.setObjectName("supplier_id") 44 | self.horizontalLayout_5.addWidget(self.supplier_id) 45 | self.label_15 = QtWidgets.QLabel(self.layoutWidget) 46 | self.label_15.setAlignment(QtCore.Qt.AlignCenter) 47 | self.label_15.setObjectName("label_15") 48 | self.horizontalLayout_5.addWidget(self.label_15) 49 | self.ordertime = QtWidgets.QComboBox(self.layoutWidget) 50 | self.ordertime.setMinimumSize(QtCore.QSize(120, 0)) 51 | self.ordertime.setObjectName("ordertime") 52 | self.ordertime.addItem("") 53 | self.ordertime.addItem("") 54 | self.ordertime.addItem("") 55 | self.ordertime.addItem("") 56 | self.horizontalLayout_5.addWidget(self.ordertime) 57 | self.search = QtWidgets.QPushButton(self.layoutWidget) 58 | self.search.setObjectName("search") 59 | self.horizontalLayout_5.addWidget(self.search) 60 | self.verticalLayout_2.addLayout(self.horizontalLayout_5) 61 | self.table_orderinfo = QtWidgets.QTableWidget(self.layoutWidget) 62 | self.table_orderinfo.setStyleSheet("QHeaderView::section {background-color:#008CBA ; /* 蓝色 */\n" 63 | " color: WHITE;\n" 64 | " };\n" 65 | " text-align : center;") 66 | self.table_orderinfo.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) 67 | self.table_orderinfo.setObjectName("table_orderinfo") 68 | self.table_orderinfo.setColumnCount(5) 69 | self.table_orderinfo.setRowCount(0) 70 | item = QtWidgets.QTableWidgetItem() 71 | self.table_orderinfo.setHorizontalHeaderItem(0, item) 72 | item = QtWidgets.QTableWidgetItem() 73 | self.table_orderinfo.setHorizontalHeaderItem(1, item) 74 | item = QtWidgets.QTableWidgetItem() 75 | self.table_orderinfo.setHorizontalHeaderItem(2, item) 76 | item = QtWidgets.QTableWidgetItem() 77 | self.table_orderinfo.setHorizontalHeaderItem(3, item) 78 | item = QtWidgets.QTableWidgetItem() 79 | self.table_orderinfo.setHorizontalHeaderItem(4, item) 80 | self.verticalLayout_2.addWidget(self.table_orderinfo) 81 | 82 | self.retranslateUi(Form) 83 | QtCore.QMetaObject.connectSlotsByName(Form) 84 | 85 | def retranslateUi(self, Form): 86 | _translate = QtCore.QCoreApplication.translate 87 | Form.setWindowTitle(_translate("Form", "采购单查询")) 88 | self.label_12.setText(_translate("Form", "采购单查询")) 89 | self.label_13.setText(_translate("Form", "订单编号:")) 90 | self.label_14.setText(_translate("Form", "供应商编号:")) 91 | self.label_15.setText(_translate("Form", "订单时间:")) 92 | self.ordertime.setItemText(0, _translate("Form", "无")) 93 | self.ordertime.setItemText(1, _translate("Form", "3天内")) 94 | self.ordertime.setItemText(2, _translate("Form", "一周内")) 95 | self.ordertime.setItemText(3, _translate("Form", "一个月内")) 96 | self.search.setText(_translate("Form", "搜索")) 97 | item = self.table_orderinfo.horizontalHeaderItem(0) 98 | item.setText(_translate("Form", "采购单编号")) 99 | item = self.table_orderinfo.horizontalHeaderItem(1) 100 | item.setText(_translate("Form", "供应商")) 101 | item = self.table_orderinfo.horizontalHeaderItem(2) 102 | item.setText(_translate("Form", "负责人")) 103 | item = self.table_orderinfo.horizontalHeaderItem(3) 104 | item.setText(_translate("Form", "订单日期")) 105 | item = self.table_orderinfo.horizontalHeaderItem(4) 106 | item.setText(_translate("Form", "操作")) 107 | 108 | import main_rc 109 | 110 | if __name__ == "__main__": 111 | import sys 112 | app = QtWidgets.QApplication(sys.argv) 113 | Form = QtWidgets.QWidget() 114 | ui = Ui_Form() 115 | ui.setupUi(Form) 116 | Form.show() 117 | sys.exit(app.exec_()) 118 | 119 | -------------------------------------------------------------------------------- /UI/Purchaseorderquery_widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 990 10 | 556 11 | 12 | 13 | 14 | 15 | 0 16 | 30 17 | 18 | 19 | 20 | 采购单查询 21 | 22 | 23 | 24 | :/img/resource/search_icon.png:/img/resource/search_icon.png 25 | 26 | 27 | 28 | 29 | 10 30 | 10 31 | 971 32 | 521 33 | 34 | 35 | 36 | 37 | 38 | 39 | 采购单查询 40 | 41 | 42 | Qt::AlignCenter 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 订单编号: 52 | 53 | 54 | Qt::AlignCenter 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 供应商编号: 65 | 66 | 67 | Qt::AlignCenter 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 订单时间: 78 | 79 | 80 | Qt::AlignCenter 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 120 89 | 0 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 3天内 100 | 101 | 102 | 103 | 104 | 一周内 105 | 106 | 107 | 108 | 109 | 一个月内 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 搜索 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 127 | color: WHITE; 128 | }; 129 | text-align : center; 130 | 131 | 132 | QAbstractItemView::NoEditTriggers 133 | 134 | 135 | 136 | 采购单编号 137 | 138 | 139 | 140 | 141 | 供应商 142 | 143 | 144 | 145 | 146 | 负责人 147 | 148 | 149 | 150 | 151 | 订单日期 152 | 153 | 154 | 155 | 156 | 操作 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /UI/Saleinfo_widget.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'Saleinfo_widget.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Form(object): 12 | def setupUi(self, Form): 13 | Form.setObjectName("Form") 14 | Form.resize(1097, 605) 15 | icon = QtGui.QIcon() 16 | icon.addPixmap(QtGui.QPixmap(":/img/resource/info_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 17 | Form.setWindowIcon(icon) 18 | self.layoutWidget = QtWidgets.QWidget(Form) 19 | self.layoutWidget.setGeometry(QtCore.QRect(11, 11, 1071, 571)) 20 | self.layoutWidget.setObjectName("layoutWidget") 21 | self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget) 22 | self.verticalLayout.setContentsMargins(0, 0, 0, 0) 23 | self.verticalLayout.setObjectName("verticalLayout") 24 | self.label = QtWidgets.QLabel(self.layoutWidget) 25 | self.label.setAlignment(QtCore.Qt.AlignCenter) 26 | self.label.setObjectName("label") 27 | self.verticalLayout.addWidget(self.label) 28 | self.horizontalLayout = QtWidgets.QHBoxLayout() 29 | self.horizontalLayout.setObjectName("horizontalLayout") 30 | self.label_2 = QtWidgets.QLabel(self.layoutWidget) 31 | self.label_2.setAlignment(QtCore.Qt.AlignCenter) 32 | self.label_2.setObjectName("label_2") 33 | self.horizontalLayout.addWidget(self.label_2) 34 | self.sale_id = QtWidgets.QLineEdit(self.layoutWidget) 35 | self.sale_id.setFocusPolicy(QtCore.Qt.NoFocus) 36 | self.sale_id.setObjectName("sale_id") 37 | self.horizontalLayout.addWidget(self.sale_id) 38 | self.label_3 = QtWidgets.QLabel(self.layoutWidget) 39 | self.label_3.setMinimumSize(QtCore.QSize(0, 0)) 40 | self.label_3.setMaximumSize(QtCore.QSize(16777215, 16777215)) 41 | self.label_3.setAlignment(QtCore.Qt.AlignCenter) 42 | self.label_3.setObjectName("label_3") 43 | self.horizontalLayout.addWidget(self.label_3) 44 | self.customer_id = QtWidgets.QLineEdit(self.layoutWidget) 45 | self.customer_id.setFocusPolicy(QtCore.Qt.NoFocus) 46 | self.customer_id.setObjectName("customer_id") 47 | self.horizontalLayout.addWidget(self.customer_id) 48 | self.label_5 = QtWidgets.QLabel(self.layoutWidget) 49 | self.label_5.setAlignment(QtCore.Qt.AlignCenter) 50 | self.label_5.setObjectName("label_5") 51 | self.horizontalLayout.addWidget(self.label_5) 52 | self.customer_name = QtWidgets.QLineEdit(self.layoutWidget) 53 | self.customer_name.setFocusPolicy(QtCore.Qt.NoFocus) 54 | self.customer_name.setObjectName("customer_name") 55 | self.horizontalLayout.addWidget(self.customer_name) 56 | self.verticalLayout.addLayout(self.horizontalLayout) 57 | self.horizontalLayout_3 = QtWidgets.QHBoxLayout() 58 | self.horizontalLayout_3.setObjectName("horizontalLayout_3") 59 | self.label_8 = QtWidgets.QLabel(self.layoutWidget) 60 | self.label_8.setAlignment(QtCore.Qt.AlignCenter) 61 | self.label_8.setObjectName("label_8") 62 | self.horizontalLayout_3.addWidget(self.label_8) 63 | self.customer_phone = QtWidgets.QLineEdit(self.layoutWidget) 64 | self.customer_phone.setFocusPolicy(QtCore.Qt.NoFocus) 65 | self.customer_phone.setObjectName("customer_phone") 66 | self.horizontalLayout_3.addWidget(self.customer_phone) 67 | self.label_9 = QtWidgets.QLabel(self.layoutWidget) 68 | self.label_9.setAlignment(QtCore.Qt.AlignCenter) 69 | self.label_9.setObjectName("label_9") 70 | self.horizontalLayout_3.addWidget(self.label_9) 71 | self.customer_addr = QtWidgets.QLineEdit(self.layoutWidget) 72 | self.customer_addr.setFocusPolicy(QtCore.Qt.NoFocus) 73 | self.customer_addr.setPlaceholderText("") 74 | self.customer_addr.setObjectName("customer_addr") 75 | self.horizontalLayout_3.addWidget(self.customer_addr) 76 | self.label_10 = QtWidgets.QLabel(self.layoutWidget) 77 | self.label_10.setAlignment(QtCore.Qt.AlignCenter) 78 | self.label_10.setObjectName("label_10") 79 | self.horizontalLayout_3.addWidget(self.label_10) 80 | self.sale_people = QtWidgets.QLineEdit(self.layoutWidget) 81 | self.sale_people.setFocusPolicy(QtCore.Qt.NoFocus) 82 | self.sale_people.setObjectName("sale_people") 83 | self.horizontalLayout_3.addWidget(self.sale_people) 84 | self.label_11 = QtWidgets.QLabel(self.layoutWidget) 85 | self.label_11.setAlignment(QtCore.Qt.AlignCenter) 86 | self.label_11.setObjectName("label_11") 87 | self.horizontalLayout_3.addWidget(self.label_11) 88 | self.sale_date = QtWidgets.QLineEdit(self.layoutWidget) 89 | self.sale_date.setFocusPolicy(QtCore.Qt.NoFocus) 90 | self.sale_date.setObjectName("sale_date") 91 | self.horizontalLayout_3.addWidget(self.sale_date) 92 | self.verticalLayout.addLayout(self.horizontalLayout_3) 93 | self.table_sale = QtWidgets.QTableWidget(self.layoutWidget) 94 | self.table_sale.setStyleSheet("QHeaderView::section {background-color:#008CBA ; /* 蓝色 */\n" 95 | " color: WHITE;\n" 96 | " };\n" 97 | " text-align : center;") 98 | self.table_sale.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) 99 | self.table_sale.setObjectName("table_sale") 100 | self.table_sale.setColumnCount(8) 101 | self.table_sale.setRowCount(0) 102 | item = QtWidgets.QTableWidgetItem() 103 | self.table_sale.setHorizontalHeaderItem(0, item) 104 | item = QtWidgets.QTableWidgetItem() 105 | self.table_sale.setHorizontalHeaderItem(1, item) 106 | item = QtWidgets.QTableWidgetItem() 107 | self.table_sale.setHorizontalHeaderItem(2, item) 108 | item = QtWidgets.QTableWidgetItem() 109 | self.table_sale.setHorizontalHeaderItem(3, item) 110 | item = QtWidgets.QTableWidgetItem() 111 | self.table_sale.setHorizontalHeaderItem(4, item) 112 | item = QtWidgets.QTableWidgetItem() 113 | self.table_sale.setHorizontalHeaderItem(5, item) 114 | item = QtWidgets.QTableWidgetItem() 115 | self.table_sale.setHorizontalHeaderItem(6, item) 116 | item = QtWidgets.QTableWidgetItem() 117 | self.table_sale.setHorizontalHeaderItem(7, item) 118 | self.table_sale.horizontalHeader().setCascadingSectionResizes(True) 119 | self.table_sale.verticalHeader().setCascadingSectionResizes(True) 120 | self.verticalLayout.addWidget(self.table_sale) 121 | 122 | self.retranslateUi(Form) 123 | QtCore.QMetaObject.connectSlotsByName(Form) 124 | 125 | def retranslateUi(self, Form): 126 | _translate = QtCore.QCoreApplication.translate 127 | Form.setWindowTitle(_translate("Form", "销售单详情")) 128 | self.label.setText(_translate("Form", "销售单详情")) 129 | self.label_2.setText(_translate("Form", "订单编号:")) 130 | self.label_3.setText(_translate("Form", "顾客编号:")) 131 | self.label_5.setText(_translate("Form", "顾客名称:")) 132 | self.label_8.setText(_translate("Form", "顾客电话:")) 133 | self.label_9.setText(_translate("Form", "送货地址:")) 134 | self.label_10.setText(_translate("Form", "销售负责人:")) 135 | self.label_11.setText(_translate("Form", "下单时间:")) 136 | item = self.table_sale.horizontalHeaderItem(0) 137 | item.setText(_translate("Form", "商品编号")) 138 | item = self.table_sale.horizontalHeaderItem(1) 139 | item.setText(_translate("Form", "商品名称")) 140 | item = self.table_sale.horizontalHeaderItem(2) 141 | item.setText(_translate("Form", "商品供应商")) 142 | item = self.table_sale.horizontalHeaderItem(3) 143 | item.setText(_translate("Form", "销售数量")) 144 | item = self.table_sale.horizontalHeaderItem(4) 145 | item.setText(_translate("Form", "商品单位")) 146 | item = self.table_sale.horizontalHeaderItem(5) 147 | item.setText(_translate("Form", "单位售价/元")) 148 | item = self.table_sale.horizontalHeaderItem(6) 149 | item.setText(_translate("Form", "总价/元")) 150 | item = self.table_sale.horizontalHeaderItem(7) 151 | item.setText(_translate("Form", "订单状态")) 152 | 153 | import main_rc 154 | 155 | if __name__ == "__main__": 156 | import sys 157 | app = QtWidgets.QApplication(sys.argv) 158 | Form = QtWidgets.QWidget() 159 | ui = Ui_Form() 160 | ui.setupUi(Form) 161 | Form.show() 162 | sys.exit(app.exec_()) 163 | 164 | -------------------------------------------------------------------------------- /UI/Saleinfo_widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1097 10 | 605 11 | 12 | 13 | 14 | 销售单详情 15 | 16 | 17 | 18 | :/img/resource/info_icon.png:/img/resource/info_icon.png 19 | 20 | 21 | 22 | 23 | 11 24 | 11 25 | 1071 26 | 571 27 | 28 | 29 | 30 | 31 | 32 | 33 | 销售单详情 34 | 35 | 36 | Qt::AlignCenter 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 订单编号: 46 | 47 | 48 | Qt::AlignCenter 49 | 50 | 51 | 52 | 53 | 54 | 55 | Qt::NoFocus 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 0 64 | 0 65 | 66 | 67 | 68 | 69 | 16777215 70 | 16777215 71 | 72 | 73 | 74 | 顾客编号: 75 | 76 | 77 | Qt::AlignCenter 78 | 79 | 80 | 81 | 82 | 83 | 84 | Qt::NoFocus 85 | 86 | 87 | 88 | 89 | 90 | 91 | 顾客名称: 92 | 93 | 94 | Qt::AlignCenter 95 | 96 | 97 | 98 | 99 | 100 | 101 | Qt::NoFocus 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 顾客电话: 113 | 114 | 115 | Qt::AlignCenter 116 | 117 | 118 | 119 | 120 | 121 | 122 | Qt::NoFocus 123 | 124 | 125 | 126 | 127 | 128 | 129 | 送货地址: 130 | 131 | 132 | Qt::AlignCenter 133 | 134 | 135 | 136 | 137 | 138 | 139 | Qt::NoFocus 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 销售负责人: 150 | 151 | 152 | Qt::AlignCenter 153 | 154 | 155 | 156 | 157 | 158 | 159 | Qt::NoFocus 160 | 161 | 162 | 163 | 164 | 165 | 166 | 下单时间: 167 | 168 | 169 | Qt::AlignCenter 170 | 171 | 172 | 173 | 174 | 175 | 176 | Qt::NoFocus 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 186 | color: WHITE; 187 | }; 188 | text-align : center; 189 | 190 | 191 | QAbstractItemView::NoEditTriggers 192 | 193 | 194 | true 195 | 196 | 197 | true 198 | 199 | 200 | 201 | 商品编号 202 | 203 | 204 | 205 | 206 | 商品名称 207 | 208 | 209 | 210 | 211 | 商品供应商 212 | 213 | 214 | 215 | 216 | 销售数量 217 | 218 | 219 | 220 | 221 | 商品单位 222 | 223 | 224 | 225 | 226 | 单位售价/元 227 | 228 | 229 | 230 | 231 | 总价/元 232 | 233 | 234 | 235 | 236 | 订单状态 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | -------------------------------------------------------------------------------- /UI/Salelist_widget.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'Salelist_widget.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Form(object): 12 | def setupUi(self, Form): 13 | Form.setObjectName("Form") 14 | Form.resize(988, 585) 15 | icon = QtGui.QIcon() 16 | icon.addPixmap(QtGui.QPixmap(":/img/resource/search_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 17 | Form.setWindowIcon(icon) 18 | self.layoutWidget = QtWidgets.QWidget(Form) 19 | self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 971, 551)) 20 | self.layoutWidget.setObjectName("layoutWidget") 21 | self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget) 22 | self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) 23 | self.verticalLayout_2.setObjectName("verticalLayout_2") 24 | self.label_12 = QtWidgets.QLabel(self.layoutWidget) 25 | self.label_12.setAlignment(QtCore.Qt.AlignCenter) 26 | self.label_12.setObjectName("label_12") 27 | self.verticalLayout_2.addWidget(self.label_12) 28 | self.horizontalLayout_5 = QtWidgets.QHBoxLayout() 29 | self.horizontalLayout_5.setObjectName("horizontalLayout_5") 30 | self.label_13 = QtWidgets.QLabel(self.layoutWidget) 31 | self.label_13.setAlignment(QtCore.Qt.AlignCenter) 32 | self.label_13.setObjectName("label_13") 33 | self.horizontalLayout_5.addWidget(self.label_13) 34 | self.order_id_saleinfo = QtWidgets.QLineEdit(self.layoutWidget) 35 | self.order_id_saleinfo.setObjectName("order_id_saleinfo") 36 | self.horizontalLayout_5.addWidget(self.order_id_saleinfo) 37 | self.label_14 = QtWidgets.QLabel(self.layoutWidget) 38 | self.label_14.setAlignment(QtCore.Qt.AlignCenter) 39 | self.label_14.setObjectName("label_14") 40 | self.horizontalLayout_5.addWidget(self.label_14) 41 | self.customer_id_saleinfo = QtWidgets.QLineEdit(self.layoutWidget) 42 | self.customer_id_saleinfo.setObjectName("customer_id_saleinfo") 43 | self.horizontalLayout_5.addWidget(self.customer_id_saleinfo) 44 | self.label_15 = QtWidgets.QLabel(self.layoutWidget) 45 | self.label_15.setAlignment(QtCore.Qt.AlignCenter) 46 | self.label_15.setObjectName("label_15") 47 | self.horizontalLayout_5.addWidget(self.label_15) 48 | self.comboBox = QtWidgets.QComboBox(self.layoutWidget) 49 | self.comboBox.setMinimumSize(QtCore.QSize(120, 0)) 50 | self.comboBox.setObjectName("comboBox") 51 | self.comboBox.addItem("") 52 | self.comboBox.addItem("") 53 | self.comboBox.addItem("") 54 | self.comboBox.addItem("") 55 | self.horizontalLayout_5.addWidget(self.comboBox) 56 | self.search_saleinfo = QtWidgets.QPushButton(self.layoutWidget) 57 | self.search_saleinfo.setMinimumSize(QtCore.QSize(0, 30)) 58 | self.search_saleinfo.setObjectName("search_saleinfo") 59 | self.horizontalLayout_5.addWidget(self.search_saleinfo) 60 | self.verticalLayout_2.addLayout(self.horizontalLayout_5) 61 | self.table_saleinfo = QtWidgets.QTableWidget(self.layoutWidget) 62 | self.table_saleinfo.setStyleSheet("QHeaderView::section {background-color:#008CBA ; /* 蓝色 */\n" 63 | " color: WHITE;\n" 64 | " };\n" 65 | " text-align : center;") 66 | self.table_saleinfo.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) 67 | self.table_saleinfo.setObjectName("table_saleinfo") 68 | self.table_saleinfo.setColumnCount(5) 69 | self.table_saleinfo.setRowCount(0) 70 | item = QtWidgets.QTableWidgetItem() 71 | self.table_saleinfo.setHorizontalHeaderItem(0, item) 72 | item = QtWidgets.QTableWidgetItem() 73 | self.table_saleinfo.setHorizontalHeaderItem(1, item) 74 | item = QtWidgets.QTableWidgetItem() 75 | self.table_saleinfo.setHorizontalHeaderItem(2, item) 76 | item = QtWidgets.QTableWidgetItem() 77 | self.table_saleinfo.setHorizontalHeaderItem(3, item) 78 | item = QtWidgets.QTableWidgetItem() 79 | self.table_saleinfo.setHorizontalHeaderItem(4, item) 80 | self.verticalLayout_2.addWidget(self.table_saleinfo) 81 | 82 | self.retranslateUi(Form) 83 | QtCore.QMetaObject.connectSlotsByName(Form) 84 | 85 | def retranslateUi(self, Form): 86 | _translate = QtCore.QCoreApplication.translate 87 | Form.setWindowTitle(_translate("Form", "销售单查询")) 88 | self.label_12.setText(_translate("Form", "销售单查询")) 89 | self.label_13.setText(_translate("Form", "订单编号:")) 90 | self.order_id_saleinfo.setPlaceholderText(_translate("Form", "无")) 91 | self.label_14.setText(_translate("Form", "顾客编号:")) 92 | self.customer_id_saleinfo.setPlaceholderText(_translate("Form", "无")) 93 | self.label_15.setText(_translate("Form", "订单时间:")) 94 | self.comboBox.setItemText(0, _translate("Form", "无")) 95 | self.comboBox.setItemText(1, _translate("Form", "三天内")) 96 | self.comboBox.setItemText(2, _translate("Form", "一周内")) 97 | self.comboBox.setItemText(3, _translate("Form", "一个月内")) 98 | self.search_saleinfo.setText(_translate("Form", "搜索")) 99 | item = self.table_saleinfo.horizontalHeaderItem(0) 100 | item.setText(_translate("Form", "销售单编号")) 101 | item = self.table_saleinfo.horizontalHeaderItem(1) 102 | item.setText(_translate("Form", "顾客名称")) 103 | item = self.table_saleinfo.horizontalHeaderItem(2) 104 | item.setText(_translate("Form", "负责人")) 105 | item = self.table_saleinfo.horizontalHeaderItem(3) 106 | item.setText(_translate("Form", "订单日期")) 107 | item = self.table_saleinfo.horizontalHeaderItem(4) 108 | item.setText(_translate("Form", "操作")) 109 | 110 | import main_rc 111 | 112 | if __name__ == "__main__": 113 | import sys 114 | app = QtWidgets.QApplication(sys.argv) 115 | Form = QtWidgets.QWidget() 116 | ui = Ui_Form() 117 | ui.setupUi(Form) 118 | Form.show() 119 | sys.exit(app.exec_()) 120 | 121 | -------------------------------------------------------------------------------- /UI/Salelist_widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 988 10 | 585 11 | 12 | 13 | 14 | 销售单查询 15 | 16 | 17 | 18 | :/img/resource/search_icon.png:/img/resource/search_icon.png 19 | 20 | 21 | 22 | 23 | 10 24 | 10 25 | 971 26 | 551 27 | 28 | 29 | 30 | 31 | 32 | 33 | 销售单查询 34 | 35 | 36 | Qt::AlignCenter 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 订单编号: 46 | 47 | 48 | Qt::AlignCenter 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 顾客编号: 63 | 64 | 65 | Qt::AlignCenter 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 订单时间: 80 | 81 | 82 | Qt::AlignCenter 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 120 91 | 0 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 三天内 102 | 103 | 104 | 105 | 106 | 一周内 107 | 108 | 109 | 110 | 111 | 一个月内 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 0 121 | 30 122 | 123 | 124 | 125 | 搜索 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 135 | color: WHITE; 136 | }; 137 | text-align : center; 138 | 139 | 140 | QAbstractItemView::NoEditTriggers 141 | 142 | 143 | 144 | 销售单编号 145 | 146 | 147 | 148 | 149 | 顾客名称 150 | 151 | 152 | 153 | 154 | 负责人 155 | 156 | 157 | 158 | 159 | 订单日期 160 | 161 | 162 | 163 | 164 | 操作 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /UI/Supplier_information.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'Supplier_information.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_mainWindow(object): 12 | def setupUi(self, mainWindow): 13 | mainWindow.setObjectName("mainWindow") 14 | mainWindow.resize(1026, 703) 15 | icon = QtGui.QIcon() 16 | icon.addPixmap(QtGui.QPixmap(":/img/resource/supplier_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 17 | mainWindow.setWindowIcon(icon) 18 | mainWindow.setStyleSheet("QHeaderView::section {background-color:#008CBA ; /* 蓝色 */\n" 19 | " color: WHITE;\n" 20 | " };\n" 21 | " text-align : center;") 22 | self.centralwidget = QtWidgets.QWidget(mainWindow) 23 | self.centralwidget.setObjectName("centralwidget") 24 | self.layoutWidget = QtWidgets.QWidget(self.centralwidget) 25 | self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 1001, 671)) 26 | self.layoutWidget.setObjectName("layoutWidget") 27 | self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget) 28 | self.verticalLayout_3.setContentsMargins(0, 0, 0, 0) 29 | self.verticalLayout_3.setObjectName("verticalLayout_3") 30 | self.verticalLayout_9 = QtWidgets.QVBoxLayout() 31 | self.verticalLayout_9.setObjectName("verticalLayout_9") 32 | self.label_39 = QtWidgets.QLabel(self.layoutWidget) 33 | self.label_39.setAlignment(QtCore.Qt.AlignCenter) 34 | self.label_39.setObjectName("label_39") 35 | self.verticalLayout_9.addWidget(self.label_39) 36 | self.horizontalLayout_14 = QtWidgets.QHBoxLayout() 37 | self.horizontalLayout_14.setObjectName("horizontalLayout_14") 38 | self.label_40 = QtWidgets.QLabel(self.layoutWidget) 39 | self.label_40.setAlignment(QtCore.Qt.AlignCenter) 40 | self.label_40.setObjectName("label_40") 41 | self.horizontalLayout_14.addWidget(self.label_40) 42 | self.supplierid_supplier_2 = QtWidgets.QLineEdit(self.layoutWidget) 43 | self.supplierid_supplier_2.setObjectName("supplierid_supplier_2") 44 | self.horizontalLayout_14.addWidget(self.supplierid_supplier_2) 45 | self.label_41 = QtWidgets.QLabel(self.layoutWidget) 46 | self.label_41.setAlignment(QtCore.Qt.AlignCenter) 47 | self.label_41.setObjectName("label_41") 48 | self.horizontalLayout_14.addWidget(self.label_41) 49 | self.name_supplier_2 = QtWidgets.QLineEdit(self.layoutWidget) 50 | self.name_supplier_2.setObjectName("name_supplier_2") 51 | self.horizontalLayout_14.addWidget(self.name_supplier_2) 52 | self.search_supplier_2 = QtWidgets.QPushButton(self.layoutWidget) 53 | self.search_supplier_2.setMinimumSize(QtCore.QSize(0, 30)) 54 | self.search_supplier_2.setObjectName("search_supplier_2") 55 | self.horizontalLayout_14.addWidget(self.search_supplier_2) 56 | self.verticalLayout_9.addLayout(self.horizontalLayout_14) 57 | self.table_supplier_2 = QtWidgets.QTableWidget(self.layoutWidget) 58 | self.table_supplier_2.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) 59 | self.table_supplier_2.setObjectName("table_supplier_2") 60 | self.table_supplier_2.setColumnCount(6) 61 | self.table_supplier_2.setRowCount(0) 62 | item = QtWidgets.QTableWidgetItem() 63 | self.table_supplier_2.setHorizontalHeaderItem(0, item) 64 | item = QtWidgets.QTableWidgetItem() 65 | self.table_supplier_2.setHorizontalHeaderItem(1, item) 66 | item = QtWidgets.QTableWidgetItem() 67 | self.table_supplier_2.setHorizontalHeaderItem(2, item) 68 | item = QtWidgets.QTableWidgetItem() 69 | self.table_supplier_2.setHorizontalHeaderItem(3, item) 70 | item = QtWidgets.QTableWidgetItem() 71 | self.table_supplier_2.setHorizontalHeaderItem(4, item) 72 | item = QtWidgets.QTableWidgetItem() 73 | self.table_supplier_2.setHorizontalHeaderItem(5, item) 74 | self.verticalLayout_9.addWidget(self.table_supplier_2) 75 | self.verticalLayout_3.addLayout(self.verticalLayout_9) 76 | mainWindow.setCentralWidget(self.centralwidget) 77 | self.Current_user = QtWidgets.QAction(mainWindow) 78 | self.Current_user.setEnabled(False) 79 | self.Current_user.setObjectName("Current_user") 80 | self.Current_department = QtWidgets.QAction(mainWindow) 81 | self.Current_department.setEnabled(False) 82 | self.Current_department.setObjectName("Current_department") 83 | self.exit = QtWidgets.QAction(mainWindow) 84 | icon1 = QtGui.QIcon() 85 | icon1.addPixmap(QtGui.QPixmap("../resource/exit_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 86 | self.exit.setIcon(icon1) 87 | self.exit.setVisible(True) 88 | self.exit.setMenuRole(QtWidgets.QAction.TextHeuristicRole) 89 | self.exit.setObjectName("exit") 90 | 91 | self.retranslateUi(mainWindow) 92 | QtCore.QMetaObject.connectSlotsByName(mainWindow) 93 | 94 | def retranslateUi(self, mainWindow): 95 | _translate = QtCore.QCoreApplication.translate 96 | mainWindow.setWindowTitle(_translate("mainWindow", "供应商选择")) 97 | self.label_39.setText(_translate("mainWindow", "供应商信息")) 98 | self.label_40.setText(_translate("mainWindow", "供应商编号:")) 99 | self.label_41.setText(_translate("mainWindow", "供应商名称:")) 100 | self.search_supplier_2.setText(_translate("mainWindow", "搜索")) 101 | item = self.table_supplier_2.horizontalHeaderItem(0) 102 | item.setText(_translate("mainWindow", "供应商编号")) 103 | item = self.table_supplier_2.horizontalHeaderItem(1) 104 | item.setText(_translate("mainWindow", "供应商姓名")) 105 | item = self.table_supplier_2.horizontalHeaderItem(2) 106 | item.setText(_translate("mainWindow", "供应商联系人")) 107 | item = self.table_supplier_2.horizontalHeaderItem(3) 108 | item.setText(_translate("mainWindow", "联系人电话")) 109 | item = self.table_supplier_2.horizontalHeaderItem(4) 110 | item.setText(_translate("mainWindow", "供应商地址")) 111 | item = self.table_supplier_2.horizontalHeaderItem(5) 112 | item.setText(_translate("mainWindow", "操作")) 113 | self.Current_user.setText(_translate("mainWindow", "当前用户:xxxxx")) 114 | self.Current_user.setToolTip(_translate("mainWindow", "当前用户:xxxxx")) 115 | self.Current_department.setText(_translate("mainWindow", "当前部门:xxxxx")) 116 | self.exit.setText(_translate("mainWindow", "退出")) 117 | 118 | import main_rc 119 | 120 | if __name__ == "__main__": 121 | import sys 122 | app = QtWidgets.QApplication(sys.argv) 123 | mainWindow = QtWidgets.QMainWindow() 124 | ui = Ui_mainWindow() 125 | ui.setupUi(mainWindow) 126 | mainWindow.show() 127 | sys.exit(app.exec_()) 128 | 129 | -------------------------------------------------------------------------------- /UI/Supplier_information.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | mainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1026 10 | 703 11 | 12 | 13 | 14 | 供应商选择 15 | 16 | 17 | 18 | :/img/resource/supplier_icon.png:/img/resource/supplier_icon.png 19 | 20 | 21 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 22 | color: WHITE; 23 | }; 24 | text-align : center; 25 | 26 | 27 | 28 | 29 | 30 | 10 31 | 10 32 | 1001 33 | 671 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 供应商信息 43 | 44 | 45 | Qt::AlignCenter 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 供应商编号: 55 | 56 | 57 | Qt::AlignCenter 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 供应商名称: 68 | 69 | 70 | Qt::AlignCenter 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 0 82 | 30 83 | 84 | 85 | 86 | 搜索 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | QAbstractItemView::NoEditTriggers 96 | 97 | 98 | 99 | 供应商编号 100 | 101 | 102 | 103 | 104 | 供应商姓名 105 | 106 | 107 | 108 | 109 | 供应商联系人 110 | 111 | 112 | 113 | 114 | 联系人电话 115 | 116 | 117 | 118 | 119 | 供应商地址 120 | 121 | 122 | 123 | 124 | 操作 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | false 137 | 138 | 139 | 当前用户:xxxxx 140 | 141 | 142 | 当前用户:xxxxx 143 | 144 | 145 | 146 | 147 | false 148 | 149 | 150 | 当前部门:xxxxx 151 | 152 | 153 | 154 | 155 | 156 | ../resource/exit_icon.png../resource/exit_icon.png 157 | 158 | 159 | 退出 160 | 161 | 162 | true 163 | 164 | 165 | QAction::TextHeuristicRole 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | -------------------------------------------------------------------------------- /UI/Supplierinfo_widget.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'Supplierinfo_widget.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Form(object): 12 | def setupUi(self, Form): 13 | Form.setObjectName("Form") 14 | Form.resize(1021, 702) 15 | icon = QtGui.QIcon() 16 | icon.addPixmap(QtGui.QPixmap(":/img/resource/supplier_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 17 | Form.setWindowIcon(icon) 18 | self.layoutWidget = QtWidgets.QWidget(Form) 19 | self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 1001, 671)) 20 | self.layoutWidget.setObjectName("layoutWidget") 21 | self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget) 22 | self.verticalLayout_3.setContentsMargins(0, 0, 0, 0) 23 | self.verticalLayout_3.setObjectName("verticalLayout_3") 24 | self.verticalLayout_9 = QtWidgets.QVBoxLayout() 25 | self.verticalLayout_9.setObjectName("verticalLayout_9") 26 | self.label_39 = QtWidgets.QLabel(self.layoutWidget) 27 | self.label_39.setAlignment(QtCore.Qt.AlignCenter) 28 | self.label_39.setObjectName("label_39") 29 | self.verticalLayout_9.addWidget(self.label_39) 30 | self.horizontalLayout_14 = QtWidgets.QHBoxLayout() 31 | self.horizontalLayout_14.setObjectName("horizontalLayout_14") 32 | self.label_40 = QtWidgets.QLabel(self.layoutWidget) 33 | self.label_40.setAlignment(QtCore.Qt.AlignCenter) 34 | self.label_40.setObjectName("label_40") 35 | self.horizontalLayout_14.addWidget(self.label_40) 36 | self.supplierid = QtWidgets.QLineEdit(self.layoutWidget) 37 | self.supplierid.setObjectName("supplierid") 38 | self.horizontalLayout_14.addWidget(self.supplierid) 39 | self.label_41 = QtWidgets.QLabel(self.layoutWidget) 40 | self.label_41.setAlignment(QtCore.Qt.AlignCenter) 41 | self.label_41.setObjectName("label_41") 42 | self.horizontalLayout_14.addWidget(self.label_41) 43 | self.name = QtWidgets.QLineEdit(self.layoutWidget) 44 | self.name.setObjectName("name") 45 | self.horizontalLayout_14.addWidget(self.name) 46 | self.search = QtWidgets.QPushButton(self.layoutWidget) 47 | self.search.setMinimumSize(QtCore.QSize(0, 30)) 48 | self.search.setObjectName("search") 49 | self.horizontalLayout_14.addWidget(self.search) 50 | self.verticalLayout_9.addLayout(self.horizontalLayout_14) 51 | self.table_supplier = QtWidgets.QTableWidget(self.layoutWidget) 52 | self.table_supplier.setStyleSheet("QHeaderView::section {background-color:#008CBA ; /* 蓝色 */\n" 53 | " color: WHITE;\n" 54 | " };\n" 55 | " text-align : center;") 56 | self.table_supplier.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) 57 | self.table_supplier.setObjectName("table_supplier") 58 | self.table_supplier.setColumnCount(6) 59 | self.table_supplier.setRowCount(0) 60 | item = QtWidgets.QTableWidgetItem() 61 | self.table_supplier.setHorizontalHeaderItem(0, item) 62 | item = QtWidgets.QTableWidgetItem() 63 | self.table_supplier.setHorizontalHeaderItem(1, item) 64 | item = QtWidgets.QTableWidgetItem() 65 | self.table_supplier.setHorizontalHeaderItem(2, item) 66 | item = QtWidgets.QTableWidgetItem() 67 | self.table_supplier.setHorizontalHeaderItem(3, item) 68 | item = QtWidgets.QTableWidgetItem() 69 | self.table_supplier.setHorizontalHeaderItem(4, item) 70 | item = QtWidgets.QTableWidgetItem() 71 | self.table_supplier.setHorizontalHeaderItem(5, item) 72 | self.verticalLayout_9.addWidget(self.table_supplier) 73 | self.verticalLayout_3.addLayout(self.verticalLayout_9) 74 | 75 | self.retranslateUi(Form) 76 | QtCore.QMetaObject.connectSlotsByName(Form) 77 | 78 | def retranslateUi(self, Form): 79 | _translate = QtCore.QCoreApplication.translate 80 | Form.setWindowTitle(_translate("Form", "供应商选择界面")) 81 | self.label_39.setText(_translate("Form", "供应商信息")) 82 | self.label_40.setText(_translate("Form", "供应商编号:")) 83 | self.label_41.setText(_translate("Form", "供应商名称:")) 84 | self.search.setText(_translate("Form", "搜索")) 85 | item = self.table_supplier.horizontalHeaderItem(0) 86 | item.setText(_translate("Form", "供应商编号")) 87 | item = self.table_supplier.horizontalHeaderItem(1) 88 | item.setText(_translate("Form", "供应商姓名")) 89 | item = self.table_supplier.horizontalHeaderItem(2) 90 | item.setText(_translate("Form", "供应商联系人")) 91 | item = self.table_supplier.horizontalHeaderItem(3) 92 | item.setText(_translate("Form", "联系人电话")) 93 | item = self.table_supplier.horizontalHeaderItem(4) 94 | item.setText(_translate("Form", "供应商地址")) 95 | item = self.table_supplier.horizontalHeaderItem(5) 96 | item.setText(_translate("Form", "操作")) 97 | 98 | import main_rc 99 | 100 | if __name__ == "__main__": 101 | import sys 102 | app = QtWidgets.QApplication(sys.argv) 103 | Form = QtWidgets.QWidget() 104 | ui = Ui_Form() 105 | ui.setupUi(Form) 106 | Form.show() 107 | sys.exit(app.exec_()) 108 | 109 | -------------------------------------------------------------------------------- /UI/Supplierinfo_widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1021 10 | 702 11 | 12 | 13 | 14 | 供应商选择界面 15 | 16 | 17 | 18 | :/img/resource/supplier_icon.png:/img/resource/supplier_icon.png 19 | 20 | 21 | 22 | 23 | 10 24 | 10 25 | 1001 26 | 671 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 供应商信息 36 | 37 | 38 | Qt::AlignCenter 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 供应商编号: 48 | 49 | 50 | Qt::AlignCenter 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 供应商名称: 61 | 62 | 63 | Qt::AlignCenter 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 0 75 | 30 76 | 77 | 78 | 79 | 搜索 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 89 | color: WHITE; 90 | }; 91 | text-align : center; 92 | 93 | 94 | QAbstractItemView::NoEditTriggers 95 | 96 | 97 | 98 | 供应商编号 99 | 100 | 101 | 102 | 103 | 供应商姓名 104 | 105 | 106 | 107 | 108 | 供应商联系人 109 | 110 | 111 | 112 | 113 | 联系人电话 114 | 115 | 116 | 117 | 118 | 供应商地址 119 | 120 | 121 | 122 | 123 | 操作 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /UI/__pycache__/Customerinfo_widget.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/Customerinfo_widget.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/Orderinfo_widget.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/Orderinfo_widget.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/Purchaseorderquery_widget.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/Purchaseorderquery_widget.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/Saleinfo_widget.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/Saleinfo_widget.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/Salelist_widget.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/Salelist_widget.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/Supplierinfo_widget.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/Supplierinfo_widget.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/addGoods_widget.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/addGoods_widget.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/login.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/login.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/outboundinfo_widget.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/outboundinfo_widget.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/user_purchasing.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/user_purchasing.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/user_sale.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/user_sale.cpython-38.pyc -------------------------------------------------------------------------------- /UI/__pycache__/user_warehouse.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UI/__pycache__/user_warehouse.cpython-38.pyc -------------------------------------------------------------------------------- /UI/addGoods_widget.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'addGoods_widget.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Form(object): 12 | def setupUi(self, Form): 13 | Form.setObjectName("Form") 14 | Form.resize(1050, 558) 15 | icon = QtGui.QIcon() 16 | icon.addPixmap(QtGui.QPixmap(":/img/resource/Goods_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 17 | Form.setWindowIcon(icon) 18 | self.layoutWidget_4 = QtWidgets.QWidget(Form) 19 | self.layoutWidget_4.setGeometry(QtCore.QRect(10, 10, 1031, 521)) 20 | self.layoutWidget_4.setObjectName("layoutWidget_4") 21 | self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.layoutWidget_4) 22 | self.verticalLayout_6.setContentsMargins(0, 0, 0, 0) 23 | self.verticalLayout_6.setObjectName("verticalLayout_6") 24 | self.label_25 = QtWidgets.QLabel(self.layoutWidget_4) 25 | self.label_25.setAlignment(QtCore.Qt.AlignCenter) 26 | self.label_25.setObjectName("label_25") 27 | self.verticalLayout_6.addWidget(self.label_25) 28 | self.horizontalLayout_8 = QtWidgets.QHBoxLayout() 29 | self.horizontalLayout_8.setObjectName("horizontalLayout_8") 30 | self.label_26 = QtWidgets.QLabel(self.layoutWidget_4) 31 | self.label_26.setMaximumSize(QtCore.QSize(100, 16777215)) 32 | self.label_26.setAlignment(QtCore.Qt.AlignCenter) 33 | self.label_26.setObjectName("label_26") 34 | self.horizontalLayout_8.addWidget(self.label_26) 35 | self.goodsid_goods = QtWidgets.QLineEdit(self.layoutWidget_4) 36 | self.goodsid_goods.setMaximumSize(QtCore.QSize(200, 16777215)) 37 | self.goodsid_goods.setObjectName("goodsid_goods") 38 | self.horizontalLayout_8.addWidget(self.goodsid_goods) 39 | self.label_27 = QtWidgets.QLabel(self.layoutWidget_4) 40 | self.label_27.setMaximumSize(QtCore.QSize(100, 16777215)) 41 | self.label_27.setAlignment(QtCore.Qt.AlignCenter) 42 | self.label_27.setObjectName("label_27") 43 | self.horizontalLayout_8.addWidget(self.label_27) 44 | self.goodsname_goods = QtWidgets.QLineEdit(self.layoutWidget_4) 45 | self.goodsname_goods.setMaximumSize(QtCore.QSize(200, 16777215)) 46 | self.goodsname_goods.setObjectName("goodsname_goods") 47 | self.horizontalLayout_8.addWidget(self.goodsname_goods) 48 | self.search_goods = QtWidgets.QPushButton(self.layoutWidget_4) 49 | self.search_goods.setMaximumSize(QtCore.QSize(100, 16777215)) 50 | self.search_goods.setObjectName("search_goods") 51 | self.horizontalLayout_8.addWidget(self.search_goods) 52 | self.verticalLayout_6.addLayout(self.horizontalLayout_8) 53 | self.table_goods = QtWidgets.QTableWidget(self.layoutWidget_4) 54 | self.table_goods.setStyleSheet("QHeaderView::section {background-color:#008CBA ; /* 蓝色 */\n" 55 | " color: WHITE;\n" 56 | " };\n" 57 | " text-align : center;") 58 | self.table_goods.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) 59 | self.table_goods.setObjectName("table_goods") 60 | self.table_goods.setColumnCount(8) 61 | self.table_goods.setRowCount(0) 62 | item = QtWidgets.QTableWidgetItem() 63 | self.table_goods.setHorizontalHeaderItem(0, item) 64 | item = QtWidgets.QTableWidgetItem() 65 | self.table_goods.setHorizontalHeaderItem(1, item) 66 | item = QtWidgets.QTableWidgetItem() 67 | self.table_goods.setHorizontalHeaderItem(2, item) 68 | item = QtWidgets.QTableWidgetItem() 69 | self.table_goods.setHorizontalHeaderItem(3, item) 70 | item = QtWidgets.QTableWidgetItem() 71 | self.table_goods.setHorizontalHeaderItem(4, item) 72 | item = QtWidgets.QTableWidgetItem() 73 | self.table_goods.setHorizontalHeaderItem(5, item) 74 | item = QtWidgets.QTableWidgetItem() 75 | self.table_goods.setHorizontalHeaderItem(6, item) 76 | item = QtWidgets.QTableWidgetItem() 77 | self.table_goods.setHorizontalHeaderItem(7, item) 78 | self.verticalLayout_6.addWidget(self.table_goods) 79 | 80 | self.retranslateUi(Form) 81 | QtCore.QMetaObject.connectSlotsByName(Form) 82 | 83 | def retranslateUi(self, Form): 84 | _translate = QtCore.QCoreApplication.translate 85 | Form.setWindowTitle(_translate("Form", "商品添加页面")) 86 | self.label_25.setText(_translate("Form", "商品信息")) 87 | self.label_26.setText(_translate("Form", "商品编号:")) 88 | self.goodsid_goods.setPlaceholderText(_translate("Form", "无")) 89 | self.label_27.setText(_translate("Form", "商品名称:")) 90 | self.goodsname_goods.setPlaceholderText(_translate("Form", "无")) 91 | self.search_goods.setText(_translate("Form", "搜索")) 92 | item = self.table_goods.horizontalHeaderItem(0) 93 | item.setText(_translate("Form", "商品编号")) 94 | item = self.table_goods.horizontalHeaderItem(1) 95 | item.setText(_translate("Form", "商品名称")) 96 | item = self.table_goods.horizontalHeaderItem(2) 97 | item.setText(_translate("Form", "商品单位")) 98 | item = self.table_goods.horizontalHeaderItem(3) 99 | item.setText(_translate("Form", "供应商")) 100 | item = self.table_goods.horizontalHeaderItem(4) 101 | item.setText(_translate("Form", "销售单价/元")) 102 | item = self.table_goods.horizontalHeaderItem(5) 103 | item.setText(_translate("Form", "库存数量")) 104 | item = self.table_goods.horizontalHeaderItem(6) 105 | item.setText(_translate("Form", "成本单价/元")) 106 | item = self.table_goods.horizontalHeaderItem(7) 107 | item.setText(_translate("Form", "操作")) 108 | 109 | import main_rc 110 | 111 | if __name__ == "__main__": 112 | import sys 113 | app = QtWidgets.QApplication(sys.argv) 114 | Form = QtWidgets.QWidget() 115 | ui = Ui_Form() 116 | ui.setupUi(Form) 117 | Form.show() 118 | sys.exit(app.exec_()) 119 | 120 | -------------------------------------------------------------------------------- /UI/addGoods_widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1050 10 | 558 11 | 12 | 13 | 14 | 商品添加页面 15 | 16 | 17 | 18 | :/img/resource/Goods_icon.png:/img/resource/Goods_icon.png 19 | 20 | 21 | 22 | 23 | 10 24 | 10 25 | 1031 26 | 521 27 | 28 | 29 | 30 | 31 | 32 | 33 | 商品信息 34 | 35 | 36 | Qt::AlignCenter 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 100 47 | 16777215 48 | 49 | 50 | 51 | 商品编号: 52 | 53 | 54 | Qt::AlignCenter 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 200 63 | 16777215 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 100 76 | 16777215 77 | 78 | 79 | 80 | 商品名称: 81 | 82 | 83 | Qt::AlignCenter 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 200 92 | 16777215 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 100 105 | 16777215 106 | 107 | 108 | 109 | 搜索 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 119 | color: WHITE; 120 | }; 121 | text-align : center; 122 | 123 | 124 | QAbstractItemView::NoEditTriggers 125 | 126 | 127 | 128 | 商品编号 129 | 130 | 131 | 132 | 133 | 商品名称 134 | 135 | 136 | 137 | 138 | 商品单位 139 | 140 | 141 | 142 | 143 | 供应商 144 | 145 | 146 | 147 | 148 | 销售单价/元 149 | 150 | 151 | 152 | 153 | 库存数量 154 | 155 | 156 | 157 | 158 | 成本单价/元 159 | 160 | 161 | 162 | 163 | 操作 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | -------------------------------------------------------------------------------- /UI/outboundinfo_widget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1097 10 | 608 11 | 12 | 13 | 14 | 出库单详情 15 | 16 | 17 | 18 | :/img/resource/info_icon.png:/img/resource/info_icon.png 19 | 20 | 21 | 22 | 23 | 11 24 | 11 25 | 1071 26 | 571 27 | 28 | 29 | 30 | 31 | 32 | 33 | 出库单详情 34 | 35 | 36 | Qt::AlignCenter 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 出库单编号: 46 | 47 | 48 | Qt::AlignCenter 49 | 50 | 51 | 52 | 53 | 54 | 55 | Qt::NoFocus 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 0 64 | 0 65 | 66 | 67 | 68 | 69 | 16777215 70 | 16777215 71 | 72 | 73 | 74 | 关联销售单编号: 75 | 76 | 77 | Qt::AlignCenter 78 | 79 | 80 | 81 | 82 | 83 | 84 | Qt::NoFocus 85 | 86 | 87 | 88 | 89 | 90 | 91 | 顾客编号: 92 | 93 | 94 | Qt::AlignCenter 95 | 96 | 97 | 98 | 99 | 100 | 101 | Qt::NoFocus 102 | 103 | 104 | 105 | 106 | 107 | 108 | 顾客名称: 109 | 110 | 111 | Qt::AlignCenter 112 | 113 | 114 | 115 | 116 | 117 | 118 | Qt::NoFocus 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 顾客电话: 130 | 131 | 132 | Qt::AlignCenter 133 | 134 | 135 | 136 | 137 | 138 | 139 | Qt::NoFocus 140 | 141 | 142 | 143 | 144 | 145 | 146 | 送货地址: 147 | 148 | 149 | Qt::AlignCenter 150 | 151 | 152 | 153 | 154 | 155 | 156 | Qt::NoFocus 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 销售负责人: 167 | 168 | 169 | Qt::AlignCenter 170 | 171 | 172 | 173 | 174 | 175 | 176 | Qt::NoFocus 177 | 178 | 179 | 180 | 181 | 182 | 183 | 下单时间: 184 | 185 | 186 | Qt::AlignCenter 187 | 188 | 189 | 190 | 191 | 192 | 193 | Qt::NoFocus 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 203 | color: WHITE; 204 | }; 205 | text-align : center; 206 | 207 | 208 | QAbstractItemView::NoEditTriggers 209 | 210 | 211 | true 212 | 213 | 214 | true 215 | 216 | 217 | 218 | 商品编号 219 | 220 | 221 | 222 | 223 | 商品名称 224 | 225 | 226 | 227 | 228 | 商品供应商 229 | 230 | 231 | 232 | 233 | 出库数量 234 | 235 | 236 | 237 | 238 | 商品单位 239 | 240 | 241 | 242 | 243 | 单位售价/元 244 | 245 | 246 | 247 | 248 | 总价/元 249 | 250 | 251 | 252 | 253 | 出库单状态 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | -------------------------------------------------------------------------------- /UML/user.purchasing_win.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/user.purchasing_win.png -------------------------------------------------------------------------------- /UML/user.purchasing_win_lite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/user.purchasing_win_lite.png -------------------------------------------------------------------------------- /UML/vo.Customer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Customer.png -------------------------------------------------------------------------------- /UML/vo.Dispatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Dispatch.png -------------------------------------------------------------------------------- /UML/vo.Goods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Goods.png -------------------------------------------------------------------------------- /UML/vo.Inbound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Inbound.png -------------------------------------------------------------------------------- /UML/vo.Manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Manager.png -------------------------------------------------------------------------------- /UML/vo.Order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Order.png -------------------------------------------------------------------------------- /UML/vo.Outbound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Outbound.png -------------------------------------------------------------------------------- /UML/vo.Purchase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Purchase.png -------------------------------------------------------------------------------- /UML/vo.Return.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Return.png -------------------------------------------------------------------------------- /UML/vo.Sale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Sale.png -------------------------------------------------------------------------------- /UML/vo.Supplier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/UML/vo.Supplier.png -------------------------------------------------------------------------------- /__pycache__/main.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/__pycache__/main.cpython-38.pyc -------------------------------------------------------------------------------- /build/main/PYZ-00.pyz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/build/main/PYZ-00.pyz -------------------------------------------------------------------------------- /build/main/Tree-02.toc: -------------------------------------------------------------------------------- 1 | ('C:\\ProgramData\\Anaconda3\\tcl\\tcl8.6\\..\\tcl8', 2 | 'tcl8', 3 | [], 4 | 'DATA', 5 | [('tcl8\\8.6\\http-2.9.0.tm', 6 | 'C:\\ProgramData\\Anaconda3\\tcl\\tcl8.6\\..\\tcl8\\8.6\\http-2.9.0.tm', 7 | 'DATA'), 8 | ('tcl8\\8.5\\msgcat-1.6.1.tm', 9 | 'C:\\ProgramData\\Anaconda3\\tcl\\tcl8.6\\..\\tcl8\\8.5\\msgcat-1.6.1.tm', 10 | 'DATA'), 11 | ('tcl8\\8.5\\tcltest-2.5.0.tm', 12 | 'C:\\ProgramData\\Anaconda3\\tcl\\tcl8.6\\..\\tcl8\\8.5\\tcltest-2.5.0.tm', 13 | 'DATA'), 14 | ('tcl8\\8.4\\platform-1.0.14.tm', 15 | 'C:\\ProgramData\\Anaconda3\\tcl\\tcl8.6\\..\\tcl8\\8.4\\platform-1.0.14.tm', 16 | 'DATA'), 17 | ('tcl8\\8.4\\platform\\shell-1.1.4.tm', 18 | 'C:\\ProgramData\\Anaconda3\\tcl\\tcl8.6\\..\\tcl8\\8.4\\platform\\shell-1.1.4.tm', 19 | 'DATA')]) 20 | -------------------------------------------------------------------------------- /build/main/base_library.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/build/main/base_library.zip -------------------------------------------------------------------------------- /build/main/main.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | true 28 | 29 | 30 | -------------------------------------------------------------------------------- /build/main/main.pkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/build/main/main.pkg -------------------------------------------------------------------------------- /build/main/warn-main.txt: -------------------------------------------------------------------------------- 1 | 2 | This file lists modules PyInstaller was not able to find. This does not 3 | necessarily mean this module is required for running your program. Python and 4 | Python 3rd-party packages include a lot of conditional or optional modules. For 5 | example the module 'ntpath' only exists on Windows, whereas the module 6 | 'posixpath' only exists on Posix systems. 7 | 8 | Types if import: 9 | * top-level: imported at the top-level - look at these first 10 | * conditional: imported within an if-statement 11 | * delayed: imported within a function 12 | * optional: imported within a try-except-statement 13 | 14 | IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for 15 | tracking down the missing module yourself. Thanks! 16 | 17 | missing module named _posixsubprocess - imported by subprocess (optional), multiprocessing.util (delayed) 18 | missing module named grp - imported by shutil (optional), tarfile (optional), subprocess (optional), pathlib (delayed, optional) 19 | missing module named pwd - imported by posixpath (delayed, conditional), shutil (optional), tarfile (optional), subprocess (optional), pathlib (delayed, conditional, optional), http.server (delayed, optional), webbrowser (delayed), netrc (delayed, conditional), getpass (delayed), distutils.util (delayed, conditional, optional) 20 | missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), zipimport (top-level) 21 | excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), zipimport (top-level) 22 | missing module named pep517 - imported by importlib.metadata (delayed) 23 | missing module named _posixshmem - imported by multiprocessing.resource_tracker (conditional), multiprocessing.shared_memory (conditional) 24 | missing module named multiprocessing.set_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level) 25 | missing module named multiprocessing.get_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level) 26 | missing module named multiprocessing.get_context - imported by multiprocessing (top-level), multiprocessing.pool (top-level), multiprocessing.managers (top-level), multiprocessing.sharedctypes (top-level) 27 | missing module named multiprocessing.TimeoutError - imported by multiprocessing (top-level), multiprocessing.pool (top-level) 28 | missing module named _scproxy - imported by urllib.request (conditional) 29 | missing module named termios - imported by tty (top-level), getpass (optional) 30 | missing module named 'org.python' - imported by copy (optional), xml.sax (delayed, conditional) 31 | missing module named 'java.lang' - imported by platform (delayed, optional), xml.sax._exceptions (conditional) 32 | missing module named multiprocessing.BufferTooShort - imported by multiprocessing (top-level), multiprocessing.connection (top-level) 33 | missing module named multiprocessing.AuthenticationError - imported by multiprocessing (top-level), multiprocessing.connection (top-level) 34 | missing module named asyncio.DefaultEventLoopPolicy - imported by asyncio (delayed, conditional), asyncio.events (delayed, conditional) 35 | missing module named vms_lib - imported by platform (delayed, optional) 36 | missing module named java - imported by platform (delayed) 37 | missing module named _winreg - imported by platform (delayed, optional) 38 | missing module named console - imported by pyreadline.console.ansi (conditional) 39 | missing module named startup - imported by pyreadline.keysyms.common (conditional), pyreadline.keysyms.keysyms (conditional) 40 | missing module named sets - imported by pyreadline.keysyms.common (optional) 41 | missing module named System - imported by pyreadline.clipboard.ironpython_clipboard (top-level), pyreadline.keysyms.ironpython_keysyms (top-level), pyreadline.console.ironpython_console (top-level), pyreadline.rlmain (conditional) 42 | missing module named StringIO - imported by pyreadline.py3k_compat (conditional), six (conditional) 43 | missing module named IronPythonConsole - imported by pyreadline.console.ironpython_console (top-level) 44 | missing module named clr - imported by pyreadline.clipboard.ironpython_clipboard (top-level), pyreadline.console.ironpython_console (top-level) 45 | missing module named org - imported by pickle (optional) 46 | missing module named posix - imported by os (conditional, optional), shutil (conditional), importlib._bootstrap_external (conditional) 47 | missing module named pyimod03_importers - imported by C:\ProgramData\Anaconda3\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py (top-level) 48 | -------------------------------------------------------------------------------- /dist/更新记录.txt: -------------------------------------------------------------------------------- 1 | 20220403 1.0 beta1 2 | 1.软件第一次发布; 3 | 2.发放给了多名同学协助测试并收集BUG反馈; 4 | 5 | 收集反馈: 6 | 1.部门数字选择框不应有最大值(例如:采购管理-填写采购单-采购数量);(已修复) 7 | 2.盘库 修改数量 按钮按下之后没有消息提示;(已修复) 8 | 3.顾客电话检查一下文本;(非致命错误)(待修复) 9 | 4.顾客编号、单号、关联单号等输入框未设置禁止用户输入;(已修复) 10 | 5.单元格应禁止用户修改;(已修复) 11 | 6.登录没有检查密码;(逻辑问题,已修复) 12 | 7.部分窗口打开太慢;(数据库所在服务器在海外,且reload()逻辑需要优化,已修复) 13 | 8.部分按钮按下之后没有检查输入框是否为空(已修复); 14 | 9.盘库操作未检查商品是否已删除;(已修复) 15 | 10.出库单发货之后,发货单号清空不更新;(已修复) 16 | 17 | 18 | 20220405 1.0 beta2 19 | 1.修复了beta1同学发现的BUG; 20 | 2.重绘了登录窗口; 21 | 3.添加了资源图标; 22 | 4.添加了发货功能; 23 | 5.借了个国内服务器,把数据库放在了国内,加快了速度; 24 | 6.优化了部分逻辑,减少不必要的数据库连接,加快速度; 25 | 26 | 27 | 20220411 1.0 beta3 28 | 1.修复了添加商品的逻辑(商品选择页面只显示该供应商的商品); 29 | 2.添加了判断空逻辑,防止访问数据库为空,返回None时崩溃; 30 | 3.UI美化; 31 | 32 | 33 | 20220428 1.0 beta4 34 | 1.UI美化; 35 | 2.优化不必要的代码,加快链接速度; 36 | 3.添加了暂存采购单功能,在销售商品如果遇到库存不足的状况时触发; -------------------------------------------------------------------------------- /dist/药品进销存管理系统-2019212239-卫闰朴-beta4.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/dist/药品进销存管理系统-2019212239-卫闰朴-beta4.exe -------------------------------------------------------------------------------- /docs/物流信息系统设计.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/docs/物流信息系统设计.docx -------------------------------------------------------------------------------- /func/CustomerFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Customer import Customer 3 | 4 | 5 | # 查询全部顾客信息 6 | def selectCustomer(): 7 | sql = "SELECT * FROM tb_customer" 8 | conn = db.MyDbUtil() 9 | result = conn.query_sql(sql) 10 | conn.close_db() 11 | customer = [] 12 | if result is None: 13 | return None 14 | for item in result: 15 | customer_id, customer_name, customer_phone, customer_address, isdelete = item 16 | customer.append(Customer(customer_id, customer_name, customer_phone, customer_address, isdelete)) 17 | return customer 18 | 19 | 20 | # 通过顾客编号查询顾客信息 21 | def selectCustomerByCustomerId(customer_id): 22 | sql = f"SELECT * FROM tb_customer WHERE customer_id='{customer_id}'" 23 | conn = db.MyDbUtil() 24 | result = conn.query_sql(sql) 25 | conn.close_db() 26 | if result is None: 27 | return None 28 | customer = [] 29 | for item in result: 30 | customer_id, customer_name, customer_phone, customer_address, isdelete = item 31 | customer.append(Customer(customer_id, customer_name, customer_phone, customer_address, isdelete)) 32 | return customer 33 | 34 | 35 | # 插入顾客信息 36 | def insertCustomer(customer): 37 | Customer_id, Customer_name, Customer_phone, Customer_addr = customer.getReturnTuple() 38 | key = "Customer_id,Customer_name,Customer_phone,Customer_addr" 39 | val = f"'{Customer_id}','{Customer_name}','{Customer_phone}','{Customer_addr}'" 40 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_customer", key=key, val=val) 41 | conn = db.MyDbUtil() 42 | flag = conn.execute(sql) 43 | conn.close_db() 44 | return flag 45 | 46 | 47 | # 删除顾客信息 48 | def deleteCustomer(customer_id): 49 | con = f"Customer_id = '{customer_id}'" 50 | sql = "UPDATE {table} SET isdelete={isdelete} WHERE ({con})".format(table="tb_customer", isdelete=1, con=con) 51 | conn = db.MyDbUtil() 52 | flag = conn.execute(sql) 53 | conn.close_db() 54 | return flag 55 | 56 | 57 | # 通过keywords查找顾客信息 58 | def selectCustomerByKeywords(Customer_id, Customer_name): 59 | sql = f"SELECT * FROM tb_customer WHERE Customer_id LIKE '%{Customer_id}%' AND Customer_name LIKE '%{Customer_name}%'" 60 | conn = db.MyDbUtil() 61 | result = conn.query_sql(sql) 62 | conn.close_db() 63 | customer = [] 64 | if result is None: 65 | return None 66 | for item in result: 67 | customer_id, customer_name, customer_phone, customer_address, isdelete = item 68 | customer.append(Customer(customer_id, customer_name, customer_phone, customer_address, isdelete)) 69 | return customer 70 | 71 | 72 | if __name__ == "__main__": 73 | selectCustomerByKeywords(1, "") 74 | -------------------------------------------------------------------------------- /func/DatabaseConnection.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | 3 | 4 | class MyDbUtil(object): 5 | def __init__(self): 6 | self._conn = pymysql.connect(host="tars-knock.cn", 7 | user="root", 8 | port=3306, 9 | password="0285935672Ss.", 10 | charset="utf8", 11 | database="MedicineManagementSystem") 12 | # medicine invoicing management system 13 | self.__cursor = self._conn.cursor() 14 | 15 | def close_db(self): 16 | self.__cursor.close() 17 | self._conn.close() 18 | 19 | def execute(self, sql): 20 | """ 21 | :param table: 22 | :param insert_data type:[{},{}]: 23 | :return:effect_row 1 影响的行数 24 | """ 25 | try: 26 | self.__cursor.execute(sql) # 返回值为 effect_row 27 | self._conn.commit() 28 | return True 29 | except Exception as e: 30 | print(e) 31 | return False 32 | finally: 33 | # self.close_db() 34 | pass 35 | 36 | 37 | def update(self, table, data, condition=None): 38 | """ 39 | :param table: 40 | :param data type 字典 {}: 41 | :param condition tpye 字典 {}: 42 | :return: 43 | """ 44 | update_list = self._deal_values(data) 45 | update_data = ",".join(update_list) 46 | if condition is not None: 47 | condition_list = self._deal_values(condition) 48 | condition_data = ' and '.join(condition_list) 49 | sql = "update {table} set {values} where {condition}".format(table=table, values=update_data, 50 | condition=condition_data) 51 | else: 52 | sql = "update {table} set {values}".format(table=table, values=update_data) 53 | effect_row = self.__cursor.execute(sql) 54 | self._conn.commit() 55 | # self.close_db() 56 | return effect_row 57 | 58 | def select_id(self, table, id): 59 | """ 60 | :param table: 61 | :param show_list type 列表 (字段): 62 | :param condition type 字典: 63 | :param get_one bool: 64 | :return: 65 | """ 66 | sql = "select * from {table} where id = {id}".format(table=table, id=id) 67 | self.__cursor.execute(sql) 68 | result = self.__cursor.fetchone() 69 | # self.close_db() 70 | if result: 71 | return result 72 | else: 73 | return None 74 | 75 | def select_some(self, table, filed, value): 76 | """ 77 | :param table: 78 | :param show_list type 列表 (字段): 79 | :param condition type 字典: 80 | :return: 81 | """ 82 | sql = "select * from {table} where {filed} = '{value}'".format(table=table, filed=filed, value=value) 83 | self.__cursor.execute(sql) 84 | result = self.__cursor.fetchall() 85 | # self.close_db() 86 | if result: 87 | return result 88 | else: 89 | return None 90 | 91 | def select_all(self, table): 92 | """ 93 | :param table: 94 | :param show_list type 列表 (字段): 95 | :param condition type 字典: 96 | :return: 97 | """ 98 | sql = "select * from {table}".format(table=table) 99 | self.__cursor.execute(sql) 100 | result = self.__cursor.fetchall() 101 | # self.close_db() 102 | if result: 103 | return result 104 | else: 105 | return None 106 | 107 | def query_sql(self, sql): 108 | self.__cursor.execute(sql) 109 | result = self.__cursor.fetchall() 110 | if result: 111 | return result 112 | else: 113 | return None 114 | 115 | def _deal_values(self, value): 116 | """ 117 | self._deal_values(value) -> str or list 118 | 处理传进来的参数 119 | """ 120 | # 如果是字符串则加上'' 121 | if isinstance(value, str): 122 | value = ("'{value}'".format(value=value)) 123 | # 如果是字典则变成key=value形式 124 | elif isinstance(value, dict): 125 | result = [] 126 | for key, value in value.items(): 127 | value = self._deal_values(value) 128 | res = "{key}={value}".format(key=key, value=value) 129 | result.append(res) 130 | return result 131 | else: 132 | value = (str(value)) 133 | return value 134 | 135 | 136 | if __name__ == "__main__": 137 | mydb = MyDbUtil() 138 | rs = mydb.query_sql("select * from tb_return") 139 | print(rs) 140 | -------------------------------------------------------------------------------- /func/DispatchFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Dispatch import Dispatch 3 | import time 4 | 5 | 6 | # 插入发货单信息 7 | def insertDispatch(dispatch): 8 | dispatch_id, account_id, out_id, disp_date = dispatch.getReturnTuple() 9 | key = "disp_id, account, out_id, disp_date" 10 | val = f"'{dispatch_id}','{account_id}','{out_id}','{disp_date}'" 11 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_dispatch", key=key, val=val) 12 | conn = db.MyDbUtil() 13 | flag = conn.execute(sql) 14 | conn.close_db() 15 | return flag 16 | 17 | 18 | # 查询全部发货单 19 | def selectDispatch(): 20 | sql = "SELECT DISTINCT disp_id,account,out_id,disp_date FROM tb_dispatch " 21 | conn = db.MyDbUtil() 22 | result = conn.query_sql(sql) 23 | conn.close_db() 24 | dispatch = [] 25 | if result is None: 26 | return None 27 | for item in result: 28 | dispatch_id, account_id, out_id, disp_date = item 29 | dispatch.append(Dispatch(dispatch_id, account_id, out_id, disp_date)) 30 | return dispatch 31 | 32 | 33 | # 通过发货单ID查询发货单 34 | def selectDispatchByDispatchId(Disp_id): 35 | sql = f"SELECT * FROM tb_Dispatch WHERE Disp_id='{Disp_id}'" 36 | conn = db.MyDbUtil() 37 | result = conn.query_sql(sql) 38 | conn.close_db() 39 | dispatch = [] 40 | if result is None: 41 | return None 42 | for item in result: 43 | dispatch_id, account_id, out_id, disp_date = item 44 | dispatch.append(Dispatch(dispatch_id, account_id, out_id, disp_date)) 45 | return dispatch 46 | 47 | 48 | if __name__ == "__main__": 49 | selectDispatchByDispatchId(0) -------------------------------------------------------------------------------- /func/DraftOrderFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.DraftOrder import DraftOrder 3 | 4 | 5 | # 插入暂存订货单信息 6 | def insertDraftOrder(draftorder): 7 | draftorder_id, sale_id, goods_id, order_num, supplier_id, account_id, date, isfinish, isdelete = draftorder.getReturnTuple() 8 | key = "draftorder_id, sale_id, goods_id, order_num, supplier_id, account_id, date" 9 | val = f"'{draftorder_id}','{sale_id}','{goods_id}','{order_num}','{supplier_id}','{account_id}','{date}'" 10 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_draftorder", key=key, val=val) 11 | conn = db.MyDbUtil() 12 | flag = conn.execute(sql) 13 | conn.close_db() 14 | return flag 15 | 16 | 17 | # 查询全部发货单 18 | def selectDraftOrder(): 19 | sql = "SELECT DISTINCT draftorder_id, sale_id, goods_id, order_num, supplier_id, account_id, date, isfinish, isdelete FROM tb_draftorder " 20 | conn = db.MyDbUtil() 21 | result = conn.query_sql(sql) 22 | conn.close_db() 23 | draftorder = [] 24 | if result is None: 25 | return None 26 | for item in result: 27 | draftorder_id, sale_id, goods_id, order_num, supplier_id, account_id, date, isfinish, isdelete = item 28 | draftorder.append( 29 | DraftOrder(draftorder_id, sale_id, goods_id, order_num, supplier_id, account_id, date, isfinish, isdelete)) 30 | return draftorder 31 | 32 | 33 | # 删除采购单信息 34 | def deletedraftorder(draftorder_id): 35 | con = f"draftorder_id = '{draftorder_id}'" 36 | sql = "UPDATE {table} SET isdelete={isdelete} WHERE ({con})".format(table="tb_draftorder", isdelete=1, con=con) 37 | conn = db.MyDbUtil() 38 | flag = conn.execute(sql) 39 | conn.close_db() 40 | return flag 41 | 42 | 43 | # 设置暂存采购单已完成 44 | def setDraftOrderfinished(draftorder_id): 45 | con = f"draftorder_id = '{draftorder_id}'" 46 | sql = "UPDATE {table} SET isfinish={isfinish} WHERE ({con})".format(table="tb_draftorder", isfinish=1, con=con) 47 | conn = db.MyDbUtil() 48 | flag = conn.execute(sql) 49 | conn.close_db() 50 | return flag 51 | 52 | 53 | if __name__ == "__main__": 54 | # insertDraftOrder(DraftOrder(0, 0, 0, 0, 0, "2022-04-28")) 55 | selectDraftOrder() 56 | deletedraftorder(0) 57 | setDraftOrderfinished(0) 58 | -------------------------------------------------------------------------------- /func/GoodsFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Goods import Goods 3 | 4 | 5 | # 查询全部商品信息 6 | def selectGoods(): 7 | sql = "SELECT * FROM tb_goods" 8 | conn = db.MyDbUtil() 9 | result = conn.query_sql(sql) 10 | goods = [] 11 | if result is None: 12 | return None 13 | for item in result: 14 | goods_id, goods_name, goods_number, price_cost, price_sell, goods_unit, supplier_id, isdelete = item 15 | goods.append( 16 | Goods(goods_id, goods_name, goods_number, price_cost, price_sell, goods_unit, supplier_id, isdelete)) 17 | conn.close_db() 18 | return goods 19 | 20 | 21 | # 通过供应商ID查询商品 22 | def selectGoodsBySupplierId(supplier_id): 23 | sql = f"SELECT * FROM tb_goods WHERE supplier_id='{supplier_id}'" 24 | conn = db.MyDbUtil() 25 | result = conn.query_sql(sql) 26 | goods = [] 27 | if result is None: 28 | return None 29 | for item in result: 30 | goods_id, goods_name, goods_number, price_cost, price_sell, goods_unit, supplier_id, isdelete = item 31 | goods.append( 32 | Goods(goods_id, goods_name, goods_number, price_cost, price_sell, goods_unit, supplier_id, isdelete)) 33 | conn.close_db() 34 | return goods 35 | 36 | 37 | # 通过商品编号查询商品 38 | def selectGoodsByGoodsId(goods_id): 39 | sql = f"SELECT * FROM tb_goods WHERE goods_id='{goods_id}'" 40 | conn = db.MyDbUtil() 41 | result = conn.query_sql(sql) 42 | goods = [] 43 | if result is None: 44 | return None 45 | for item in result: 46 | goods_id, goods_name, goods_number, price_cost, price_sell, goods_unit, supplier_id, isdelete = item 47 | goods.append( 48 | Goods(goods_id, goods_name, goods_number, price_cost, price_sell, goods_unit, supplier_id, isdelete)) 49 | conn.close_db() 50 | return goods 51 | 52 | 53 | # 通过商品编号修改商品库存量 54 | def updateGoodsNumber(goods): 55 | goods_id = goods.getGoods_id() 56 | good_number = goods.getGoods_number() 57 | sql = f"UPDATE tb_goods SET goods_number='{good_number}' WHERE goods_id='{goods_id}'" 58 | conn = db.MyDbUtil() 59 | flag = conn.execute(sql) 60 | conn.close_db() 61 | return flag 62 | 63 | 64 | # 插入商品信息 65 | def insertGoods(goods): 66 | goods_id, goods_name, goods_number, price_cost, price_sell, goods_unit, supplier_id = goods.getReturnTuple() 67 | key = "goods_id,goods_name,goods_number,price_cost,price_sell,goods_unit,supplier_id" 68 | val = f"'{goods_id}','{goods_name}',{goods_number},'{price_cost}','{price_sell}','{goods_unit}','{supplier_id}'" 69 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_goods", key=key, val=val) 70 | conn = db.MyDbUtil() 71 | flag = conn.execute(sql) 72 | conn.close_db() 73 | return flag 74 | 75 | 76 | # 删除商品 77 | def deleteGoods(goods_id): 78 | con = f"goods_id = '{goods_id}'" 79 | sql = "UPDATE {table} SET isdelete='{isdelete}' WHERE ({con})".format(table="tb_goods", isdelete="1", con=con) 80 | conn = db.MyDbUtil() 81 | flag = conn.execute(sql) 82 | conn.close_db() 83 | return flag 84 | 85 | 86 | # 通过keywords查找商品信息 87 | def selectGoodsByKeywords(goods_id, goods_name): 88 | sql = f"SELECT * FROM tb_goods WHERE goods_id LIKE '%{goods_id}%' AND goods_name LIKE '%{goods_name}%'" 89 | conn = db.MyDbUtil() 90 | result = conn.query_sql(sql) 91 | conn.close_db() 92 | goods = [] 93 | if result is None: 94 | return None 95 | for item in result: 96 | goods_id, goods_name, goods_number, price_cost, price_sell, goods_unit, supplier_id = item 97 | goods.append(Goods(goods_id, goods_name, goods_number, price_cost, price_sell, goods_unit, supplier_id)) 98 | return goods 99 | 100 | 101 | if __name__ == "__main__": 102 | selectGoodsByKeywords("0", "") 103 | -------------------------------------------------------------------------------- /func/InboundFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Inbound import Inbound 3 | 4 | 5 | # 插入入库单信息 6 | def insertInbound(inbound): 7 | in_id, order_id, goods_id, account_id, in_date, in_num = inbound.getReturnTuple() 8 | key = "in_id, order_id, goods_id, account, in_date, in_num" 9 | val = f"'{in_id}','{order_id}','{goods_id}','{account_id}','{in_date}','{in_num}'" 10 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_inbound", key=key, val=val) 11 | conn = db.MyDbUtil() 12 | flag = conn.execute(sql) 13 | conn.close_db() 14 | return flag 15 | 16 | 17 | # 查询全部入库单 18 | def selectInbound(): 19 | sql = f"SELECT DISTINCT in_id,order_id,account,in_date FROM tb_inbound" 20 | conn = db.MyDbUtil() 21 | result = conn.query_sql(sql) 22 | conn.close_db() 23 | if result is None: 24 | return None 25 | inbound = [] 26 | for item in result: 27 | in_id, order_id, account_id, in_date = item 28 | inbound.append(Inbound(in_id, order_id, account_id=account_id, in_date=in_date)) 29 | return inbound 30 | 31 | 32 | # 通过入库ID查询全部入库单 33 | def selectInboundByInboundId(inbound_id): 34 | sql = f"SELECT * FROM tb_inbound WHERE in_id='{inbound_id}'" 35 | conn = db.MyDbUtil() 36 | result = conn.query_sql(sql) 37 | conn.close_db() 38 | if result is None: 39 | return None 40 | inbound = [] 41 | for item in result: 42 | in_id, order_id, goods_id, account_id, in_date, in_num = item 43 | inbound.append(Inbound(in_id, order_id, goods_id, account_id, in_date, in_num)) 44 | return inbound 45 | 46 | 47 | if __name__ == "__main__": 48 | insertInbound(Inbound(0,0,0,0,"2000-00-00",0,)) 49 | selectInbound() 50 | selectInboundByInboundId("0") -------------------------------------------------------------------------------- /func/ManagerFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Manager import Manager 3 | 4 | 5 | # 通过会员账号查询用户 6 | def selectManagerByAccount(account): 7 | sql = f"SELECT * FROM tb_manager WHERE account='{account}'" 8 | conn = db.MyDbUtil() 9 | result = conn.query_sql(sql) 10 | conn.close_db() 11 | if result is None: 12 | return None 13 | manager = [] 14 | for item in result: 15 | account, password, manager_name, department = item 16 | manager.append(Manager(account, password, manager_name, department)) 17 | return manager 18 | 19 | 20 | # 查询所有会员 21 | def selectManager(): 22 | sql = f"SELECT * FROM tb_manager" 23 | conn = db.MyDbUtil() 24 | result = conn.query_sql(sql) 25 | conn.close_db() 26 | if result is None: 27 | return None 28 | manager = [] 29 | for item in result: 30 | account, password, manager_name, department = item 31 | manager.append(Manager(account, password, manager_name, department)) 32 | return manager 33 | 34 | 35 | if __name__ == "__main__": 36 | selectManagerByAccount("1") 37 | selectManager() -------------------------------------------------------------------------------- /func/OrderFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Order import Order 3 | 4 | 5 | # 插入采购单信息 6 | def insertOrder(order): 7 | order_id, account_id, supplier_id, order_left, order_date, goods_id, order_flag, order_number = order.getReturnTuple() 8 | key = "order_id,account,Supplier_id,order_left,order_date,goods_id,order_flag,order_number" 9 | val = f"'{order_id}','{account_id}','{supplier_id}',{order_left}," \ 10 | f"'{order_date}','{goods_id}','{order_flag}',{order_number}" 11 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_order", key=key, val=val) 12 | conn = db.MyDbUtil() 13 | flag = conn.execute(sql) 14 | conn.close_db() 15 | return flag 16 | 17 | 18 | # 查询所有订单 19 | def selectOrder(): 20 | sql = f"SELECT DISTINCT order_id,account,Supplier_id,order_date FROM tb_order" 21 | conn = db.MyDbUtil() 22 | result = conn.query_sql(sql) 23 | conn.close_db() 24 | if result is None: 25 | return None 26 | order = [] 27 | for item in result: 28 | order_id, account_id, supplier_id, order_date = item 29 | order.append(Order(order_id=order_id, account_id=account_id, supplier_id=supplier_id, order_date=order_date)) 30 | return order 31 | 32 | 33 | # 通过订单ID查询订单 34 | def selectOrderByOrderId(order_id): 35 | sql = f"SELECT * FROM tb_order WHERE order_id='{order_id}'" 36 | conn = db.MyDbUtil() 37 | result = conn.query_sql(sql) 38 | conn.close_db() 39 | if result is None: 40 | return None 41 | order = [] 42 | for item in result: 43 | order_id, account_id, supplier_id, order_left, order_date, goods_id, order_flag, order_number = item 44 | order.append(Order(order_id=order_id, account_id=account_id, supplier_id=supplier_id, order_date=order_date, goods_id=goods_id, order_flag=order_flag, 45 | order_number=order_number, order_left=order_left)) 46 | return order 47 | 48 | 49 | # 更新订单Flag 50 | def updateOrderFlag(order): 51 | sql = f"UPDATE tb_order SET order_left={order.get_order_left()},order_flag='{order.get_order_flag()}' " \ 52 | f"WHERE order_id='{order.get_order_id()}' and goods_id='{order.get_goods_id()}'" 53 | conn = db.MyDbUtil() 54 | flag = conn.execute(sql) 55 | conn.close_db() 56 | return flag 57 | 58 | 59 | # 通过keywords查找顾客信息 60 | def selectOrderByKeywords(order_id, supplier_id, date_front, date_after): 61 | # 小的时间要在前面 62 | sql = f"SELECT DISTINCT order_id,account,Supplier_id,order_date FROM tb_order WHERE order_id LIKE '%{order_id}%' AND supplier_id LIKE '%{supplier_id}%' AND order_date BETWEEN '{date_front}' AND '{date_after}' " 63 | conn = db.MyDbUtil() 64 | result = conn.query_sql(sql) 65 | conn.close_db() 66 | order = [] 67 | if result is None: 68 | return None 69 | for item in result: 70 | order_id, account, Supplier_id, order_date = item 71 | order.append(Order(order_id=order_id, account_id=account, supplier_id=Supplier_id, order_date=order_date)) 72 | return order 73 | 74 | 75 | if __name__ == "__main__": 76 | # insertOrder(Order(1, 2, 3, 4, "2001-5-5", 6, 7, 8, 9)) 77 | # selectOrder() 78 | # selectOrderByOrderId("2021040001") 79 | # updateOrderFlag(Order(1, 2, 3, "2022-3-23", goods_id=6, order_left=10, order_flag="未出库")) 80 | selectOrderByKeywords("3",'0','2021-04-30','2021-06-30') 81 | -------------------------------------------------------------------------------- /func/OutboundFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Outbound import Outbound 3 | 4 | 5 | # 插入出库单信息 6 | def insertOutbound(outbound): 7 | out_id, sale_id, goods_id, account_id, out_date, out_num, out_flag = outbound.getReturnTuple() 8 | key = "out_id,sale_id,goods_id,account,out_date,out_num,out_flag" 9 | val = f"'{out_id}','{sale_id}','{goods_id}','{account_id}','{out_date}',{out_num},'{out_flag}'" 10 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_outbound", key=key, val=val) 11 | conn = db.MyDbUtil() 12 | flag = conn.execute(sql) 13 | conn.close_db() 14 | return flag 15 | 16 | 17 | # 查询所有出库单 18 | def selectOutbound(): 19 | sql = f"SELECT DISTINCT out_id,sale_id,account,out_date FROM tb_outbound" 20 | conn = db.MyDbUtil() 21 | result = conn.query_sql(sql) 22 | conn.close_db() 23 | if result is None: 24 | return None 25 | outbound = [] 26 | for item in result: 27 | out_id, sale_id, account, out_date = item 28 | outbound.append(Outbound(out_id, sale_id, account, out_date)) 29 | return outbound 30 | 31 | 32 | # 通过订单ID查询订单 33 | def selectOutboundByOutboundId(out_id): 34 | sql = f"SELECT * FROM tb_outbound WHERE out_id='{out_id}'" 35 | conn = db.MyDbUtil() 36 | result = conn.query_sql(sql) 37 | conn.close_db() 38 | if result is None: 39 | return None 40 | outbound = [] 41 | for item in result: 42 | out_id, sale_id, goods_id, account_id, out_date, out_num, out_flag = item 43 | outbound.append(Outbound(out_id, sale_id, account_id, out_date, goods_id, out_num, out_flag)) 44 | return outbound 45 | 46 | 47 | # 更新出库单状态为已发货 48 | def updateOutboundFlagtoDelivered(outbound_id): 49 | sql = "UPDATE tb_outbound SET out_flag='已发货' WHERE out_id='{out_id}'".format(out_id=outbound_id) 50 | conn = db.MyDbUtil() 51 | flag = conn.execute(sql) 52 | conn.close_db() 53 | return flag 54 | 55 | 56 | # 通过keywords查找出库单信息 57 | def selectCustomerByKeywords(outbound_id, sale_id, date_before, date_after): 58 | sql = f"SELECT DISTINCT out_id,sale_id,account,out_date FROM tb_outbound WHERE out_id LIKE '%{outbound_id}%' AND sale_id LIKE '%{sale_id}%' AND out_date BETWEEN '{date_before}' AND '{date_after}' " 59 | conn = db.MyDbUtil() 60 | result = conn.query_sql(sql) 61 | conn.close_db() 62 | outbound = [] 63 | if result is None: 64 | return None 65 | for item in result: 66 | out_id, sale_id, account, out_date = item 67 | outbound.append(Outbound(out_id, sale_id, account, out_date)) 68 | return outbound 69 | 70 | 71 | if __name__ == "__main__": 72 | # insertOutbound(Outbound(0,1,2,3,"2022-3-23",6,"已发货")) 73 | # selectOutbound() 74 | # selectOutboundByOutboundId(2021020001) 75 | # updateOutboundFlagtoDelivered(2021020002) 76 | selectCustomerByKeywords("4","5","2021-4-30","2021-5-31") 77 | -------------------------------------------------------------------------------- /func/PurchaseFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Purchase import Purchase 3 | 4 | 5 | # 插入采购单信息 6 | def insertPurchase(purchase): 7 | pur_id, account_id, sale_id, goods_id, pur_date, pur_number = purchase.getReturnTuple() 8 | key = "pur_id,account,sale_order,goodsid,pur_date,pur_number" 9 | val = f"'{pur_id}','{account_id}','{sale_id}','{goods_id}','{pur_date}',{pur_number}" 10 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_purchase", key=key, val=val) 11 | conn = db.MyDbUtil() 12 | flag = conn.execute(sql) 13 | conn.close_db() 14 | return flag 15 | 16 | 17 | if __name__ == "__main__": 18 | insertPurchase(Purchase(0,0,0,0,"2022-3-23",0)) 19 | -------------------------------------------------------------------------------- /func/ReturnFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Return import Return 3 | 4 | 5 | # 插入退货单信息 6 | def insertReturn(re): 7 | re_id, account_id, order_id, goods_id, re_date = re.getReturnTuple() 8 | key = "re_id,account,order_id,goods_id,re_date" 9 | val = f"'{re_id}','{account_id}','{order_id}','{goods_id}','{re_date}'" 10 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_return", key=key, val=val) 11 | conn = db.MyDbUtil() 12 | flag = conn.execute(sql) 13 | conn.close_db() 14 | return flag 15 | 16 | 17 | # 查询所有退货单 18 | def selectReturn(): 19 | sql = f"SELECT DISTINCT re_id,account,order_id,re_date FROM tb_return" 20 | conn = db.MyDbUtil() 21 | result = conn.query_sql(sql) 22 | conn.close_db() 23 | if result is None: 24 | return None 25 | re = [] 26 | for item in result: 27 | re_id, account, order_id, re_date = item 28 | re.append(Return(re_id, account, order_id, re_date)) 29 | return re 30 | 31 | 32 | # 通过退货单ID查询退货单 33 | def selectReturnByReturnId(return_id): 34 | sql = f"SELECT * FROM tb_return WHERE re_id='{return_id}'" 35 | conn = db.MyDbUtil() 36 | result = conn.query_sql(sql) 37 | conn.close_db() 38 | if result is None: 39 | return None 40 | re = [] 41 | for item in result: 42 | re_id, account, order_id, goods_id, re_date = item 43 | re.append(Return(re_id, account, order_id, re_date, goods_id)) 44 | return re 45 | 46 | 47 | if __name__ == "__main__": 48 | # insertReturn(Return(0,0,0,0,"2022-3-23")) 49 | # selectReturn() 50 | selectReturnByReturnId(2021050001) 51 | -------------------------------------------------------------------------------- /func/SaleFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Sale import Sale 3 | 4 | 5 | # 插入销售单 6 | def insertSale(sale): 7 | sale_id, account_id, customer_id, goods_id, sale_date, sale_number, sale_left, sale_flag = sale.getReturnTuple() 8 | key = "sale_id,account_id,customer_id,goods_id,sale_date,sale_number,sale_left,sale_flag" 9 | val = f"'{sale_id}','{account_id}','{customer_id}','{goods_id}','{sale_date}',{sale_number},{sale_left},'{sale_flag}'" 10 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_sale", key=key, val=val) 11 | conn = db.MyDbUtil() 12 | flag = conn.execute(sql) 13 | conn.close_db() 14 | return flag 15 | 16 | 17 | # 查询所有销售单 18 | def selectSale(): 19 | sql = f"SELECT DISTINCT sale_id,account_id,customer_id,sale_date FROM tb_sale" 20 | conn = db.MyDbUtil() 21 | result = conn.query_sql(sql) 22 | conn.close_db() 23 | if result is None: 24 | return None 25 | sale = [] 26 | for item in result: 27 | sale_id, account_id, customer_id, sale_date = item 28 | sale.append(Sale(sale_id, account_id, customer_id, sale_date)) 29 | if sale is None: sale = [] 30 | return sale 31 | 32 | 33 | # 根据销售号查询信息 34 | def selectSaleBySaleId(sale_id): 35 | sql = f"SELECT * FROM tb_sale WHERE sale_id='{sale_id}'" 36 | conn = db.MyDbUtil() 37 | result = conn.query_sql(sql) 38 | conn.close_db() 39 | if result is None: 40 | return None 41 | sale = [] 42 | for item in result: 43 | sale_id, account_id, customer_id, goods_id, sale_date, sale_number, sale_left, sale_flag = item 44 | sale.append(Sale(sale_id, account_id, customer_id, sale_date, goods_id, sale_number, sale_left, sale_flag)) 45 | if sale is None: sale = [] 46 | return sale 47 | 48 | 49 | # 更新销售单的已发货数量和出库flag 50 | def updateSale_outNumber(sale): 51 | sale_id, account_id, customer_id, goods_id, sale_date, sale_number, sale_left, sale_flag = sale.getReturnTuple() 52 | set = f"sale_left={sale_left},sale_flag='{sale_flag}'" 53 | where = f"sale_id='{sale_id}' and goods_id='{goods_id}'" 54 | sql = "UPDATE {table} SET {set} WHERE {where}".format(table="tb_sale", set=set, where=where) 55 | conn = db.MyDbUtil() 56 | flag = conn.execute(sql) 57 | conn.close_db() 58 | return flag 59 | 60 | 61 | # 通过keywords查找销售单信息 62 | def selectSaleByKeywords(sale_id, customer_id, date_before, date_after): 63 | key = f"sale_id,account_id,customer_id,sale_date" 64 | where = f"sale_id LIKE '%{sale_id}%' AND Customer_id LIKE '%{customer_id}%' AND sale_date BETWEEN '{date_before}' AND '{date_after}' " 65 | sql = "SELECT DISTINCT {key} FROM {table} WHERE {where}".format(table="tb_sale", key=key, where=where) 66 | conn = db.MyDbUtil() 67 | result = conn.query_sql(sql) 68 | conn.close_db() 69 | sale = [] 70 | if result is None: 71 | return None 72 | for item in result: 73 | sale_id, account_id, customer_id, sale_date = item 74 | sale.append(Sale(sale_id, account_id, customer_id, sale_date)) 75 | if sale is None: sale = [] 76 | return sale 77 | 78 | 79 | if __name__ == "__main__": 80 | # insertSale(Sale(0,1,2,3,"2022-3-23",5,6,7)) 81 | # selectSale() 82 | # selectSaleBySaleId(2021010001) 83 | # updateSale_outNumber(Sale(sale_id="2021010001",goods_id="P0003GI",sale_left="10",sale_flag="未出库数量:10")) 84 | selectSaleByKeywords("2", "5", "2021-4-30", "2021-5-20") 85 | -------------------------------------------------------------------------------- /func/SupplierFuc.py: -------------------------------------------------------------------------------- 1 | from func import DatabaseConnection as db 2 | from vo.Supplier import Supplier 3 | 4 | 5 | # 查询所有供应商 6 | def selectSupplier(): 7 | sql = f"SELECT * FROM tb_supplier" 8 | conn = db.MyDbUtil() 9 | result = conn.query_sql(sql) 10 | conn.close_db() 11 | if result is None: 12 | return None 13 | supplier = [] 14 | for item in result: 15 | supplier_id, supplier_name, supplier_contactor, supplier_phone, supplier_addr, isdelete = item 16 | supplier.append(Supplier(supplier_id, supplier_name, supplier_contactor, supplier_phone, supplier_addr, isdelete)) 17 | return supplier 18 | 19 | 20 | # 根据供应商编号查询供应商 21 | def selectSupplierBySupplierId(supplier_id): 22 | sql = f"SELECT * FROM tb_supplier WHERE supplier_id='{supplier_id}'" 23 | conn = db.MyDbUtil() 24 | result = conn.query_sql(sql) 25 | conn.close_db() 26 | if result is None: 27 | return None 28 | supplier = [] 29 | for item in result: 30 | supplier_id, supplier_name, supplier_contactor, supplier_phone, supplier_addr, isdelete = item 31 | supplier.append(Supplier(supplier_id, supplier_name, supplier_contactor, supplier_phone, supplier_addr, isdelete)) 32 | return supplier 33 | 34 | 35 | # 插入供应商 36 | def insertSupplier(supplier): 37 | Supplier_id,Supplier_name,Supplier_contactor,Supplier_phone,Supplier_addr = supplier.getReturnTuple() 38 | key = "Supplier_id,Supplier_name,Supplier_contactor,Supplier_phone,Supplier_addr" 39 | val = f"'{Supplier_id}','{Supplier_name}','{Supplier_contactor}','{Supplier_phone}','{Supplier_addr}'" 40 | sql = "INSERT INTO {table}({key}) values ({val})".format(table="tb_supplier", key=key, val=val) 41 | conn = db.MyDbUtil() 42 | flag = conn.execute(sql) 43 | conn.close_db() 44 | return flag 45 | 46 | 47 | # 删除供应商 48 | def deleteSupplier(supplier_id): 49 | sql = "UPDATE {table} SET isdelete='{isdelete}' WHERE {key}= '{id}'".format(table="tb_supplier", isdelete=1,key="supplier_id", id=supplier_id) 50 | conn = db.MyDbUtil() 51 | flag = conn.execute(sql) 52 | conn.close_db() 53 | return flag 54 | 55 | 56 | # 通过keywords查找供应商信息 57 | def selectSupplierByKeywords(Supplier_id, Supplier_name): 58 | where = f"Supplier_id LIKE '%{Supplier_id}%' AND Supplier_name LIKE '%{Supplier_name}%'" 59 | sql = "SELECT * FROM {table} WHERE {where}".format(table="tb_supplier", where=where) 60 | conn = db.MyDbUtil() 61 | result = conn.query_sql(sql) 62 | conn.close_db() 63 | if result is None: 64 | return None 65 | supplier = [] 66 | for item in result: 67 | supplier_id, supplier_name, supplier_contactor, supplier_phone, supplier_addr = item 68 | supplier.append(Supplier(supplier_id, supplier_name, supplier_contactor, supplier_phone, supplier_addr)) 69 | return supplier 70 | 71 | 72 | # 还剩三个方法没写完,分别是根据销售号查询信息selectSaleBySaleId(String sale_id) updateSale_outNumber(Sale sale) selectSaleByKeywords 73 | 74 | 75 | if __name__ == "__main__": 76 | # selectSupplier() 77 | # selectSupplierBySupplierId("G0099") 78 | # insertSupplier(Supplier("11","中国企业","wrp","15531288427","中国")) 79 | # deleteSupplier("11") 80 | selectSupplierByKeywords("1","集团") -------------------------------------------------------------------------------- /func/__pycache__/CustomerFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/CustomerFuc.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/DatabaseConnection.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/DatabaseConnection.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/DispatchFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/DispatchFuc.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/GoodsFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/GoodsFuc.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/InboundFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/InboundFuc.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/ManagerFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/ManagerFuc.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/OrderFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/OrderFuc.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/OutboundFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/OutboundFuc.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/ReturnFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/ReturnFuc.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/SaleFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/SaleFuc.cpython-38.pyc -------------------------------------------------------------------------------- /func/__pycache__/SupplierFuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/func/__pycache__/SupplierFuc.cpython-38.pyc -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5 import QtWidgets, QtCore, QtGui 4 | from PyQt5.QtGui import * 5 | from PyQt5.QtWidgets import * 6 | from PyQt5.QtCore import Qt 7 | # from QCandyUi import CandyWindow 8 | 9 | from UI import login 10 | from func.ManagerFuc import selectManagerByAccount 11 | import user.purchasing_win as purchasing 12 | import user.sale_win as sale 13 | import user.warehouse_win as warehouse 14 | 15 | 16 | class Login(QMainWindow): 17 | def __init__(self): 18 | QMainWindow.__init__(self) 19 | self.ui1 = None 20 | self.MainWindow = None 21 | self.ui = login.Ui_MainWindow() 22 | self.ui.setupUi(self) 23 | 24 | # 移除标题栏 25 | self.setWindowFlag(Qt.FramelessWindowHint) 26 | self.setAttribute(Qt.WA_TranslucentBackground) 27 | 28 | # 阴影效果 29 | self.shadow = self.set_drop_shadow() 30 | 31 | # SET DROP SHADOW EFFECT IN FRAME 32 | self.ui.frame_Shadow.setGraphicsEffect(self.shadow) 33 | 34 | # SET MOVE WINDOW 35 | def move_window(event): 36 | # IF LEFT CLICK MOVE WINDOW 37 | if event.buttons() == Qt.LeftButton: 38 | self.move(self.pos() + event.globalPos() - self.drag_pos) 39 | self.drag_pos = event.globalPos() 40 | event.accept() 41 | 42 | # ENABLE MOUSE MOVE FORM 43 | self.ui.frame_TopBar.mouseMoveEvent = move_window 44 | # self.ui.frame_Shadow.mouseMoveEvent = move_window 45 | 46 | self.ui.pushButton_Exit.clicked.connect(self.click_exit) 47 | self.ui.pushButton_Login.clicked.connect(self.slotLogin) 48 | 49 | def set_drop_shadow(self): 50 | self.shadow = QGraphicsDropShadowEffect(self) 51 | self.shadow.setBlurRadius(30) 52 | self.shadow.setXOffset(0) 53 | self.shadow.setYOffset(0) 54 | self.shadow.setColor(QColor(0, 0, 0, 80)) 55 | return self.shadow 56 | 57 | def click_exit(self): 58 | print("按下了关闭按钮") 59 | self.close() 60 | 61 | def mousePressEvent(self, event): 62 | self.drag_pos = event.globalPos() 63 | 64 | def keyPressEvent(self, event): 65 | if event.key() == QtCore.Qt.Key_Enter: 66 | self.slotLogin() 67 | 68 | def findPwd(self): 69 | OK = QMessageBox.warning(self, "提示", """功能待开发!""") 70 | 71 | # 返回登录的槽函数(目前没用) 72 | def BackLoginSlot(self): 73 | reply = QMessageBox.question(self, '退出', '确定退出?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) 74 | if reply == QMessageBox.Yes: 75 | print('退出') 76 | self.MainWindow.close() 77 | self.show() 78 | else: 79 | print('不退出') 80 | 81 | def slotLogin(self): 82 | # 获得登录输入 83 | account = self.ui.lineEdit_Login.text() 84 | pwd = self.ui.lineEdit_Password.text() 85 | identity = self.ui.comboBox_department.currentIndex() # 获取下标 86 | if account != '' and pwd != '': 87 | manage = selectManagerByAccount(account) 88 | if manage is not None: 89 | if identity == 0: # 销售部门 90 | if manage[0].getPassword() == pwd and ( 91 | manage[0].getDepartment() == "销售部门" or manage[0].getDepartment() == "超级管理员"): 92 | self.MainWindow = QtWidgets.QMainWindow() 93 | self.ui1 = sale.InvoiceSystem(self.MainWindow, manage[0]) 94 | self.ui1.exit.triggered.connect(self.BackLoginSlot) 95 | # self.MainWindow = CandyWindow.createWindow(self.MainWindow, 'blueDeep',"销售部门",QtGui.QPixmap(":/img/resource/sale_icon.png")) 96 | # self.MainWindow.setSupportStretch(False) 97 | self.MainWindow.show() 98 | self.close() 99 | else: 100 | OK = QMessageBox.warning(self, "警告", """账号或密码错误!""") 101 | 102 | elif identity == 1: # 仓库部门 103 | if manage[0].getPassword() == pwd and ( 104 | manage[0].getDepartment() == "仓库部门" or manage[0].getDepartment() == "超级管理员"): 105 | self.MainWindow = QtWidgets.QMainWindow() 106 | self.ui1 = warehouse.InvoiceSystem(self.MainWindow, manage[0]) 107 | self.ui1.exit.triggered.connect(self.BackLoginSlot) 108 | # self.MainWindow = CandyWindow.createWindow(self.MainWindow, 'blueDeep',"仓库部门",QtGui.QPixmap(":/img/resource/warehouse_icon.png")) 109 | # self.MainWindow.setSupportStretch(False) 110 | self.MainWindow.show() 111 | self.close() 112 | else: 113 | OK = QMessageBox.warning(self, "警告", """账号或密码错误!""") 114 | 115 | elif identity == 2: # 采购部门 116 | if manage[0].getPassword() == pwd and ( 117 | manage[0].getDepartment() == "采购部门" or manage[0].getDepartment() == "超级管理员"): 118 | self.MainWindow = QtWidgets.QMainWindow() 119 | self.ui1 = purchasing.InvoiceSystem(self.MainWindow, manage[0]) 120 | self.ui1.exit.triggered.connect(self.BackLoginSlot) 121 | # self.MainWindow = CandyWindow.createWindow(self.MainWindow, 'blueDeep',"采购部门",QtGui.QPixmap(":/img/resource/purchase_icon.png")) 122 | # self.MainWindow.setSupportStretch(False) 123 | self.MainWindow.show() 124 | self.close() 125 | else: 126 | OK = QMessageBox.warning(self, "警告", "账号或密码错误!") 127 | else: 128 | OK = QMessageBox.warning(self, "警告", """账号不存在!""") 129 | else: 130 | OK = QMessageBox.warning(self, "警告", """账号/密码为空!""") 131 | # cursor.close() 132 | # conn.close() 133 | 134 | 135 | if __name__ == '__main__': 136 | app = QtWidgets.QApplication(sys.argv) 137 | my = Login() 138 | my.show() 139 | sys.exit(app.exec_()) 140 | -------------------------------------------------------------------------------- /main.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | resource/write.png 4 | resource/customer_management.png 5 | resource/purchase_icon.png 6 | resource/inbound_icon.png 7 | resource/inboundinfo_icon.png 8 | resource/outbound_info.png 9 | resource/outboundinfo_icon.png 10 | resource/dispatch_management.png 11 | resource/sale_management.png 12 | resource/add_icon.png 13 | resource/customer_icon.png 14 | resource/delete_icon.png 15 | resource/exit_icon.png 16 | resource/Goods_icon.png 17 | resource/info_icon.png 18 | resource/inventory_icon.png 19 | resource/modify_icon.png 20 | resource/outbound_icon.png 21 | resource/purchase_icon.png 22 | resource/sale_icon.png 23 | resource/saleinfo_icon.png 24 | resource/search_icon.png 25 | resource/submit_icon.png 26 | resource/supplier_icon.png 27 | resource/warehouse_icon.png 28 | 29 | 30 | resource/logo.png 31 | 32 | 33 | resource/down-arrow.png 34 | 35 | 36 | -------------------------------------------------------------------------------- /main.spec: -------------------------------------------------------------------------------- 1 | # -*- mode: python ; coding: utf-8 -*- 2 | 3 | 4 | block_cipher = None 5 | 6 | 7 | a = Analysis( 8 | ['main.py'], 9 | pathex=[], 10 | binaries=[], 11 | datas=[], 12 | hiddenimports=[], 13 | hookspath=[], 14 | hooksconfig={}, 15 | runtime_hooks=[], 16 | excludes=[], 17 | win_no_prefer_redirects=False, 18 | win_private_assemblies=False, 19 | cipher=block_cipher, 20 | noarchive=False, 21 | ) 22 | pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) 23 | 24 | exe = EXE( 25 | pyz, 26 | a.scripts, 27 | a.binaries, 28 | a.zipfiles, 29 | a.datas, 30 | [], 31 | name='main', 32 | debug=False, 33 | bootloader_ignore_signals=False, 34 | strip=False, 35 | upx=True, 36 | upx_exclude=[], 37 | runtime_tmpdir=None, 38 | console=False, 39 | disable_windowed_traceback=False, 40 | argv_emulation=False, 41 | target_arch=None, 42 | codesign_identity=None, 43 | entitlements_file=None, 44 | icon='LOGO.ico', 45 | ) 46 | -------------------------------------------------------------------------------- /makeExe.bat: -------------------------------------------------------------------------------- 1 | pyinstaller -F main.py --noconsole --icon=LOGO.ico -w -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pyqt5 2 | pyqt5-tools 3 | pyinstaller 4 | pymysql -------------------------------------------------------------------------------- /resource/Goods_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/Goods_icon.png -------------------------------------------------------------------------------- /resource/add_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/add_icon.png -------------------------------------------------------------------------------- /resource/customer_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/customer_icon.png -------------------------------------------------------------------------------- /resource/customer_management.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/customer_management.png -------------------------------------------------------------------------------- /resource/delete_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/delete_icon.png -------------------------------------------------------------------------------- /resource/dispatch_management.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/dispatch_management.png -------------------------------------------------------------------------------- /resource/down-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/down-arrow.png -------------------------------------------------------------------------------- /resource/exit_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/exit_icon.png -------------------------------------------------------------------------------- /resource/inbound_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/inbound_icon.png -------------------------------------------------------------------------------- /resource/inboundinfo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/inboundinfo_icon.png -------------------------------------------------------------------------------- /resource/info_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/info_icon.png -------------------------------------------------------------------------------- /resource/inventory_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/inventory_icon.png -------------------------------------------------------------------------------- /resource/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/logo.png -------------------------------------------------------------------------------- /resource/modify_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/modify_icon.png -------------------------------------------------------------------------------- /resource/outbound_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/outbound_icon.png -------------------------------------------------------------------------------- /resource/outbound_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/outbound_info.png -------------------------------------------------------------------------------- /resource/outboundinfo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/outboundinfo_icon.png -------------------------------------------------------------------------------- /resource/purchase_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/purchase_icon.png -------------------------------------------------------------------------------- /resource/sale_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/sale_icon.png -------------------------------------------------------------------------------- /resource/sale_management.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/sale_management.png -------------------------------------------------------------------------------- /resource/saleinfo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/saleinfo_icon.png -------------------------------------------------------------------------------- /resource/search_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/search_icon.png -------------------------------------------------------------------------------- /resource/submit_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/submit_icon.png -------------------------------------------------------------------------------- /resource/supplier_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/supplier_icon.png -------------------------------------------------------------------------------- /resource/warehouse_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/warehouse_icon.png -------------------------------------------------------------------------------- /resource/write.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/resource/write.png -------------------------------------------------------------------------------- /user/__pycache__/fuc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/fuc.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/purchasing_win.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/purchasing_win.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/sale_win.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/sale_win.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/warehouse_win.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/warehouse_win.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/widget_Customerinfo_win.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/widget_Customerinfo_win.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/widget_Goods_win.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/widget_Goods_win.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/widget_Orderinfo_win.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/widget_Orderinfo_win.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/widget_Outboundinfo.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/widget_Outboundinfo.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/widget_Purchaseorderquery_win.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/widget_Purchaseorderquery_win.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/widget_Saleinfo_win.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/widget_Saleinfo_win.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/widget_Salelist.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/widget_Salelist.cpython-38.pyc -------------------------------------------------------------------------------- /user/__pycache__/widget_Supplier_win.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/user/__pycache__/widget_Supplier_win.cpython-38.pyc -------------------------------------------------------------------------------- /user/fuc.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtGui import QIcon 4 | from PyQt5.QtWidgets import QMessageBox, QWidget, QPushButton, QHBoxLayout, QTableWidgetItem 5 | 6 | from func import OrderFuc, SupplierFuc, ManagerFuc 7 | 8 | 9 | # 退出按钮动作 10 | def act_exit(self): 11 | w = QWidget() # 没有父类的widget将被作为窗口使用 12 | # 退出确定框 13 | reply = QMessageBox.question(w, '退出', '确定退出?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) 14 | if reply == QMessageBox.Yes: 15 | print('退出') 16 | sys.exit() 17 | else: 18 | print('不退出') 19 | 20 | 21 | # 采购管理——填写采购单 22 | def act_order_submit_clicked(self): 23 | orderid = self.order_id_order_2.text() 24 | order_date = self.order_date.text() 25 | print(orderid) 26 | print(order_date) 27 | 28 | 29 | # 采购管理——采购单查询 30 | def getTable_OrderInfo_data(self): 31 | orderinfo = OrderFuc.selectOrder() 32 | self.table_orderinfo.setRowCount(len(orderinfo)) # 设置表格行数 33 | self.table_orderinfo.horizontalHeader().setStyleSheet("""QHeaderView::section {background-color:#008CBA ; /* 蓝色 */ 34 | color: WHITE; 35 | }; 36 | text-align : center;""") 37 | self.but_info = [] 38 | for index, item in enumerate(orderinfo, 0): 39 | supplier_id = item.get_supplier_id() 40 | account_id = item.get_account_id() 41 | 42 | supplier = SupplierFuc.selectSupplierBySupplierId(supplier_id) 43 | manage = ManagerFuc.selectManagerByAccount(account_id) 44 | 45 | but_info_temp = QPushButton("详情") 46 | but_info_temp.setDown(True) 47 | but_info_temp.setStyleSheet(''' text-align : center; 48 | border: 2px solid #e7e7e7; 49 | height : 30px; 50 | border-top:1px solid #eee; 51 | font : 13px;''') 52 | but_info_temp.setIcon(QIcon('../resource/info_icon.png')) 53 | but_info_temp.clicked.connect(lambda: print("触发了按钮单击,点击的按钮是:"+str(but_info_temp))) # 这里还没写好,因为还没画采购单详情界面!! 54 | 55 | widget = QWidget() 56 | hLayout = QHBoxLayout() 57 | hLayout.addWidget(but_info_temp) 58 | hLayout.setContentsMargins(5, 2, 5, 2) 59 | widget.setLayout(hLayout) 60 | 61 | self.table_orderinfo.setItem(index, 0, QTableWidgetItem(item.get_order_id())) # 供应商编号 62 | self.table_orderinfo.setItem(index, 1, QTableWidgetItem(supplier[0].get_supplier_name())) # 供应商名称 63 | self.table_orderinfo.setItem(index, 2, QTableWidgetItem(manage[0].getEmployee_name())) # 负责人 64 | self.table_orderinfo.setItem(index, 3, QTableWidgetItem(item.get_order_date().strftime('%Y-%m-%d'))) # 订单日期 65 | self.table_orderinfo.setCellWidget(index, 4, widget) # 操作 66 | 67 | print(orderinfo) 68 | 69 | 70 | def act_order_goods_add(self): 71 | global purchasing_goods # 储存采购单内的商品 72 | self.tabWidget.setCurrentIndex(2) 73 | self.Box_goods.setCurrentIndex(0) 74 | 75 | 76 | # 列表内添加按钮 77 | def buttonForOrder(self, id): 78 | widget = QWidget() 79 | # 修改 80 | updateBtn = QPushButton('修改') 81 | updateBtn.setStyleSheet(''' text-align : center; 82 | background-color : NavajoWhite; 83 | height : 30px; 84 | border-style: outset; 85 | font : 13px ''') 86 | 87 | updateBtn.clicked.connect(lambda: self.updateTable(id)) 88 | 89 | # 查看 90 | viewBtn = QPushButton('查看') 91 | viewBtn.setStyleSheet(''' text-align : center; 92 | background-color : DarkSeaGreen; 93 | height : 30px; 94 | border-style: outset; 95 | font : 13px; ''') 96 | 97 | viewBtn.clicked.connect(lambda: self.viewTable(id)) 98 | 99 | # 删除 100 | deleteBtn = QPushButton('删除') 101 | deleteBtn.setStyleSheet(''' text-align : center; 102 | background-color : LightCoral; 103 | height : 30px; 104 | border-style: outset; 105 | font : 13px; ''') 106 | 107 | hLayout = QHBoxLayout() 108 | hLayout.addWidget(updateBtn) 109 | hLayout.addWidget(viewBtn) 110 | hLayout.addWidget(deleteBtn) 111 | hLayout.setContentsMargins(5, 2, 5, 2) 112 | widget.setLayout(hLayout) 113 | return widget 114 | -------------------------------------------------------------------------------- /user/widget_Customerinfo_win.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtWidgets import QApplication, QWidget 4 | from UI.Customerinfo_widget import Ui_Form #导入py文件中的类 5 | 6 | 7 | class win(QWidget,Ui_Form): #继承类 8 | 9 | def __init__(self): 10 | super().__init__() 11 | self.resize(300,300) 12 | self.setupUi(self) #执行类中的setupUi函数 13 | 14 | if __name__=='__main__': 15 | app=QApplication(sys.argv) 16 | w=win() 17 | w.show() 18 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /user/widget_Goods_win.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtWidgets import QApplication, QWidget 4 | from UI.addGoods_widget import Ui_Form #导入py文件中的类 5 | 6 | 7 | class win(QWidget,Ui_Form): #继承类 8 | 9 | def __init__(self): 10 | super().__init__() 11 | self.resize(300,300) 12 | self.setupUi(self) #执行类中的setupUi函数 13 | 14 | if __name__=='__main__': 15 | app=QApplication(sys.argv) 16 | w=win() 17 | w.show() 18 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /user/widget_Orderinfo_win.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtWidgets import QApplication, QWidget 4 | from UI.Orderinfo_widget import Ui_Form #导入py文件中的类 5 | 6 | 7 | class win(QWidget,Ui_Form): #继承类 8 | 9 | def __init__(self): 10 | super().__init__() 11 | self.resize(300,300) 12 | self.setupUi(self) #执行类中的setupUi函数 13 | 14 | if __name__=='__main__': 15 | app=QApplication(sys.argv) 16 | w=win() 17 | w.show() 18 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /user/widget_Outboundinfo.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtWidgets import QApplication, QWidget 4 | from UI.outboundinfo_widget import Ui_Form #导入py文件中的类 5 | 6 | 7 | class win(QWidget,Ui_Form): #继承类 8 | 9 | def __init__(self): 10 | super().__init__() 11 | self.resize(300,300) 12 | self.setupUi(self) #执行类中的setupUi函数 13 | 14 | if __name__=='__main__': 15 | app=QApplication(sys.argv) 16 | w=win() 17 | w.show() 18 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /user/widget_Outboundlist.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtWidgets import QApplication, QWidget 4 | from UI.Outboundlist_widget import Ui_Form #导入py文件中的类 5 | 6 | 7 | class win(QWidget,Ui_Form): #继承类 8 | 9 | def __init__(self): 10 | super().__init__() 11 | self.resize(300,300) 12 | self.setupUi(self) #执行类中的setupUi函数 13 | 14 | if __name__=='__main__': 15 | app=QApplication(sys.argv) 16 | w=win() 17 | w.show() 18 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /user/widget_Purchaseorderquery_win.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtWidgets import QApplication, QWidget 4 | from UI.Purchaseorderquery_widget import Ui_Form # 导入py文件中的类 5 | 6 | 7 | class win(QWidget, Ui_Form): # 继承类 8 | 9 | def __init__(self): 10 | super().__init__() 11 | self.resize(300, 300) 12 | self.setupUi(self) # 执行类中的setupUi函数 13 | 14 | 15 | if __name__ == '__main__': 16 | app = QApplication(sys.argv) 17 | w = win() 18 | w.show() 19 | sys.exit(app.exec_()) 20 | -------------------------------------------------------------------------------- /user/widget_Saleinfo_win.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtWidgets import QApplication, QWidget 4 | from UI.Saleinfo_widget import Ui_Form #导入py文件中的类 5 | 6 | 7 | class win(QWidget,Ui_Form): #继承类 8 | 9 | def __init__(self): 10 | super().__init__() 11 | self.resize(300,300) 12 | self.setupUi(self) #执行类中的setupUi函数 13 | 14 | if __name__=='__main__': 15 | app=QApplication(sys.argv) 16 | w=win() 17 | w.show() 18 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /user/widget_Salelist.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtWidgets import QApplication, QWidget 4 | from UI.Salelist_widget import Ui_Form #导入py文件中的类 5 | 6 | 7 | class win(QWidget,Ui_Form): #继承类 8 | 9 | def __init__(self): 10 | super().__init__() 11 | self.resize(300,300) 12 | self.setupUi(self) #执行类中的setupUi函数 13 | 14 | if __name__=='__main__': 15 | app=QApplication(sys.argv) 16 | w=win() 17 | w.show() 18 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /user/widget_Supplier_win.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from PyQt5.QtWidgets import QApplication, QWidget 4 | from UI.Supplierinfo_widget import Ui_Form #导入py文件中的类 5 | 6 | 7 | class win(QWidget,Ui_Form): #继承类 8 | 9 | def __init__(self): 10 | super().__init__() 11 | self.resize(300,300) 12 | self.setupUi(self) #执行类中的setupUi函数 13 | 14 | if __name__=='__main__': 15 | app=QApplication(sys.argv) 16 | w=win() 17 | w.show() 18 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /vo/AutoGeneration.py: -------------------------------------------------------------------------------- 1 | class Goods: 2 | def __init__(self, draftorder_id=None, sale_id=None, goods_id=None, supplier_id=None, account_id= None, date= None, isfinish= None, isdelete= None): 3 | self.draftorder_id = draftorder_id 4 | self.sale_id = sale_id 5 | self.goods_id = goods_id 6 | self.supplier_id = supplier_id 7 | self.account_id = account_id 8 | self.date = date 9 | self.isfinish = isfinish 10 | self.isdelete = isdelete 11 | 12 | if __name__ == '__main__': 13 | student = Goods(0,0,0,0,0,0,0,0) 14 | print(student.__dict__) 15 | for k in student.__dict__: 16 | print("def set_" + k + "(self," + k + "):") 17 | print("\tself." + k, "=" + k) 18 | print("def get_" + k + "(self):") 19 | print("\treturn self." + k) -------------------------------------------------------------------------------- /vo/Customer.py: -------------------------------------------------------------------------------- 1 | # 采购时的顾客类 2 | 3 | class Customer: 4 | def __init__(self, customer_id=None, customer_name=None, customer_phone=None, customer_address=None, isdelete= None): 5 | self.customer_id = customer_id 6 | self.customer_name = customer_name 7 | self.customer_phone = customer_phone 8 | self.customer_address = customer_address 9 | self.isdelete = isdelete 10 | 11 | def getCustomer_id(self): 12 | return self.customer_id 13 | 14 | def setCustomer_id(self, customer_id): 15 | self.customer_id = customer_id 16 | 17 | def getCustomer_name(self): 18 | return self.customer_name 19 | 20 | def setCustomer_name(self, customer_name): 21 | self.customer_name = customer_name 22 | 23 | def getCustomer_phone(self): 24 | return self.customer_phone 25 | 26 | def setCustomer_phone(self, customer_phone): 27 | self.customer_phone = customer_phone 28 | 29 | def getCustomer_address(self): 30 | return self.customer_address 31 | 32 | def setCustomer_id(self, customer_address): 33 | self.customer_address = customer_address 34 | 35 | def getisdelete(self): 36 | return self.isdelete 37 | 38 | def setisdelete(self, isdelete): 39 | self.isdelete = isdelete 40 | 41 | def getReturnTuple(self): 42 | return self.customer_id, self.customer_name, self.customer_phone, self.customer_address 43 | -------------------------------------------------------------------------------- /vo/Dispatch.py: -------------------------------------------------------------------------------- 1 | class Dispatch: 2 | def __init__(self, dispatch_id=None, account_id=None, out_id=None, disp_date=None): 3 | self.dispatch_id = dispatch_id # 发货单编号 4 | self.account_id = account_id # 操作员编号 5 | self.out_id = out_id # 出库单编号 6 | self.disp_date = disp_date # 出库日期 7 | 8 | def getdispatch_id(self): 9 | return self.dispatch_id 10 | 11 | def setdispatch_id(self, dispatch_id): 12 | self.dispatch_id = dispatch_id 13 | 14 | def getaccount_id(self): 15 | return self.account_id 16 | 17 | def setaccount_id(self, account_id): 18 | self.account_id = account_id 19 | 20 | def getout_id(self): 21 | return self.disout_id 22 | 23 | def setout_id(self, out_id): 24 | self.out_id = out_id 25 | 26 | def getdisp_date(self): 27 | return self.disp_date 28 | 29 | def setdisp_date(self, disp_date): 30 | self.disp_date = disp_date 31 | 32 | def getReturnTuple(self): 33 | return self.dispatch_id, self.account_id, self.out_id, self.disp_date 34 | -------------------------------------------------------------------------------- /vo/DraftOrder.py: -------------------------------------------------------------------------------- 1 | # 暂存订货单类 2 | 3 | class DraftOrder: 4 | def __init__(self, draftorder_id=None, sale_id=None, goods_id=None, order_num=None, supplier_id=None, account_id=None, date=None, 5 | isfinish=None, isdelete=None): 6 | self.draftorder_id = draftorder_id 7 | self.sale_id = sale_id 8 | self.goods_id = goods_id 9 | self.order_num = order_num 10 | self.supplier_id = supplier_id 11 | self.account_id = account_id 12 | self.date = date 13 | self.isfinish = isfinish 14 | self.isdelete = isdelete 15 | 16 | def set_draftorder_id(self, draftorder_id): 17 | self.draftorder_id = draftorder_id 18 | 19 | def get_draftorder_id(self): 20 | return self.draftorder_id 21 | 22 | def set_sale_id(self, sale_id): 23 | self.sale_id = sale_id 24 | 25 | def get_sale_id(self): 26 | return self.sale_id 27 | 28 | def set_goods_id(self, goods_id): 29 | self.goods_id = goods_id 30 | 31 | def get_goods_id(self): 32 | return self.goods_id 33 | 34 | def set_order_num(self, order_num): 35 | self.order_num = order_num 36 | 37 | def get_order_num(self): 38 | return self.order_num 39 | 40 | def set_supplier_id(self, supplier_id): 41 | self.supplier_id = supplier_id 42 | 43 | def get_supplier_id(self): 44 | return self.supplier_id 45 | 46 | def set_account_id(self, account_id): 47 | self.account_id = account_id 48 | 49 | def get_account_id(self): 50 | return self.account_id 51 | 52 | def set_date(self, date): 53 | self.date = date 54 | 55 | def get_date(self): 56 | return self.date 57 | 58 | def set_isfinish(self, isfinish): 59 | self.isfinish = isfinish 60 | 61 | def get_isfinish(self): 62 | return self.isfinish 63 | 64 | def set_isdelete(self, isdelete): 65 | self.isdelete = isdelete 66 | 67 | def get_isdelete(self): 68 | return self.isdelete 69 | 70 | def getReturnTuple(self): 71 | return self.draftorder_id, self.sale_id, self.goods_id, self.order_num, self.supplier_id, self.account_id, self.date, self.isfinish, self.isdelete 72 | -------------------------------------------------------------------------------- /vo/Goods.py: -------------------------------------------------------------------------------- 1 | class Goods: 2 | def __init__(self, goods_id=None, goods_name=None, goods_number=None, price_cost=None, price_sell=None, goods_unit=None, supplier_id=None, isdelete=None): 3 | self.goods_id = goods_id # 商品编号 4 | self.goods_name = goods_name # 商品名称 5 | self.goods_number = goods_number # 商品库存 6 | self.goods_unit = goods_unit # 商品单位 7 | self.price_cost = price_cost # 商品成本 8 | self.price_sell = price_sell # 商品售价 9 | self.supplier_id = supplier_id # 供应商 10 | self.isdelete = isdelete 11 | 12 | def get_GoodsName(self): 13 | return self.goods_name 14 | 15 | def setGoodsName(self, goods_name): 16 | self.goods_name = goods_name 17 | 18 | def get_GoodsUnit(self): 19 | return self.goods_unit 20 | 21 | def setGoodsUnit(self, goods_unit): 22 | self.goods_unit = goods_unit 23 | 24 | def getGoods_id(self): 25 | return self.goods_id 26 | 27 | def setGoods_id(self, goods_id): 28 | self.goods_id = goods_id 29 | 30 | def getGoods_number(self): 31 | return self.goods_number 32 | 33 | def setGoods_number(self, goods_number): 34 | self.goods_number = goods_number 35 | 36 | def getPrice_cost(self): 37 | return self.price_cost 38 | 39 | def setPrice_cost(self, price_cost): 40 | self.price_cost = price_cost 41 | 42 | def getPrice_sell(self): 43 | return self.price_sell 44 | 45 | def setPrice_sell(self, price_sell): 46 | self.price_sell = price_sell 47 | 48 | def getSupplier_id(self): 49 | return self.supplier_id 50 | 51 | def setSupplier_id(self, supplier_id): 52 | self.supplier_id = supplier_id 53 | 54 | def get_isdelete(self): 55 | return self.isdelete 56 | 57 | def set_isdelete(self): 58 | return self.isdelete 59 | 60 | def getReturnTuple(self): 61 | return self.goods_id, self.goods_name, self.goods_number, self.price_cost, self.price_sell, self.goods_unit, self.supplier_id 62 | 63 | -------------------------------------------------------------------------------- /vo/Inbound.py: -------------------------------------------------------------------------------- 1 | class Inbound: 2 | def __init__(self, in_id=None, order_id=None, goods_id=None, account_id=None, in_date=None, in_num=None): 3 | self.in_id = in_id # 入库单编号 4 | self.order_id = order_id # 关联订货单编号 5 | self.goods_id = goods_id # 商品编号 6 | self.account_id = account_id # 制表人 7 | self.in_date = in_date # 入库时间 8 | self.in_num = in_num # 入库数量 9 | 10 | def getIn_num(self): 11 | return self.in_num 12 | 13 | def setIn_num(self, in_num): 14 | self.in_num = in_num 15 | 16 | def getIn_id(self): 17 | return self.in_id 18 | 19 | def setIn_id(self, in_id): 20 | self.in_id = in_id 21 | 22 | def getOrder_id(self): 23 | return self.order_id 24 | 25 | def setOrder_id(self, order_id): 26 | self.order_id = order_id 27 | 28 | def getGoods_id(self): 29 | return self.goods_id 30 | 31 | def setGoods_id(self, goods_id): 32 | self.goods_id = goods_id 33 | 34 | def getAccount_id(self): 35 | return self.account_id 36 | 37 | def setAccount_id(self, account_id): 38 | self.account_id = account_id 39 | 40 | def getIn_date(self): 41 | return self.in_date 42 | 43 | def setIn_date(self, in_date): 44 | self.in_date = in_date 45 | 46 | def getReturnTuple(self): 47 | return self.in_id, self.order_id, self.goods_id, self.account_id, self.in_date, self.in_num 48 | -------------------------------------------------------------------------------- /vo/Manager.py: -------------------------------------------------------------------------------- 1 | class Manager: 2 | def __init__(self, account=None, password=None, employee_name=None, department=None): 3 | self.account = account # 账号 4 | self.password = password # 面面 5 | self.department = department # 部门 6 | self.employee_name = employee_name # 名字 7 | 8 | def getAccount(self): 9 | return self.account 10 | 11 | def setAccount(self, account): 12 | self.account = account 13 | 14 | def getPassword(self): 15 | return self.password 16 | 17 | def setPassword(self, password): 18 | self.password = password 19 | 20 | def getEmployee_name(self): 21 | return self.employee_name 22 | 23 | def setEmployee_name(self, employee_name): 24 | self.employee_name = employee_name 25 | 26 | def getDepartment(self): 27 | return self.department 28 | 29 | def setDepartment(self, department): 30 | self.department = department 31 | 32 | -------------------------------------------------------------------------------- /vo/Order.py: -------------------------------------------------------------------------------- 1 | class Order: 2 | def __init__(self, order_id=None, account_id=None, supplier_id=None, order_date=None, pur_id=None, goods_id=None, order_flag=None, 3 | order_number=None, 4 | order_left=None): 5 | self.order_id = order_id # 订货单编号 6 | self.account_id = account_id # 管理员编号 7 | self.supplier_id = supplier_id # 供应商编号 8 | self.pur_id = pur_id # 关联采购申请单数量 9 | self.order_date = order_date # 采购时间 10 | self.goods_id = goods_id # 商品编号 11 | self.order_flag = order_flag # 12 | self.order_number = order_number # 13 | self.order_left = order_left # 14 | 15 | def set_order_id(self, order_id): 16 | self.order_id = order_id 17 | 18 | def get_order_id(self): 19 | return self.order_id 20 | 21 | def set_account_id(self, account_id): 22 | self.account_id = account_id 23 | 24 | def get_account_id(self): 25 | return self.account_id 26 | 27 | def set_supplier_id(self, supplier_id): 28 | self.supplier_id = supplier_id 29 | 30 | def get_supplier_id(self): 31 | return self.supplier_id 32 | 33 | def set_pur_id(self, pur_id): 34 | self.pur_id = pur_id 35 | 36 | def get_pur_id(self): 37 | return self.pur_id 38 | 39 | def set_order_date(self, order_date): 40 | self.order_date = order_date 41 | 42 | def get_order_date(self): 43 | return self.order_date 44 | 45 | def set_goods_id(self, goods_id): 46 | self.goods_id = goods_id 47 | 48 | def get_goods_id(self): 49 | return self.goods_id 50 | 51 | def set_order_flag(self, order_flag): 52 | self.order_flag = order_flag 53 | 54 | def get_order_flag(self): 55 | return self.order_flag 56 | 57 | def set_order_number(self, order_number): 58 | self.order_number = order_number 59 | 60 | def get_order_number(self): 61 | return self.order_number 62 | 63 | def set_order_left(self, order_left): 64 | self.order_left = order_left 65 | 66 | def get_order_left(self): 67 | return self.order_left 68 | 69 | def getReturnTuple(self): 70 | return self.order_id, self.account_id, self.supplier_id, self.order_left, \ 71 | self.order_date, self.goods_id, self.order_flag, self.order_number 72 | -------------------------------------------------------------------------------- /vo/Outbound.py: -------------------------------------------------------------------------------- 1 | class Outbound: 2 | def __init__(self, out_id=None, sale_id=None, account_id=None, out_date=None, goods_id=None, out_num=None, out_flag=None): 3 | self.out_id = out_id # 出库编号 4 | self.sale_id = sale_id # 关联销售单号 5 | self.goods_id = goods_id # 商品编号 6 | self.account_id = account_id # 管理员账号 7 | self.out_date = out_date # 出库时间 8 | self.out_num = out_num # 9 | self.out_flag = out_flag # 10 | 11 | def set_out_id(self, out_id): 12 | self.out_id = out_id 13 | 14 | def get_out_id(self): 15 | return self.out_id 16 | 17 | def set_sale_id(self, sale_id): 18 | self.sale_id = sale_id 19 | 20 | def get_sale_id(self): 21 | return self.sale_id 22 | 23 | def set_goods_id(self, goods_id): 24 | self.goods_id = goods_id 25 | 26 | def get_goods_id(self): 27 | return self.goods_id 28 | 29 | def set_account_id(self, account_id): 30 | self.account_id = account_id 31 | 32 | def get_account_id(self): 33 | return self.account_id 34 | 35 | def set_out_date(self, out_date): 36 | self.out_date = out_date 37 | 38 | def get_out_date(self): 39 | return self.out_date 40 | 41 | def set_out_num(self, out_num): 42 | self.out_num = out_num 43 | 44 | def get_out_num(self): 45 | return self.out_num 46 | 47 | def set_out_flag(self, out_flag): 48 | self.out_flag = out_flag 49 | 50 | def get_out_flag(self): 51 | return self.out_flag 52 | 53 | def getReturnTuple(self): 54 | return self.out_id, self.sale_id, self.goods_id, self.account_id, self.out_date, self.out_num, self.out_flag 55 | -------------------------------------------------------------------------------- /vo/Purchase.py: -------------------------------------------------------------------------------- 1 | class Purchase: 2 | def __init__(self, pur_id, account_id, sale_id, goods_id, pur_date, pur_number): 3 | self.pur_id = pur_id # 销售单编号 4 | self.account_id = account_id # 制表人 5 | self.sale_id = sale_id # 顾客编号 6 | self.goods_id = goods_id # 商品编号 7 | self.pur_date = pur_date # 下单时间 8 | self.pur_number = pur_number # 销售数量 9 | 10 | def set_pur_id(self, pur_id): 11 | self.pur_id = pur_id 12 | 13 | def get_pur_id(self): 14 | return self.pur_id 15 | 16 | def set_account_id(self, account_id): 17 | self.account_id = account_id 18 | 19 | def get_account_id(self): 20 | return self.account_id 21 | 22 | def set_sale_id(self, sale_id): 23 | self.sale_id = sale_id 24 | 25 | def get_sale_id(self): 26 | return self.sale_id 27 | 28 | def set_goods_id(self, goods_id): 29 | self.goods_id = goods_id 30 | 31 | def get_goods_id(self): 32 | return self.goods_id 33 | 34 | def set_pur_date(self, pur_date): 35 | self.pur_date = pur_date 36 | 37 | def get_pur_date(self): 38 | return self.pur_date 39 | 40 | def set_pur_number(self, pur_number): 41 | self.pur_number = pur_number 42 | 43 | def get_pur_number(self): 44 | return self.pur_number 45 | 46 | def getReturnTuple(self): 47 | return self.pur_id, self.account_id, self.sale_id, self.goods_id, self.pur_date, self.pur_number 48 | -------------------------------------------------------------------------------- /vo/Return.py: -------------------------------------------------------------------------------- 1 | class Return: 2 | def __init__(self, re_id=None, account_id=None, order_id=None, re_date=None, goods_id=None): 3 | self.re_id = re_id # 销售单编号 4 | self.account_id = account_id # 制表人 5 | self.order_id = order_id # 顾客编号 6 | self.goods_id = goods_id # 商品编号 7 | self.re_date = re_date # 下单时间 8 | 9 | def set_re_id(self, re_id): 10 | self.re_id = re_id 11 | 12 | def get_re_id(self): 13 | return self.re_id 14 | 15 | def set_account_id(self, account_id): 16 | self.account_id = account_id 17 | 18 | def get_account_id(self): 19 | return self.account_id 20 | 21 | def set_order_id(self, order_id): 22 | self.order_id = order_id 23 | 24 | def get_order_id(self): 25 | return self.order_id 26 | 27 | def set_goods_id(self, goods_id): 28 | self.goods_id = goods_id 29 | 30 | def get_goods_id(self): 31 | return self.goods_id 32 | 33 | def set_re_date(self, re_date): 34 | self.re_date = re_date 35 | 36 | def get_re_date(self): 37 | return self.re_date 38 | 39 | def getReturnTuple(self): 40 | return self.re_id, self.account_id, self.order_id, self.goods_id, self.re_date -------------------------------------------------------------------------------- /vo/Sale.py: -------------------------------------------------------------------------------- 1 | class Sale: 2 | def __init__(self, sale_id=None, account_id=None, customer_id=None, sale_date=None, goods_id=None, sale_number=None, sale_left=None, sale_flag=None): 3 | self.sale_id = sale_id # 销售单编号 4 | self.account_id = account_id # 制表人 5 | self.customer_id = customer_id # 顾客编号 6 | self.goods_id = goods_id # 商品编号 7 | self.sale_date = sale_date # 下单时间 8 | self.sale_number = sale_number # 销售数量 9 | self.sale_left = sale_left # 未出库数量数量 10 | self.sale_flag = sale_flag # 下单时间 11 | 12 | def set_sale_id(self, sale_id): 13 | self.sale_id = sale_id 14 | 15 | def get_sale_id(self): 16 | return self.sale_id 17 | 18 | def set_account_id(self, account_id): 19 | self.account_id = account_id 20 | 21 | def get_account_id(self): 22 | return self.account_id 23 | 24 | def set_customer_id(self, customer_id): 25 | self.customer_id = customer_id 26 | 27 | def get_customer_id(self): 28 | return self.customer_id 29 | 30 | def set_goods_id(self, goods_id): 31 | self.goods_id = goods_id 32 | 33 | def get_goods_id(self): 34 | return self.goods_id 35 | 36 | def set_sale_date(self, sale_date): 37 | self.sale_date = sale_date 38 | 39 | def get_sale_date(self): 40 | return self.sale_date 41 | 42 | def set_sale_number(self, sale_number): 43 | self.sale_number = sale_number 44 | 45 | def get_sale_number(self): 46 | return self.sale_number 47 | 48 | def set_sale_left(self, sale_left): 49 | self.sale_left = sale_left 50 | 51 | def get_sale_left(self): 52 | return self.sale_left 53 | 54 | def set_sale_flag(self, sale_flag): 55 | self.sale_flag = sale_flag 56 | 57 | def get_sale_flag(self): 58 | return self.sale_flag 59 | 60 | def getReturnTuple(self): 61 | return self.sale_id, self.account_id, self.customer_id, self.goods_id, self.sale_date, self.sale_number, self.sale_left, self.sale_flag 62 | -------------------------------------------------------------------------------- /vo/Supplier.py: -------------------------------------------------------------------------------- 1 | class Supplier: 2 | def __init__(self, supplier_id=None, supplier_name=None, supplier_contactor=None, supplier_phone=None, supplier_addr=None, isdelete=None): 3 | self.supplier_id = supplier_id # 供应商编号 4 | self.supplier_name = supplier_name # 供应商名字 5 | self.supplier_contactor = supplier_contactor # 供应商联系人 6 | self.supplier_phone = supplier_phone # 电话 7 | self.supplier_addr = supplier_addr # 供应商地址 8 | self.isdelete = isdelete 9 | 10 | def set_supplier_id(self, supplier_id): 11 | self.supplier_id = supplier_id 12 | 13 | def get_supplier_id(self): 14 | return self.supplier_id 15 | 16 | def set_supplier_name(self, supplier_name): 17 | self.supplier_name = supplier_name 18 | 19 | def get_supplier_name(self): 20 | return self.supplier_name 21 | 22 | def set_supplier_contactor(self, supplier_contactor): 23 | self.supplier_contactor = supplier_contactor 24 | 25 | def get_supplier_contactor(self): 26 | return self.supplier_contactor 27 | 28 | def set_supplier_phone(self, supplier_phone): 29 | self.supplier_phone = supplier_phone 30 | 31 | def get_supplier_phone(self): 32 | return self.supplier_phone 33 | 34 | def set_supplier_addr(self, supplier_addr): 35 | self.supplier_addr = supplier_addr 36 | 37 | def get_supplier_addr(self): 38 | return self.supplier_addr 39 | 40 | def get_isdelete(self): 41 | return self.isdelete 42 | 43 | def set_isdelete(self): 44 | return self.isdelete 45 | 46 | 47 | def getReturnTuple(self): 48 | return self.supplier_id, self.supplier_name, self.supplier_contactor, self.supplier_phone, self.supplier_addr -------------------------------------------------------------------------------- /vo/__pycache__/Customer.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Customer.cpython-38.pyc -------------------------------------------------------------------------------- /vo/__pycache__/Dispatch.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Dispatch.cpython-38.pyc -------------------------------------------------------------------------------- /vo/__pycache__/Goods.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Goods.cpython-38.pyc -------------------------------------------------------------------------------- /vo/__pycache__/Inbound.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Inbound.cpython-38.pyc -------------------------------------------------------------------------------- /vo/__pycache__/Manager.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Manager.cpython-38.pyc -------------------------------------------------------------------------------- /vo/__pycache__/Order.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Order.cpython-38.pyc -------------------------------------------------------------------------------- /vo/__pycache__/Outbound.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Outbound.cpython-38.pyc -------------------------------------------------------------------------------- /vo/__pycache__/Return.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Return.cpython-38.pyc -------------------------------------------------------------------------------- /vo/__pycache__/Sale.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Sale.cpython-38.pyc -------------------------------------------------------------------------------- /vo/__pycache__/Supplier.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunpuWei/InvoicingManagementSystem/6b14197cb3d93c8972f3fe9da200d63be57c2d56/vo/__pycache__/Supplier.cpython-38.pyc --------------------------------------------------------------------------------