def ui_acc(self): if self.traffic_id: query = """UPDATE staff_worker_traffic SET Position = %s, Data = %s, Table_Data = %s, Worker_Id = %s, Note = %s WHERE Id = %s""" sql_param = (self.le_position.text(), self.dt_date.dateTime().toPyDateTime(), self.dt_tabel_date.dateTime().toPyDateTime(), self.worker, self.le_note.text(), self.traffic_id) sql_traffic = my_sql.sql_change(query, sql_param) if "mysql.connector.errors" in str(type(sql_traffic)): QMessageBox.critical(self, "Ошибка sql изменение записи", sql_traffic.msg, QMessageBox.Ok) return False self.main.set_work_traffic(self.worker, True) else: query = """INSERT INTO staff_worker_traffic (Position, Data, Table_Data, Worker_Id, Note) VALUES (%s, %s, %s, %s, %s)""" sql_param = (self.le_position.text(), self.dt_date.dateTime().toPyDateTime(), self.dt_tabel_date.dateTime().toPyDateTime(), self.worker, self.le_note.text()) sql_traffic = my_sql.sql_change(query, sql_param) if "mysql.connector.errors" in str(type(sql_traffic)): QMessageBox.critical(self, "Ошибка sql лобавление записи", sql_traffic.msg, QMessageBox.Ok) return False self.main.set_work_traffic(self.worker, True) self.close() self.destroy()
def ui_add_tree_item(self): info = ChangeTreeItem() info.set_settings(self.set_new_win_tree) if info.exec() == 0: return False if info.rb_new.isChecked(): sql_tree = my_sql.sql_change( self.query_tree_add, (0, info.le_name.text(), info.le_position.text())) if "mysql.connector.errors" in str(type(sql_tree)): QMessageBox.critical( self, "Ошибка sql добавления корневого итема в дерево", sql_tree.msg, QMessageBox.Ok) return False self.set_tree_info() elif info.rb_old.isChecked(): try: parent_id = self.tree_widget.selectedItems()[0].data(0, 5) sql_tree = my_sql.sql_change( self.query_tree_add, (parent_id, info.le_name.text(), info.le_position.text())) if "mysql.connector.errors" in str(type(sql_tree)): QMessageBox.critical( self, "Ошибка sql добавления итема в дерево", sql_tree.msg, QMessageBox.Ok) return False self.set_tree_info() except: QMessageBox.critical( self, "Ошибка добавления", "Выделите элемент в который вы хотите вставить элемент", QMessageBox.Ok)
def ui_add(self): if self.le_name.text() == "" or self.le_machine.text() == "" or self.le_price.text() == "": QMessageBox.critical(self, "Ошибка сохранения", "Не заполнены обязательные поля.", QMessageBox.Ok) return False try: price = float(self.le_price.text().replace(",", ".")) except: QMessageBox.critical(self, "Ошибка цены", "Не правильно введена цена.", QMessageBox.Ok) return False if self.id: query = "UPDATE operations SET Name = %s, Sewing_Machine_Id = %s, Price = %s, Note = %s, Note2 = %s WHERE Id = %s" sql_info = my_sql.sql_change(query, (self.le_name.text(), self.le_machine.whatsThis(), price, self.pe_note.toPlainText(), self.le_note_2.text(), self.id)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql обновление информации", sql_info.msg, QMessageBox.Ok) return False elif self.tree_id: query = "INSERT INTO operations (Tree_Id, Name, Price, Sewing_Machine_Id, Note, Note2) VALUES (%s, %s, %s, %s, %s, %s)" sql_info = my_sql.sql_change(query, (self.tree_id, self.le_name.text(), price, self.le_machine.whatsThis(), self.pe_note.toPlainText(), self.le_note_2.text())) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql добавление информации", sql_info.msg, QMessageBox.Ok) return False else: QMessageBox.critical(self, "Ошибка", "Нету ни Id, ни Tree_Id", QMessageBox.Ok) self.close() self.destroy() self.main.set_table_info()
def ui_acc(self): data = [ self.ui_de_act_date.date().toPyDate(), self.ui_le_workers.text(), int(self.ui_le_supply.text()), self.ui_le_type_material.text(), self.ui_le_supply_provider.text(), self.ui_le_supply_act.text(), self.ui_de_supply_date.date().toPyDate(), int(self.ui_le_supply_value.text()), self.ui_le_sertificat.text(), self.ui_le_type_pack.text(), self.ui_le_audit_location.text(), self.ui_le_gost.text(), int(self.ui_le_audit_value.text()), self.ui_cb_quality.currentText(), ] if self.ui_le_density.text() and self.tip == 0: data.append(int(self.ui_le_density.text())) else: data.append(None) if self.act_id: data.append(self.act_id) query = """UPDATE audit SET audit_date = %s, workers = %s, supply_id = %s, type_material = %s, supply_provider = %s, supply_act = %s, supply_date = %s, supply_value = %s, sertificat = %s, type_pack = %s, audit_location = %s, gost = %s, audit_value = %s, quality = %s, density = %s WHERE id = %s""" sql_info = my_sql.sql_change(query, data) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при сохранении", sql_info.msg, QMessageBox.Ok) return False else: data.append(self.tip) query = """INSERT INTO audit (audit_date, workers, supply_id, type_material, supply_provider, supply_act, supply_date, supply_value, sertificat, type_pack, audit_location, gost, audit_value, quality, density, type_supply) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""" sql_info = my_sql.sql_change(query, data) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при сохранении", sql_info.msg, QMessageBox.Ok) return False self.done(1) self.close() self.destroy()
def ui_beika_acc(self): self.timer.start(900000) if self.le_value.text() == "": return False elif self.lw_material.currentRow() < 0: return False try: value = self.le_value.text().replace(",", ".") except: self.le_value.setStyleSheet( "border: 4px solid;\nborder-color: rgb(247, 84, 84);") return False query = """INSERT INTO beika (Material_Id, Accessories_Id, Date, Value, Finished, Worker_Id, Supply_Id) VALUES (%s, %s, %s, %s, %s, %s, %s)""" sql_value = (self.lw_material.selectedItems()[0].data(-1), self.beika_accessories_id, self.cw_date.selectedDate().toString(Qt.ISODate), value, 0, self.user["id"], None) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): self.le_error.setText( "Не получилось сохранить нарезку. Обратитесь к администрации.") self.pushButton_21.setEnabled(False) return False self.lw_material.clear() self.le_value.clear() self.sw_main.setCurrentIndex(1)
def ui_transfer_table(self): try: transfer_id = [] for item in self.table_widget.selectedItems(): if item.data(5) not in transfer_id: transfer_id.append(item.data(5)) except: QMessageBox.critical(self, "Ошибка переноса", "Выберете элементы для переноса", QMessageBox.Ok) return False if not transfer_id: QMessageBox.critical(self, "Ошибка переноса", "Выберете элементы для переноса", QMessageBox.Ok) return False info = TreeTransfer(self.query_tree_select) info.set_settings(self.set_transfer_win) if info.exec() == 0: return False if not info.select_tree_id: QMessageBox.critical(self, "Ошибка переноса", "Выберете в каую категорию перенести", QMessageBox.Ok) new_tree_id = info.select_tree_id for item_id in transfer_id: sql_info = my_sql.sql_change(self.query_transfer_item, (new_tree_id, item_id)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql получение табюлицы", sql_info.msg, QMessageBox.Ok) return False self.set_table_info()
def ui_change_item(self, id=False): if id: id_select = id else: try: id_select = self.lw_list.selectedItems()[0].data(3) except: QMessageBox.critical(self, "Ошибка", "Выберете элемент", QMessageBox.Ok) return False sql_result = my_sql.sql_select(self.sql_change_select, (id_select, )) if "mysql.connector.errors" in str(type(sql_result)): QMessageBox.critical(self, "Ошибка sql получение предмета", sql_result.msg, QMessageBox.Ok) return False change_item = item_2.Item2() change_item.set_settings(self.set_new_win) change_item.le_name.setText(sql_result[0][0]) change_item.pe_note.appendPlainText(sql_result[0][1]) change_item.setModal(True) change_item.show() if change_item.exec() == 0: return False sql_result = my_sql.sql_change( self.sql_update_select, (change_item.le_name.text(), change_item.pe_note.toPlainText(), id_select)) if "mysql.connector.errors" in str(type(sql_result)): QMessageBox.critical(self, "Ошибка sql добавление предмета", sql_result.msg, QMessageBox.Ok) return False self.sql_set_list()
def ui_change_tree_item(self): try: parent_name = self.tree_widget.selectedItems()[0].text(0) parent_id = self.tree_widget.selectedItems()[0].data(0, 5) info = ChangeTreeItem() info.set_settings(self.set_new_win_tree) info.rb_old.close() info.rb_new.close() info.le_name.setText(parent_name) if info.exec() == 0: return False sql_tree = my_sql.sql_change( self.query_tree_change, (info.le_name.text(), info.le_position.text(), parent_id)) if "mysql.connector.errors" in str(type(sql_tree)): QMessageBox.critical(self, "Ошибка sql изменения итема в дереве", sql_tree.msg, QMessageBox.Ok) return False self.set_tree_info() except: QMessageBox.critical(self, "Ошибка изменения", "Выделите элемент который хотите изменить", QMessageBox.Ok)
def ui_beika_acc(self): self.timer.start(900000) if self.le_value.text() == "": return False elif self.lw_material.currentRow() < 0: return False try: value = self.le_value.text().replace(",", ".") except: self.le_value.setStyleSheet("border: 4px solid;\nborder-color: rgb(247, 84, 84);") return False query = """INSERT INTO beika (Material_Id, Accessories_Id, Date, Value, Finished, Worker_Id, Supply_Id) VALUES (%s, %s, %s, %s, %s, %s, %s)""" sql_value = (self.lw_material.selectedItems()[0].data(-1), self.beika_accessories_id, self.cw_date.selectedDate().toString(Qt.ISODate), value, 0, self.user["id"], None) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): self.le_error.setText("Не получилось сохранить нарезку. Обратитесь к администрации.") self.pushButton_21.setEnabled(False) return False self.lw_material.clear() self.le_value.clear() self.sw_main.setCurrentIndex(1)
def ui_dell_tree_item(self): result = QMessageBox.question(self, "Удаление", "Точно удалить ветку?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: try: parent_id = self.tree_widget.selectedItems()[0].data(0, 5) if self.tree_widget.selectedItems()[0].childCount() == 0: sql_tree = my_sql.sql_change(self.query_tree_del, (parent_id, )) if "mysql.connector.errors" in str(type(sql_tree)): QMessageBox.critical( self, "Ошибка sql удаления итема в дереве", sql_tree.msg, QMessageBox.Ok) return False self.set_tree_info() else: QMessageBox.critical( self, "Ошибка", "У этого элеиента есть дети удалите сначало их", QMessageBox.Ok) except: QMessageBox.critical( self, "Ошибка ", "Выделите элемент который хотите удалить", QMessageBox.Ok) return False
def ui_set_date_month(self): table_date = [] for trafic in self.sql_traffic: if trafic[2]: if not trafic[3]: min = trafic[2].minute if 0 <= min <= 15: tab_date = trafic[2].replace(minute=0) elif 16 <= min <= 45: tab_date = trafic[2].replace(minute=30) else: tab_date = trafic[2].replace(minute=0) hour_up = trafic[2].hour + 1 if hour_up < 24: tab_date = tab_date.replace(hour=hour_up) else: day = trafic[2].day tab_date = tab_date.replace(day=day + 1, hour=hour_up-24) table_date.append((tab_date, trafic[0])) else: QMessageBox.critical(self, "Ошибка даты", "Что то не так с датой", QMessageBox.Ok) return False query = "UPDATE staff_worker_traffic SET Table_Data = %s WHERE Id = %s" for sql_table in table_date: sql = my_sql.sql_change(query, sql_table) if "mysql.connector.errors" in str(type(sql)): QMessageBox.critical(self, "Ошибка sql проставления дат", sql.msg, QMessageBox.Ok) return False self.set_work_traffic(int(self.le_worker.whatsThis()), True)
def of_list_accessories_name(self, accessories): if self.le_accessories_name.whatsThis() != "None": query = "UPDATE accessories_name SET For_Beika = 0 WHERE Id = %s" sql_info = my_sql.sql_change(query, (self.le_accessories_name.whatsThis(), )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql удаления разрешеной фурнитуры", sql_info.msg, QMessageBox.Ok) return False query = "UPDATE accessories_name SET For_Beika = 1 WHERE Id = %s" sql_info = my_sql.sql_change(query, (accessories[0], )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql добавления разрешеной фурнитуры", sql_info.msg, QMessageBox.Ok) return False self.le_accessories_name.setText(str(accessories[1])) self.le_accessories_name.setWhatsThis(str(accessories[0]))
def of_list_material_name(self, item): query = "UPDATE material_name SET For_Beika = 1 WHERE Id = %s" sql_info = my_sql.sql_change(query, (item[0],)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql добавления ткани", sql_info.msg, QMessageBox.Ok) return False self.set_start_settings()
def of_tree_select_operation(self, item): query = "INSERT INTO add_operation_list (Id) VALUES (%s)" sql_info = my_sql.sql_change(query, (item[0],)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql добавления операции", sql_info.msg, QMessageBox.Ok) return False self.ui_update()
def ui_acc(self): if self.id: query = "UPDATE staff_worker_kard SET Worker_Id = %s, Card_Id = %s WHERE Worker_Id = %s" sql_info = my_sql.sql_change(query, (self.le_worker.whatsThis(), self.le_card.text(), self.id)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. карты", sql_info.msg, QMessageBox.Ok) return False else: query = "INSERT INTO staff_worker_kard (Worker_Id, Card_Id) VALUES (%s, %s)" sql_info = my_sql.sql_change(query, (self.le_worker.whatsThis(), self.le_card.text())) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. карты", sql_info.msg, QMessageBox.Ok) return False self.main.ui_update() self.close() self.destroy()
def ui_del_material(self): id = self.lw_material_name.selectedItems()[0].data(-1) query = "UPDATE material_name SET For_Beika = 0 WHERE Id = %s" sql_info = my_sql.sql_change(query, (id,)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql удаления ткани", sql_info.msg, QMessageBox.Ok) return False self.set_start_settings()
def ui_ok(self): query = 'UPDATE program_settings_road SET One_year = %s, Many_year = %s WHERE Id = %s' sql_ret = my_sql.sql_change(query, (self.le_one_year.text(), self.le_many_year.text(), self.row_id)) if "mysql.connector.errors" in str(type(sql_ret)): QMessageBox.critical(self, "Ошибка sql", sql_ret.msg, QMessageBox.Ok) return False self.close() self.destroy()
def of_tree_select_operation(self, item): query = "INSERT INTO add_operation_list (Id) VALUES (%s)" sql_info = my_sql.sql_change(query, (item[0], )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql добавления операции", sql_info.msg, QMessageBox.Ok) return False self.ui_update()
def ui_save_salary(self): if not self.salary: QMessageBox.information(self, "Ошибка", "Нет зарплаты для сохранения", QMessageBox.Ok) return False sql_date = self.date_pay.strftime("%Y-%m-%d") result = QMessageBox.question( self, "Сохранить?", "Точно сохранить весь список в зарплату на %s?" % sql_date, QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: operation_id_list = [] p_m_id_list = [] for work in self.salary: for operation in work["operation_list"]: operation_id_list.append(operation[0]) for p_m in work["p_m_list"]: p_m_id_list.append(p_m[0]) sql_date = self.date_pay.strftime("%Y-%m-%d") if operation_id_list: sql_date = self.date_pay.strftime("%Y-%m-%d") query = """UPDATE pack_operation SET Pay = 1, Date_Pay = '%s' WHERE Id IN %s""" % ( sql_date, str(tuple(operation_id_list)).replace(",)", ")")) sql_info = my_sql.sql_change(query) if "mysql.connector.errors" in str(type(sql_info)): print("Не смог поставить оплату операции") return False if p_m_id_list: query = """UPDATE pay_worker SET Pay = 1, Date_Pay = '%s' WHERE Id IN %s""" % ( sql_date, str(tuple(p_m_id_list)).replace(",)", ")")) sql_info = my_sql.sql_change(query) if "mysql.connector.errors" in str(type(sql_info)): print("Не смог поставить оплату допдат и вычетов") return False else: return False
def ui_add(self): if self.le_name.text() == "" or self.le_machine.text( ) == "" or self.le_price.text() == "": QMessageBox.critical(self, "Ошибка сохранения", "Не заполнены обязательные поля.", QMessageBox.Ok) return False try: price = float(self.le_price.text().replace(",", ".")) except: QMessageBox.critical(self, "Ошибка цены", "Не правильно введена цена.", QMessageBox.Ok) return False if self.id: query = "UPDATE operations SET Name = %s, Sewing_Machine_Id = %s, Price = %s, Note = %s, Note2 = %s WHERE Id = %s" sql_info = my_sql.sql_change( query, (self.le_name.text(), self.le_machine.whatsThis(), price, self.pe_note.toPlainText(), self.le_note_2.text(), self.id)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql обновление информации", sql_info.msg, QMessageBox.Ok) return False elif self.tree_id: query = "INSERT INTO operations (Tree_Id, Name, Price, Sewing_Machine_Id, Note, Note2) VALUES (%s, %s, %s, %s, %s, %s)" sql_info = my_sql.sql_change( query, (self.tree_id, self.le_name.text(), price, self.le_machine.whatsThis(), self.pe_note.toPlainText(), self.le_note_2.text())) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql добавление информации", sql_info.msg, QMessageBox.Ok) return False else: QMessageBox.critical(self, "Ошибка", "Нету ни Id, ни Tree_Id", QMessageBox.Ok) self.close() self.destroy() self.main.set_table_info()
def of_operation_input_complete(self, operation, date_make): query = """UPDATE pack_operation SET Worker_Id = %s, Date_make = %s, Date_Input = SYSDATE() WHERE Id = %s""" sql_value = (self.user["id"], date_make.toString(Qt.ISODate), operation[0]) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): self.lb_operation_error.setText('<html><head/><body><p align="center"><span style=" color:#ff0000;">Операция не сохранена(Err BD)</span></p></body></html>') return False self.set_operation_table() self.lb_operation_error.setText('<html><head/><body><p align="center"><span style=" color:#00aa00;">Операция сохранена</span></p></body></html>')
def ui_acc(self): if self.traffic_id: query = """UPDATE staff_worker_traffic SET Position = %s, Data = %s, Table_Data = %s, Worker_Id = %s, Note = %s WHERE Id = %s""" sql_param = (self.le_position.text(), self.dt_date.dateTime().toPyDateTime(), self.dt_tabel_date.dateTime().toPyDateTime(), self.worker, self.le_note.text(), self.traffic_id) sql_traffic = my_sql.sql_change(query, sql_param) if "mysql.connector.errors" in str(type(sql_traffic)): QMessageBox.critical(self, "Ошибка sql изменение записи", sql_traffic.msg, QMessageBox.Ok) return False self.main.set_work_traffic(self.worker, True) else: query = """INSERT INTO staff_worker_traffic (Position, Data, Table_Data, Worker_Id, Note) VALUES (%s, %s, %s, %s, %s)""" sql_param = (self.le_position.text(), self.dt_date.dateTime().toPyDateTime(), self.dt_tabel_date.dateTime().toPyDateTime(), self.worker, self.le_note.text()) sql_traffic = my_sql.sql_change(query, sql_param) if "mysql.connector.errors" in str(type(sql_traffic)): QMessageBox.critical(self, "Ошибка sql лобавление записи", sql_traffic.msg, QMessageBox.Ok) return False self.main.set_work_traffic(self.worker, True) self.close() self.destroy()
def ui_add_tree_item(self): info = ChangeTreeItem() info.set_settings(self.set_new_win_tree) if info.exec() == 0: return False if info.rb_new.isChecked(): sql_tree = my_sql.sql_change(self.query_tree_add, (0, info.le_name.text(), info.le_position.text())) if "mysql.connector.errors" in str(type(sql_tree)): QMessageBox.critical(self, "Ошибка sql добавления корневого итема в дерево", sql_tree.msg, QMessageBox.Ok) return False self.set_tree_info() elif info.rb_old.isChecked(): try: parent_id = self.tree_widget.selectedItems()[0].data(0, 5) sql_tree = my_sql.sql_change(self.query_tree_add, (parent_id, info.le_name.text(), info.le_position.text())) if "mysql.connector.errors" in str(type(sql_tree)): QMessageBox.critical(self, "Ошибка sql добавления итема в дерево", sql_tree.msg, QMessageBox.Ok) return False self.set_tree_info() except: QMessageBox.critical(self, "Ошибка добавления", "Выделите элемент в который вы хотите вставить элемент", QMessageBox.Ok)
def ui_acc(self): if self.id: query = "UPDATE staff_worker_kard SET Worker_Id = %s, Card_Id = %s WHERE Worker_Id = %s" sql_info = my_sql.sql_change( query, (self.le_worker.whatsThis(), self.le_card.text(), self.id)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. карты", sql_info.msg, QMessageBox.Ok) return False else: query = "INSERT INTO staff_worker_kard (Worker_Id, Card_Id) VALUES (%s, %s)" sql_info = my_sql.sql_change( query, (self.le_worker.whatsThis(), self.le_card.text())) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. карты", sql_info.msg, QMessageBox.Ok) return False self.main.ui_update() self.close() self.destroy()
def ui_dell_table_item(self): result = QMessageBox.question(self, "Удаление", "Точно удалить элемент?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: try: id_item = self.table_widget.selectedItems() except: QMessageBox.critical(self, "Ошибка Удаления", "Выделите элемент который хотите удалить", QMessageBox.Ok) return False for id in id_item: sql_info = my_sql.sql_change(self.query_table_dell, (id.data(5), )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql удаления элемента таблицы", sql_info.msg, QMessageBox.Ok) return False self.set_table_info()
def ui_del_position(self): try: item_id = self.tw_access.selectedItems()[0].data(-2) except: QMessageBox.critical(self, "Ошибка ", "Выделите элемент который хотите удалить", QMessageBox.Ok) return False query = """DELETE FROM access WHERE Id = %s""" sql_info = my_sql.sql_change(query, (item_id, )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при удалении позиции", sql_info.msg, QMessageBox.Ok) return False self.of_update()
def ui_save_salary(self): if not self.salary: QMessageBox.information(self, "Ошибка", "Нет зарплаты для сохранения", QMessageBox.Ok) return False sql_date = self.date_pay.strftime("%Y-%m-%d") result = QMessageBox.question(self, "Сохранить?", "Точно сохранить весь список в зарплату на %s?" % sql_date, QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: operation_id_list = [] p_m_id_list = [] for work in self.salary: for operation in work["operation_list"]: operation_id_list.append(operation[0]) for p_m in work["p_m_list"]: p_m_id_list.append(p_m[0]) sql_date = self.date_pay.strftime("%Y-%m-%d") if operation_id_list: sql_date = self.date_pay.strftime("%Y-%m-%d") query = """UPDATE pack_operation SET Pay = 1, Date_Pay = '%s' WHERE Id IN %s""" % (sql_date, str(tuple(operation_id_list)).replace(",)", ")")) sql_info = my_sql.sql_change(query) if "mysql.connector.errors" in str(type(sql_info)): print("Не смог поставить оплату операции") return False if p_m_id_list: query = """UPDATE pay_worker SET Pay = 1, Date_Pay = '%s' WHERE Id IN %s""" % (sql_date, str(tuple(p_m_id_list)).replace(",)", ")")) sql_info = my_sql.sql_change(query) if "mysql.connector.errors" in str(type(sql_info)): print("Не смог поставить оплату допдат и вычетов") return False else: return False
def ui_save_sql(self): for row in self.new_table: query = """INSERT INTO audit (supply_id, type_supply, audit_date, sertificat, type_pack, audit_value, audit_location, quality, workers, supply_provider, supply_date, supply_act, type_material, supply_value, gost, density) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""" sql_info = my_sql.sql_change(query, row) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при сохранении", sql_info.msg, QMessageBox.Ok) return False self.done(1) self.close() self.destroy()
def ui_add_item(self): add_item = item_2.Item2() add_item.set_settings(self.set_new_win) add_item.setModal(True) add_item.show() if add_item.exec() == 0: return False sql_result = my_sql.sql_change( self.sql_add, (add_item.le_name.text(), add_item.pe_note.toPlainText())) if "mysql.connector.errors" in str(type(sql_result)): QMessageBox.critical(self, "Ошибка sql добавление предмета", sql_result.msg, QMessageBox.Ok) return False self.sql_set_list()
def ui_double_item_table(self): # Дублирование строки try: item_id = self.table_widget.selectedItems()[0].data(5) except: QMessageBox.critical(self, "Ошибка ", "Выделите элемент который хотите дублировать", QMessageBox.Ok) return False result = QMessageBox.question(self, "Дублирование", "Точно хотите дублировать операцию?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: query = "INSERT INTO operations (Tree_Id, Name, Price, Sewing_Machine_Id, Note) " \ "(SELECT Tree_Id, CONCAT(Name, '-К'), Price, Sewing_Machine_Id, Note FROM operations WHERE Id = %s)" sql_info = my_sql.sql_change(query, (item_id, )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql дублирование строки", sql_info.msg, QMessageBox.Ok) return False self.set_table_info()
def ui_acc(self): if not self.id: if self.worker: sql_value = (self.worker, None, self.le_class.text(), self.le_atr1.text(), self.le_atr2.text(), self.le_value.text()) elif self.position: sql_value = (None, self.position, self.le_class.text(), self.le_atr1.text(), self.le_atr2.text(), self.le_value.text()) else: return False query = """INSERT INTO access (Worker_Id, Staff_Position_Id, Class, Atr1, Atr2, Atr_Value) VALUE (%s, %s, %s, %s, %s, %s)""" sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при добавлении разрешения", sql_info.msg, QMessageBox.Ok) return False else: query = """UPDATE access SET Class = %s, Atr1 = %s, Atr2 = %s, Atr_Value = %s WHERE Id = %s""" sql_info = my_sql.sql_change(query, (self.le_class.text(), self.le_atr1.text(), self.le_atr2.text(), self.le_value.text(), self.id)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при изменении разрешения", sql_info.msg, QMessageBox.Ok) return False self.main.of_update() self.close() self.destroy()
def ui_del(self): result = QMessageBox.question(self, "Удаление", "Точно удалить запись?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: try: id_item = self.tw_traffic.selectedItems() except: QMessageBox.critical(self, "Ошибка Удаления", "Выделите запись который хотите удалить", QMessageBox.Ok) return False for id in id_item: query = """DELETE FROM staff_worker_traffic WHERE staff_worker_traffic.Id = %s""" sql_info = my_sql.sql_change(query, (id.data(-2), )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql удаления записи посещения", sql_info.msg, QMessageBox.Ok) return False self.set_work_traffic(self.le_worker.whatsThis(), True)
def ui_dell_tree_item(self): result = QMessageBox.question(self, "Удаление", "Точно удалить ветку?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: try: parent_id = self.tree_widget.selectedItems()[0].data(0, 5) if self.tree_widget.selectedItems()[0].childCount() == 0: sql_tree = my_sql.sql_change(self.query_tree_del, (parent_id, )) if "mysql.connector.errors" in str(type(sql_tree)): QMessageBox.critical(self, "Ошибка sql удаления итема в дереве", sql_tree.msg, QMessageBox.Ok) return False self.set_tree_info() else: QMessageBox.critical(self, "Ошибка", "У этого элеиента есть дети удалите сначало их", QMessageBox.Ok) except: QMessageBox.critical(self, "Ошибка ", "Выделите элемент который хотите удалить", QMessageBox.Ok) return False
def ui_dell_item(self): result = QMessageBox.question(self, "Удаление", "Точно удалить элемент?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: try: id_select = self.lw_list.selectedItems()[0].data(3) sql_result = my_sql.sql_change(self.sql_dell, (id_select, )) if "mysql.connector.errors" in str(type(sql_result)): QMessageBox.critical(self, "Ошибка sql удаление предмета", sql_result.msg, QMessageBox.Ok) return False self.sql_set_list() except: QMessageBox.critical(self, "Ошибка", "Выберете элемент", QMessageBox.Ok)
def of_operation_input_complete(self, operation, date_make): query = """UPDATE pack_operation SET Worker_Id = %s, Date_make = %s, Date_Input = SYSDATE() WHERE Id = %s""" sql_value = (self.user["id"], date_make.toString(Qt.ISODate), operation[0]) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): self.lb_operation_error.setText( '<html><head/><body><p align="center"><span style=" color:#ff0000;">Операция не сохранена(Err BD)</span></p></body></html>' ) return False self.set_operation_table() self.lb_operation_error.setText( '<html><head/><body><p align="center"><span style=" color:#00aa00;">Операция сохранена</span></p></body></html>' )
def ui_change_tree_item(self): try: parent_name = self.tree_widget.selectedItems()[0].text(0) parent_id = self.tree_widget.selectedItems()[0].data(0, 5) info = ChangeTreeItem() info.set_settings(self.set_new_win_tree) info.rb_old.close() info.rb_new.close() info.le_name.setText(parent_name) if info.exec() == 0: return False sql_tree = my_sql.sql_change(self.query_tree_change, (info.le_name.text(), info.le_position.text(), parent_id)) if "mysql.connector.errors" in str(type(sql_tree)): QMessageBox.critical(self, "Ошибка sql изменения итема в дереве", sql_tree.msg, QMessageBox.Ok) return False self.set_tree_info() except: QMessageBox.critical(self, "Ошибка изменения", "Выделите элемент который хотите изменить", QMessageBox.Ok)
def ui_double_item_table(self): # Дублирование строки try: item_id = self.table_widget.selectedItems()[0].data(5) except: QMessageBox.critical( self, "Ошибка ", "Выделите элемент который хотите дублировать", QMessageBox.Ok) return False result = QMessageBox.question(self, "Дублирование", "Точно хотите дублировать операцию?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: query = "INSERT INTO operations (Tree_Id, Name, Price, Sewing_Machine_Id, Note) " \ "(SELECT Tree_Id, CONCAT(Name, '-К'), Price, Sewing_Machine_Id, Note FROM operations WHERE Id = %s)" sql_info = my_sql.sql_change(query, (item_id, )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql дублирование строки", sql_info.msg, QMessageBox.Ok) return False self.set_table_info()
def ui_dell_table_item(self): result = QMessageBox.question(self, "Удаление", "Точно удалить элемент?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: try: id_item = self.table_widget.selectedItems() except: QMessageBox.critical( self, "Ошибка Удаления", "Выделите элемент который хотите удалить", QMessageBox.Ok) return False for id in id_item: sql_info = my_sql.sql_change(self.query_table_dell, (id.data(5), )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical( self, "Ошибка sql удаления элемента таблицы", sql_info.msg, QMessageBox.Ok) return False self.set_table_info()
def ui_del(self): result = QMessageBox.question(self, "Удаление", "Точно удалить запись?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: try: id_item = self.tw_traffic.selectedItems() except: QMessageBox.critical(self, "Ошибка Удаления", "Выделите запись который хотите удалить", QMessageBox.Ok) return False for id in id_item: query = """DELETE FROM staff_worker_traffic WHERE staff_worker_traffic.Id = %s""" sql_info = my_sql.sql_change(query, (id.data(-2), )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical( self, "Ошибка sql удаления записи посещения", sql_info.msg, QMessageBox.Ok) return False self.set_work_traffic(self.le_worker.whatsThis(), True)
def ui_print_tcp(self): self.label_data["label_value"] = self.le_value.value() self.label_data["label_print"] = self.cb_printer.currentText() log_article = "%s %s %s" % (self.label_data["article"], self.label_data["article_size"], self.label_data["article_parametr"]) self.logger.info(u"[Пользователь {:04d}] {}".format( User().id(), "Печатает артикул %s, кол-во %s, бирка %s, ID пачки %s" % (log_article, self.label_data["label_value"], self.label_data["label_path"], self.label_data["pack_id"]))) conn = socket.socket() try: conn.connect((IP_SERV_LABEL, 6666)) except TimeoutError: return False conn.send(bytes(str(self.label_data), encoding='utf-8')) conn.send(b"data_ok") print(QDateTime.currentDateTime().toString(Qt.ISODate)) print(self.label_data) # Если есть ID пачки то отправим информацию в БД что пачка напечатана! if self.label_data["pack_id"] != "None": query = """UPDATE pack SET Print = 1 WHERE Id = %s""" info_sql = my_sql.sql_change(query, (self.label_data["pack_id"], )) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical( self, "Ошибка sql подтверждения напечатанности пачки", info_sql.msg, QMessageBox.Ok) self.done(1)
def ui_transfer_table(self): try: transfer_id = [] for item in self.table_widget.selectedItems(): if item.data(5) not in transfer_id: transfer_id.append(item.data(5)) except: QMessageBox.critical(self, "Ошибка переноса", "Выберете элементы для переноса", QMessageBox.Ok) return False if not transfer_id: QMessageBox.critical(self, "Ошибка переноса", "Выберете элементы для переноса", QMessageBox.Ok) return False info = TreeTransfer(self.query_tree_select) info.set_settings(self.set_transfer_win) if info.exec() == 0: return False if not info.select_tree_id: QMessageBox.critical(self, "Ошибка переноса", "Выберете в каую категорию перенести", QMessageBox.Ok) new_tree_id = info.select_tree_id for item_id in transfer_id: sql_info = my_sql.sql_change(self.query_transfer_item, (new_tree_id, item_id)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql получение табюлицы", sql_info.msg, QMessageBox.Ok) return False self.set_table_info()
def ui_set_date_month(self): table_date = [] for trafic in self.sql_traffic: if trafic[2]: if not trafic[3]: min = trafic[2].minute if 0 <= min <= 15: tab_date = trafic[2].replace(minute=0) elif 16 <= min <= 45: tab_date = trafic[2].replace(minute=30) else: tab_date = trafic[2].replace(minute=0) hour_up = trafic[2].hour + 1 if hour_up < 24: tab_date = tab_date.replace(hour=hour_up) else: day = trafic[2].day tab_date = tab_date.replace(day=day + 1, hour=hour_up - 24) table_date.append((tab_date, trafic[0])) else: QMessageBox.critical(self, "Ошибка даты", "Что то не так с датой", QMessageBox.Ok) return False query = "UPDATE staff_worker_traffic SET Table_Data = %s WHERE Id = %s" for sql_table in table_date: sql = my_sql.sql_change(query, sql_table) if "mysql.connector.errors" in str(type(sql)): QMessageBox.critical(self, "Ошибка sql проставления дат", sql.msg, QMessageBox.Ok) return False self.set_work_traffic(int(self.le_worker.whatsThis()), True)
def ui_del(self): table = self._get_table() if table.currentRow() is None: QMessageBox.critical(self, "Ошибка", "Выберите строчку", QMessageBox.Ok) return False select_row = table.currentRow() _id = table.item(select_row, 0).data(5) result = QMessageBox.question(self, "Удаление", "Точно удалить элемент?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if result == 16384: query = """DELETE FROM audit WHERE Id = %s""" sql_info = my_sql.sql_change(query, (_id, )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при удалении", sql_info.msg, QMessageBox.Ok) return False self.update()
def acc(self): if self.cb_nds.isChecked(): no_nds = 1 else: no_nds = 0 if self.select_id == "new": query = """INSERT INTO clients (Name, Legal_Address, Actual_Address, INN, KPP, OGRN, Account, Bank, corres_Account, BIK, Contact_Person, Phone, Mail, Note, No_Nds, Full_Name) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""" paremetrs = (self.le_name.text(), self.le_legal_address.text(), self.le_actual_address.text(), self.le_inn.text(), self.le_kpp.text(), self.le_ogrn.text(), self.le_rs.text(), self.le_bank.text(), self.le_ks.text(), self.le_bik.text(), self.le_fio.text(), self.le_phone.text(), self.le_mail.text(), self.le_note.toPlainText(), no_nds, self.le_full_name.text()) new_id = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(new_id)): QMessageBox.critical(self, "Ошибка sql добавление клиента", new_id.msg, QMessageBox.Ok) return False for row in range(self.tw_adres.rowCount()): item = self.tw_adres.item(row, 0) if item.data(-2) is not None: if item.data(-2) == "new": query = "INSERT INTO clients_actual_address (Client_Id, Name, Adres, KPP) VALUES (%s, %s, %s, %s)" paremetrs = (new_id, self.tw_adres.item(row, 0).text(), self.tw_adres.item(row, 1).text(), self.tw_adres.item(row, 2).text()) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql добавления адреса", info_sql.msg, QMessageBox.Ok) return False else: query = """UPDATE clients SET Name = %s, Legal_Address = %s, Actual_Address = %s, INN = %s, KPP = %s, OGRN = %s, Account = %s, Bank = %s, corres_Account = %s, BIK = %s, Contact_Person = %s, Phone = %s, Mail = %s, Note = %s, No_Nds = %s, Full_Name = %s WHERE Id = %s""" paremetrs = (self.le_name.text(), self.le_legal_address.text(), self.le_actual_address.text(), self.le_inn.text(), self.le_kpp.text(), self.le_ogrn.text(), self.le_rs.text(), self.le_bank.text(), self.le_ks.text(), self.le_bik.text(), self.le_fio.text(), self.le_phone.text(), self.le_mail.text(), self.le_note.toPlainText(), no_nds, self.le_full_name.text(), self.select_id) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql изменение клиента", info_sql.msg, QMessageBox.Ok) return False for row in range(self.tw_adres.rowCount()): item = self.tw_adres.item(row, 0) if item.data(-2) is not None: if item.data(-2) == "new": query = "INSERT INTO clients_actual_address (Client_Id, Name, Adres, KPP) VALUES (%s, %s, %s, %s)" paremetrs = (self.select_id, self.tw_adres.item(row, 0).text(), self.tw_adres.item(row, 1).text(), self.tw_adres.item(row, 2).text()) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql добавления адреса", info_sql.msg, QMessageBox.Ok) return False elif item.data(-2) == "update": query = "UPDATE clients_actual_address SET Name = %s, Adres = %s, KPP = %s WHERE Id = %s" paremetrs = (self.tw_adres.item(row, 0).text(), self.tw_adres.item(row, 1).text(), self.tw_adres.item(row, 2).text(), item.data(-1)) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql изменение адреса", info_sql.msg, QMessageBox.Ok) return False for del_id in self.delete_adress: query = 'DELETE FROM clients_actual_address WHERE Id = %s' info_sql = my_sql.sql_change(query, (del_id, )) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql удаление адреса", info_sql.msg, QMessageBox.Ok) return False for row in range(self.tw_vendor_number.rowCount()): item = self.tw_vendor_number.item(row, 0) if item.data(-2) is not None: if item.data(-2) == "new": query = "INSERT INTO clients_vendor_number (Client_Id, Number, Contract, Data_From) VALUES (%s, %s, %s, %s)" data = datetime.strptime(self.tw_vendor_number.item(row, 2).text(), "%d.%m.%Y") paremetrs = (self.select_id, self.tw_vendor_number.item(row, 0).text(), self.tw_vendor_number.item(row, 1).text(), data) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql добавления номера", info_sql.msg, QMessageBox.Ok) return False elif item.data(-2) == "update": query = "UPDATE clients_vendor_number SET Number = %s, Contract = %s, Data_From = %s WHERE Id = %s" data = datetime.strptime(self.tw_vendor_number.item(row, 2).text(), "%d.%m.%Y") paremetrs = (self.tw_vendor_number.item(row, 0).text(), self.tw_vendor_number.item(row, 1).text(), data, item.data(-1)) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql изменение номера", info_sql.msg, QMessageBox.Ok) return False for del_id in self.delete_numbers: query = 'DELETE FROM clients_vendor_number WHERE Id = %s' info_sql = my_sql.sql_change(query, (del_id, )) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql удаление номера", info_sql.msg, QMessageBox.Ok) return False self.m.sql_set_list() self.close() self.destroy()
def acc(self): if self.cb_nds.isChecked(): no_nds = 1 else: no_nds = 0 if self.select_id == "new": query = """INSERT INTO clients (Name, Legal_Address, Actual_Address, INN, KPP, OGRN, Account, Bank, corres_Account, BIK, Contact_Person, Phone, Mail, Note, No_Nds, Full_Name) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""" paremetrs = (self.le_name.text(), self.le_legal_address.text(), self.le_actual_address.text(), self.le_inn.text(), self.le_kpp.text(), self.le_ogrn.text(), self.le_rs.text(), self.le_bank.text(), self.le_ks.text(), self.le_bik.text(), self.le_fio.text(), self.le_phone.text(), self.le_mail.text(), self.le_note.toPlainText(), no_nds, self.le_full_name.text()) new_id = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(new_id)): QMessageBox.critical(self, "Ошибка sql добавление клиента", new_id.msg, QMessageBox.Ok) return False for row in range(self.tw_adres.rowCount()): item = self.tw_adres.item(row, 0) if item.data(-2) is not None: if item.data(-2) == "new": query = "INSERT INTO clients_actual_address (Client_Id, Name, Adres, KPP) VALUES (%s, %s, %s, %s)" paremetrs = (new_id, self.tw_adres.item(row, 0).text(), self.tw_adres.item(row, 1).text(), self.tw_adres.item(row, 2).text()) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical( self, "Ошибка sql добавления адреса", info_sql.msg, QMessageBox.Ok) return False else: query = """UPDATE clients SET Name = %s, Legal_Address = %s, Actual_Address = %s, INN = %s, KPP = %s, OGRN = %s, Account = %s, Bank = %s, corres_Account = %s, BIK = %s, Contact_Person = %s, Phone = %s, Mail = %s, Note = %s, No_Nds = %s, Full_Name = %s WHERE Id = %s""" paremetrs = (self.le_name.text(), self.le_legal_address.text(), self.le_actual_address.text(), self.le_inn.text(), self.le_kpp.text(), self.le_ogrn.text(), self.le_rs.text(), self.le_bank.text(), self.le_ks.text(), self.le_bik.text(), self.le_fio.text(), self.le_phone.text(), self.le_mail.text(), self.le_note.toPlainText(), no_nds, self.le_full_name.text(), self.select_id) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql изменение клиента", info_sql.msg, QMessageBox.Ok) return False for row in range(self.tw_adres.rowCount()): item = self.tw_adres.item(row, 0) if item.data(-2) is not None: if item.data(-2) == "new": query = "INSERT INTO clients_actual_address (Client_Id, Name, Adres, KPP) VALUES (%s, %s, %s, %s)" paremetrs = (self.select_id, self.tw_adres.item(row, 0).text(), self.tw_adres.item(row, 1).text(), self.tw_adres.item(row, 2).text()) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical( self, "Ошибка sql добавления адреса", info_sql.msg, QMessageBox.Ok) return False elif item.data(-2) == "update": query = "UPDATE clients_actual_address SET Name = %s, Adres = %s, KPP = %s WHERE Id = %s" paremetrs = (self.tw_adres.item(row, 0).text(), self.tw_adres.item(row, 1).text(), self.tw_adres.item(row, 2).text(), item.data(-1)) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical( self, "Ошибка sql изменение адреса", info_sql.msg, QMessageBox.Ok) return False for del_id in self.delete_adress: query = 'DELETE FROM clients_actual_address WHERE Id = %s' info_sql = my_sql.sql_change(query, (del_id, )) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql удаление адреса", info_sql.msg, QMessageBox.Ok) return False for row in range(self.tw_vendor_number.rowCount()): item = self.tw_vendor_number.item(row, 0) if item.data(-2) is not None: if item.data(-2) == "new": query = "INSERT INTO clients_vendor_number (Client_Id, Number, Contract, Data_From) VALUES (%s, %s, %s, %s)" data = datetime.strptime( self.tw_vendor_number.item(row, 2).text(), "%d.%m.%Y") paremetrs = (self.select_id, self.tw_vendor_number.item(row, 0).text(), self.tw_vendor_number.item(row, 1).text(), data) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical( self, "Ошибка sql добавления номера", info_sql.msg, QMessageBox.Ok) return False elif item.data(-2) == "update": query = "UPDATE clients_vendor_number SET Number = %s, Contract = %s, Data_From = %s WHERE Id = %s" data = datetime.strptime( self.tw_vendor_number.item(row, 2).text(), "%d.%m.%Y") paremetrs = (self.tw_vendor_number.item(row, 0).text(), self.tw_vendor_number.item(row, 1).text(), data, item.data(-1)) info_sql = my_sql.sql_change(query, paremetrs) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical( self, "Ошибка sql изменение номера", info_sql.msg, QMessageBox.Ok) return False for del_id in self.delete_numbers: query = 'DELETE FROM clients_vendor_number WHERE Id = %s' info_sql = my_sql.sql_change(query, (del_id, )) if "mysql.connector.errors" in str(type(info_sql)): QMessageBox.critical(self, "Ошибка sql удаление номера", info_sql.msg, QMessageBox.Ok) return False self.m.sql_set_list() self.close() self.destroy()
def ui_acc(self): if self.change: if not self.id: query = """INSERT INTO beika (Material_Id, Accessories_Id, Date, Value, Finished, Worker_Id) VALUES (%s, %s, %s, %s, %s, %s)""" sql_value = (self.le_material.whatsThis(), self.le_accessories_name.whatsThis(), self.de_date.date().toString(Qt.ISODate), self.le_value.text(), 0, self.le_worker.whatsThis()) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при добавлении нарезки бейки", sql_info.msg, QMessageBox.Ok) return False self.id = sql_info else: query = """UPDATE beika SET Material_Id = %s, Accessories_Id = %s, Date = %s, Value = %s, Worker_Id = %s WHERE Id = %s""" sql_value = (self.le_material.whatsThis(), self.le_accessories_name.whatsThis(), self.de_date.date().toString(Qt.ISODate), self.le_value.text(), self.le_worker.whatsThis(), self.id) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при изменении нарезки бейки", sql_info.msg, QMessageBox.Ok) return False if self.id and self.sql_finish != self.cb_ok.isChecked(): if not self.sql_finish and self.cb_ok.isChecked(): # Нарезку подтвердили # Проверим остаток склада query = """SELECT SUM(material_balance.BalanceWeight) FROM material_balance LEFT JOIN material_supplyposition ON material_balance.Material_SupplyPositionId = material_supplyposition.Id WHERE material_supplyposition.Material_NameId = %s""" sql_info = my_sql.sql_select(query, (self.le_material.whatsThis(), )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при получении остатка склада", sql_info.msg, QMessageBox.Ok) return False if sql_info[0][0] is None or Decimal(self.le_value.text()) > sql_info[0][0]: QMessageBox.critical(self, "Ошибка", "Не хватает ткани на складе для нарезки", QMessageBox.Ok) return False sql_connect_transaction = my_sql.sql_start_transaction() material_id = int(self.le_material.whatsThis()) change_value = Decimal(self.le_value.text()) price_list = [] while change_value > 0: # получим первый остаток на складе # Проверяем первое кол-во на складе query = """SELECT material_balance.Id, material_balance.BalanceWeight, MIN(material_supply.Data), material_supplyposition.Price FROM material_balance LEFT JOIN material_supplyposition ON material_balance.Material_SupplyPositionId = material_supplyposition.Id LEFT JOIN material_supply ON material_supplyposition.Material_SupplyId = material_supply.Id WHERE material_supplyposition.Material_NameId = %s AND material_balance.BalanceWeight > 0""" sql_balance_material = my_sql.sql_select_transaction(sql_connect_transaction, query, (material_id, )) if "mysql.connector.errors" in str(type(sql_balance_material)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка сохранения ткани", "Не смог получить остаток ткани на балансе (Это плохо к админу)", QMessageBox.Ok) return False if sql_balance_material[0][1] > change_value: # Если в этом балансе больше чем нам надо take_material_value = change_value change_value = 0 else: # Если в этом балансе меньше чем нам надо take_material_value = sql_balance_material[0][1] change_value -= sql_balance_material[0][1] # Забираем возможное кол-во query = "UPDATE material_balance SET BalanceWeight = BalanceWeight - %s WHERE Id = %s" sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (take_material_value, sql_balance_material[0][0])) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка сохранения ткани", "Не смог забрать ткань с баланса (Это плохо к админу)", QMessageBox.Ok) return False # Делаем запись о заборе ткани с баланса склада query = """INSERT INTO transaction_records_material (Supply_Balance_Id, Balance, Date, Note, Beika_Id, Code) VALUES (%s, %s, SYSDATE(), %s, %s, 140)""" txt_note = "На нарезку бейки №%s" % self.id sql_values = (sql_balance_material[0][0], -take_material_value, txt_note, self.id) sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, sql_values) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка сохранения ткани", "Не смог добавить запись при заборе ткани (Это плохо к админу)", QMessageBox.Ok) return False price_list.append((take_material_value, sql_balance_material[0][3])) # если ткань забрали успешно то начнем забивать приход # Узнаем среднюю цену avg = (p*v) + (p2*v2) + ... / v + v1 ... up = 0 down = 0 for item in price_list: up += item[0] * item[1] down += item[0] avg_price = up / down # Добавим приход фурнитуры query = "INSERT INTO accessories_supply (Accessories_ProviderId, Data, Note) VALUES (%s, %s, %s)" txt_note = "Приход с нарезки бейки №%s" % self.id sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (SUPPLY_PROVIDER_ID, self.de_date.date().toPyDate(), txt_note)) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка сохранения прихода", "Не смог сделать приход фурнитуры", QMessageBox.Ok) return False supply_id = sql_info if not supply_id: my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка сохранения прихода", "Не получил id прихода фурнитуры", QMessageBox.Ok) return False query = "INSERT INTO accessories_supplyposition (Accessories_SupplyId, Accessories_NameId, Value, Price) VALUES (%s, %s, %s, %s)" sql_value = (supply_id, self.le_accessories_name.whatsThis(), down, avg_price) sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка сохранения прихода", "Не смог сделать позицию прихода", QMessageBox.Ok) return False supply_position_id = sql_info if not supply_id: my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка сохранения прихода", "Не получил id позиции прихода фурнитуры", QMessageBox.Ok) return False # Получим ID баланса через ID позиции прихода query = """SELECT accessories_balance.Id FROM accessories_balance LEFT JOIN accessories_supplyposition ON accessories_balance.Accessories_SupplyPositionId = accessories_supplyposition.Id WHERE accessories_supplyposition.Id = %s""" sql_info = my_sql.sql_select_transaction(sql_connect_transaction, query, (supply_position_id, )) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка сохранения прихода", "Не смог получить ID баланса через позицию прихода", QMessageBox.Ok) return False query = """INSERT INTO transaction_records_accessories (Supply_Balance_Id, Balance, Date, Note, Pack_Accessories_Id, Code) VALUES (%s, %s, SYSDATE(), %s, NULL, 240)""" txt_note = "Нарезка бейки №%s" % self.id sql_value = (sql_info[0][0], down, txt_note) sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка сохранения прихода", "Не смог сделать позицию прихода", QMessageBox.Ok) return False query = """UPDATE beika SET Finished = %s, Supply_Id = %s WHERE Id = %s""" sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (1, supply_id, self.id)) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql при изменении строки принятия в нарезке бейки", sql_info.msg, QMessageBox.Ok) return False my_sql.sql_commit_transaction(sql_connect_transaction) elif self.sql_finish and not self.cb_ok.isChecked(): # Нарезку отменили # Проверим не трогался ли ее баланс query = """SELECT beika.Value, accessories_supplyposition.Value, accessories_balance.BalanceValue FROM beika LEFT JOIN accessories_supply ON beika.Supply_Id = accessories_supply.Id LEFT JOIN accessories_supplyposition ON accessories_supply.Id = accessories_supplyposition.Accessories_SupplyId LEFT JOIN accessories_balance ON accessories_supplyposition.Id = accessories_balance.Accessories_SupplyPositionId WHERE beika.Id = %s""" sql_info = my_sql.sql_select(query, (self.id,)) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql при получении баланса это нарезки", sql_info.msg, QMessageBox.Ok) return False if sql_info[0][0] == sql_info[0][1] == sql_info[0][2]: pass else: QMessageBox.critical(self, "Ошибка", "Не равны балансы, скорее всего бейка в работе", QMessageBox.Ok) return False # Получим Id Supply + Id Supply_position + Balance_Id query = """SELECT accessories_supply.Id, accessories_supplyposition.Id, accessories_balance.Id FROM beika LEFT JOIN accessories_supply ON beika.Supply_Id = accessories_supply.Id LEFT JOIN accessories_supplyposition ON accessories_supply.Id = accessories_supplyposition.Accessories_SupplyId LEFT JOIN accessories_balance ON accessories_supplyposition.Id = accessories_balance.Accessories_SupplyPositionId WHERE beika.Id = %s""" sql_info_id = my_sql.sql_select(query, (self.id,)) if "mysql.connector.errors" in str(type(sql_info_id)): QMessageBox.critical(self, "Ошибка sql при получении ID баланса", sql_info_id.msg, QMessageBox.Ok) return False sql_connect_transaction = my_sql.sql_start_transaction() # Удалим все упоминания о этой нарезке бейки! query = """DELETE FROM transaction_records_accessories WHERE Supply_Balance_Id = %s""" sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (sql_info_id[0][2],)) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql при Удалении записей баланмса фурнитуры", sql_info.msg, QMessageBox.Ok) return False query = """DELETE FROM accessories_balance WHERE Id = %s""" sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (sql_info_id[0][2],)) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql при Удалении баланса фурнитуры", sql_info.msg, QMessageBox.Ok) return False query = """DELETE FROM accessories_supplyposition WHERE Id = %s""" sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (sql_info_id[0][1],)) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql при Удалении позиции прихода фурнитуры", sql_info.msg, QMessageBox.Ok) return False query = """DELETE FROM accessories_supply WHERE Id = %s""" sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (sql_info_id[0][0],)) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql при Удалении прихода фурнитуры", sql_info.msg, QMessageBox.Ok) return False # Вернем ткань # Берем сумму списаний сгрупированную по id баланса query = """SELECT SUM(transaction_records_material.Balance), transaction_records_material.Supply_Balance_Id, material_supplyposition.Material_NameId FROM transaction_records_material LEFT JOIN material_balance ON transaction_records_material.Supply_Balance_Id = material_balance.Id LEFT JOIN material_supplyposition ON material_balance.Material_SupplyPositionId = material_supplyposition.Id WHERE transaction_records_material.Beika_Id = %s GROUP BY transaction_records_material.Supply_Balance_Id""" sql_info = my_sql.sql_select_transaction(sql_connect_transaction, query, (self.id,)) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql Не смог получить сумму списаний сгрупированную по id баланса при удалении", sql_info.msg, QMessageBox.Ok) return False if sql_info[0][0] is not None: transaction_list = sql_info else: my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Нету суммы списаний сгрупированной по id баланса при удалении", sql_info.msg, QMessageBox.Ok) return False # Начинаем перебор списка списаний return_material = 0 for transaction_id_all in transaction_list: if transaction_id_all[0] != 0: # возвращаем фурнитуру на баланс склада query = "UPDATE material_balance SET BalanceWeight = BalanceWeight + %s WHERE Id = %s" sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (-transaction_id_all[0], transaction_id_all[1])) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql Не смог вернуть ткань на баланс склада при удалении", sql_info.msg, QMessageBox.Ok) return False # Делаем запись о возырате ткани на баланс склада query = """INSERT INTO transaction_records_material (Supply_Balance_Id, Balance, Date, Note, Beika_Id, Code) VALUES (%s, %s, SYSDATE(), %s, %s, 141)""" txt_note = "Отмена нарезки бейки №%s" % self.id sql_values = (transaction_id_all[1], -transaction_id_all[0], txt_note, self.id) sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, sql_values) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql Не смог добавить запись при возврате ткани удаление", sql_info.msg, QMessageBox.Ok) return False return_material += -transaction_id_all[0] if fabs(return_material - Decimal(self.le_value.text())) > Decimal(str(0.0005)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql Возвратная ткань не равна сумме кроя", sql_info.msg, QMessageBox.Ok) return False query = """UPDATE beika SET Finished = %s, Supply_Id = %s WHERE Id = %s""" sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (0, None, self.id)) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql при изменении строки принятия при отмене нарезки", sql_info.msg, QMessageBox.Ok) return False my_sql.sql_commit_transaction(sql_connect_transaction) self.main.ui_update() self.close() self.destroy()
def ui_acc(self): if self.id is None: if self.menu_text == "Доплата": query = """INSERT INTO pay_worker (Worker_Id, Worker_Id_Insert, Reason_Id, Balance, Date_In_Pay, Date_Input, Note, Pay, Date_Pay) VALUES (%s, %s, %s, %s, %s, NOW(), %s, %s, %s)""" sql_value = (self.le_work_plus.whatsThis(), User().id(), self.le_reason_plus.whatsThis(), self.le_value_plus.text().replace(",", "."), self.de_plus_date.date().toString(Qt.ISODate), self.le_note_plus.text(), 0, None) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. доплаты", sql_info.msg, QMessageBox.Ok) return False elif self.menu_text == "Вычет": query = """INSERT INTO pay_worker (Worker_Id, Worker_Id_Insert, Reason_Id, Balance, Date_In_Pay, Date_Input, Note, Pay, Date_Pay) VALUES (%s, %s, %s, -%s, %s, NOW(), %s, %s, %s)""" sql_value = (self.le_work_minus.whatsThis(), User().id(), self.le_reason_minus.whatsThis(), self.le_value_minus.text().replace(",", "."), self.de_minus_date.date().toString(Qt.ISODate), self.le_note_minus.text(), 0, None) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. вычета", sql_info.msg, QMessageBox.Ok) return False elif self.menu_text == "Доплата за проезд": sql_values = [] for row in range(self.tw_road.rowCount()): work_id = self.tw_road.item(row, 0).data(-2) balance = self.tw_road.item(row, 3).text().replace(',', ".") if float(balance) > 0: sql_values.append((work_id, User().id(), self.le_road_reason.whatsThis(), balance.replace(",", "."), self.de_road_date.date().toString(Qt.ISODate), self.le_note_road.text(), 0, None)) if not sql_values: return False query = """INSERT INTO pay_worker (Worker_Id, Worker_Id_Insert, Reason_Id, Balance, Date_In_Pay, Date_Input, Note, Pay, Date_Pay) VALUES (%s, %s, %s, %s, %s, NOW(), %s, %s, %s)""" sql_info = my_sql.sql_many(query, sql_values) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. дороги", sql_info.msg, QMessageBox.Ok) return False self.close() self.destroy() elif self.menu_text == "Обмен": try: float(self.le_p_m_balance.text().replace(",", ".")) except: QMessageBox.information(self, "Ошибка баланса", "Проверьте значения!", QMessageBox.Ok) return False sql_values = [] sql_values.append((self.le_p_m_worker_minus.whatsThis(), User().id(), self.le_p_m_reason_minus.whatsThis(), -float(self.le_p_m_balance.text().replace(",", ".")), self.de_p_m_date.date().toString(Qt.ISODate), self.le_p_m_note_minus.text(), 0, None)) sql_values.append((self.le_p_m_worker_plus.whatsThis(), User().id(), self.le_p_m_reason_plus.whatsThis(), self.le_p_m_balance.text().replace(",", "."), self.de_p_m_date.date().toString(Qt.ISODate), self.le_p_m_note_plus.text(), 0, None)) query = """INSERT INTO pay_worker (Worker_Id, Worker_Id_Insert, Reason_Id, Balance, Date_In_Pay, Date_Input, Note, Pay, Date_Pay) VALUES (%s, %s, %s, %s, %s, NOW(), %s, %s, %s)""" sql_info = my_sql.sql_many(query, sql_values) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. обмен", sql_info.msg, QMessageBox.Ok) return False self.close() self.destroy() elif self.menu_text == "Продажа материала": if self.need_weight: sql_connect_transaction = my_sql.sql_start_transaction() query = """INSERT INTO pay_worker (Worker_Id, Worker_Id_Insert, Reason_Id, Balance, Date_In_Pay, Date_Input, Note, Pay, Date_Pay) VALUES (%s, %s, %s, -%s, %s, NOW(), %s, %s, %s)""" sql_value = (self.le_work_bye.whatsThis(), User().id(), self.le_reason_bye.whatsThis(), self.le_sum.text().replace(",", "."), self.de_bye_date.date().toString(Qt.ISODate), self.le_note_bye.text(), 0, None) id_pay = my_sql.sql_change_transaction(sql_connect_transaction, query, sql_value) if "mysql.connector.errors" in str(type(id_pay)): QMessageBox.critical(self, "Ошибка sql сохр. вычета продажи ткани", id_pay.msg, QMessageBox.Ok) return False change_value = float(self.le_weight.text().replace(",", ".")) material_id = self.le_material_name.whatsThis() while change_value > 0: # получим первый остаток на складе # Проверяем первое кол-во на складе query = """SELECT material_balance.Id, material_balance.BalanceWeight, MIN(material_supply.Data) FROM material_balance LEFT JOIN material_supplyposition ON material_balance.Material_SupplyPositionId = material_supplyposition.Id LEFT JOIN material_supply ON material_supplyposition.Material_SupplyId = material_supply.Id WHERE material_supplyposition.Material_NameId = %s AND material_balance.BalanceWeight > 0""" sql_balance_material = my_sql.sql_select_transaction(sql_connect_transaction, query, (material_id, )) if "mysql.connector.errors" in str(type(sql_balance_material)): QMessageBox.critical(self, "Ошибка sql Не смог получить остаток ткани на балансе", sql_balance_material.msg, QMessageBox.Ok) if sql_balance_material[0][1] > change_value: # Если в этом балансе больше чем нам надо take_material_value = change_value change_value = 0 else: # Если в этом балансе меньше чем нам надо take_material_value = sql_balance_material[0][1] change_value -= float(sql_balance_material[0][1]) # Забираем возможное кол-во query = "UPDATE material_balance SET BalanceWeight = BalanceWeight - %s WHERE Id = %s" sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, (take_material_value, sql_balance_material[0][0])) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql Не смог забрать ткань с баланса", sql_info.msg, QMessageBox.Ok) # Делаем запись о заборе ткани с баланса склада query = """INSERT INTO transaction_records_material (Supply_Balance_Id, Balance, Date, Note, Cut_Material_Id, Code) VALUES (%s, %s, SYSDATE(), %s, NULL, 150)""" txt_note = "Продажа ткани работнику № %s, ID вычета %s" % (self.le_work_bye.whatsThis(), id_pay) sql_values = (sql_balance_material[0][0], -take_material_value, txt_note) sql_info = my_sql.sql_change_transaction(sql_connect_transaction, query, sql_values) if "mysql.connector.errors" in str(type(sql_info)): my_sql.sql_rollback_transaction(sql_connect_transaction) QMessageBox.critical(self, "Ошибка sql Не смог добавить запись", sql_info.msg, QMessageBox.Ok) my_sql.sql_commit_transaction(sql_connect_transaction) else: QMessageBox.information(self, "Ошибка веса", "У вас что то не так с весом!", QMessageBox.Ok) else: QMessageBox.critical(self, "Ошибка", "Непонятный элемент меню", QMessageBox.Ok) return False else: if self.menu_text == "Доплата": query = """UPDATE pay_worker SET Worker_Id = %s, Reason_Id = %s, Balance = %s, Date_In_Pay = %s, Note = %s WHERE Id = %s""" sql_value = (self.le_work_plus.whatsThis(), self.le_reason_plus.whatsThis(), self.le_value_plus.text().replace(",", "."), self.de_plus_date.date().toString(Qt.ISODate), self.le_note_plus.text(), self.id) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. доплаты", sql_info.msg, QMessageBox.Ok) return False elif self.menu_text == "Вычет": query = """UPDATE pay_worker SET Worker_Id = %s, Reason_Id = %s, Balance = -%s, Date_In_Pay = %s, Note = %s WHERE Id = %s""" sql_value = (self.le_work_minus.whatsThis(), self.le_reason_minus.whatsThis(), self.le_value_minus.text().replace(",", "."), self.de_minus_date.date().toString(Qt.ISODate), self.le_note_minus.text(), self.id) sql_info = my_sql.sql_change(query, sql_value) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql сохр. вычета", sql_info.msg, QMessageBox.Ok) return False else: QMessageBox.critical(self, "Ошибка", "Непонятный элемент меню", QMessageBox.Ok) return False self.main.ui_update() self.close() self.destroy()