├── .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 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
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
--------------------------------------------------------------------------------