def to_csv(self): data = [] lod = LodgerModel(db.get_connection()) for i in self.choose: data.append(lod.get(self.lodgers[i][0])) print(data) with open("lodgers.csv", "w", newline='') as csv_file: writer = csv.writer(csv_file, delimiter=',') for line in data: writer.writerow(line)
class AdminM(QWidget, Ui_Qadmin): def __init__(self, obj): super(AdminM, self).__init__() self.setupUi(self) self.o = obj self.choose_lodger = -1 self.choose_room = -1 self.initUI() def initUI(self): self.btnin_lodger.clicked.connect(self.in_lodger) self.btnout_lodger.clicked.connect(self.out_lodger) self.btnadd_lodger.clicked.connect(self.add_lodger) self.btnadd_room.clicked.connect(self.add_room) self.btnto_csv.clicked.connect(self.to_csv) self.change() def mousePressEvent(self, event): if event.button() == Qt.LeftButton: x, y = event.x(), event.y() x -= 10 y -= 60 y //= 18 self.lodgers = LodgerModel(db.get_connection()).get_all(self.o[7]) if x <= 20: lod = LodgerModel(db.get_connection()).get(self.lodgers[y][0]) if lod[9] == None or lod[9] == 0: self.delete_lodger(self.lodgers[y][0]) else: self.change_status( "Нельзя удалить постояльца, который проживает в номере." ) else: self.choose_lodger = self.lodgers[y][0] if x >= 290: x -= 290 self.rooms = RoomModel(db.get_connection()).get_all(self.o[7]) if x <= 20: lod = RoomModel(db.get_connection()).get(self.rooms[y][0]) if lod[4] == 0: self.delete_room(self.rooms[y][0]) else: self.change_status( "Нельзя удалить комнату, в которой проживает постоялец" ) else: self.choose_room = self.rooms[y][0] def mouseDoubleClickEvent(self, event): x, y = event.x(), event.y() try: if 10 <= x <= 201 and 60 <= y <= 191: x -= 10 y -= 60 x //= 6 y //= 18 self.lodgers = LodgerModel(db.get_connection()).get_all( self.o[7]) self.edit_lodger(self.lodgers[y][0]) if 300 <= x <= 491 and 60 <= y <= 191: x -= 300 y -= 60 x //= 6 y //= 18 self.rooms = RoomModel(db.get_connection()).get_all(self.o[7]) self.edit_room(self.rooms[y][0]) except Exception as e: print(e) def add_lodger(self): self.w1 = AddLodgerM(self.o, -1) self.w1.show() self.change() def delete_lodger(self, id): self.lodgers = LodgerModel(db.get_connection()) lod = self.lodgers.get(id) if lod[9] != None: self.change_status("Этот постоялец заселен. Его нельзя удалить.") else: self.lodgers.delete(id) self.change() def in_lodger(self): self.lodger = LodgerModel(db.get_connection()) lod = self.lodger.get(self.choose_lodger) if lod[9] != None and lod[9] != 0: self.change_status( "Этот постоялец заселен. Его нельзя заселить заново.") else: self.room = RoomModel(db.get_connection()) room = self.room.get(self.choose_room) if room[4] != 0: self.change_status("Эта комната занята.") #print(room) else: self.lodger.check_in(self.choose_lodger, self.choose_room, self.o[7]) self.room.check_in(self.choose_lodger, self.choose_room) HotelModel(db.get_connection()).in_lodger(self.o[7]) self.change() def out_lodger(self): self.lodgers = LodgerModel(db.get_connection()) self.lodgers.check_out(self.choose_lodger) self.room = RoomModel(db.get_connection()) self.room.check_out(self.choose_lodger) HotelModel(db.get_connection()).out_lodger(self.o[7]) self.change() def add_room(self): self.w1 = Add_roomM(self.o, -1) self.w1.show() self.change() def delete_room(self, id): self.rooms = RoomModel(db.get_connection()) room = self.rooms.get(id) if room[4] != 0: self.change_status( "Эта камната заселена. Вы не можете её удалить.") else: self.rooms.delete(id) self.change() def edit_lodger(self, id): self.w1 = AddLodgerM(self.o, id) self.w1.show() def edit_room(self, id): self.w1 = Add_roomM(self.o, id) self.w1.show() def to_csv(self): self.w1 = ToCSVM(self.o) self.w1.show() def change_status(self, text): self.status.clear() self.status.append(text) def change(self): self.rooms = RoomModel(db.get_connection()).get_all(self.o[7]) self.room_session.setText('\n'.join( ['[x] ' + str(x[3]) for x in self.rooms])) self.lodgers = LodgerModel(db.get_connection()).get_all(self.o[7]) self.lodger_session.setText('\n'.join([ '[x] ' + x[1] + ' ' + str(x[9]) if x[9] else '[x] ' + x[1] for x in self.lodgers ]))