123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import datetime
- import os
- from PyQt6 import QtCore, QtWidgets
- from interfaces.clientui import Ui_MainWindow
- from interfaces.drctryChoice import Ui_drctryChoice
- from interfaces.takeFiles import Ui_takeFiles
- from make_report_prisma import make_report_prisma, preparing_data
- from exceptions import DateError
- from file_reader.db_file_reader import DbFileReader
- class UIReportPrisma32(QtWidgets.QMainWindow, Ui_MainWindow):
- def __init__(self):
- super().__init__()
- self.widget = QtWidgets.QWidget()
- """Описание работы UI приложения, связь кнопок с методами, выставление даты."""
- self.setupUi(self)
- self.runPassport.pressed.connect(self.report_on_click)
- self.openDirectory.pressed.connect(self.open_report_directory)
- self.openFileDirectory.pressed.connect(self.open_file_directory)
- self.dateEdit_2.setDate(QtCore.QDate(int(str(datetime.datetime.today()).split(' ')[0].split('-')[0]),
- int(str(datetime.datetime.today()).split(' ')[0].split('-')[1]),
- int(str(datetime.datetime.today()).split(' ')[0].split('-')[2])))
- self.dateEdit_2.setDisplayFormat("dd.MM.yyyy")
- self.dateEdit.setDate(QtCore.QDate(int(str(datetime.datetime.today()).split(' ')[0].split('-')[0]), 1, 1))
- self.dateEdit.setDisplayFormat("dd.MM.yyyy")
- def open_file_directory(self):
- """Описание работы всплывающей формы проводника с выбором папки с файлами ПРИЗМА.
- Производится запись в 2 файла -> 2 кластера, чтобы данные о папке сохранялись в отрыве от работы программы"""
- ui_file_drctry = Ui_takeFiles()
- ui_file_drctry.setupUi(self.widget)
- """Чтение пути папки с файлами ПРИЗМА"""
- try:
- with open('path_prisma_1cl_files.txt', 'r') as f:
- ui_file_drctry.lineEdit.setText(f.read())
- except FileNotFoundError:
- ui_file_drctry.lineEdit.setText("")
- try:
- with open('path_prisma_2cl_files.txt', 'r') as f2:
- ui_file_drctry.lineEdit_2.setText(f2.read())
- except FileNotFoundError:
- ui_file_drctry.lineEdit_2.setText("")
- """Запись в файл пути папки с файлами ПРИЗМА"""
- ui_file_drctry.pushButton.clicked.connect(
- lambda: Ui_takeFiles.get_file_directory(ui_file_drctry, 'path_prisma_1cl_files'))
- ui_file_drctry.pushButton_2.clicked.connect(
- lambda: Ui_takeFiles.get_file_directory(ui_file_drctry, 'path_prisma_2cl_files'))
- self.widget.show()
- def open_report_directory(self):
- """Описание работы всплывающей формы проводника с выбором папки сохранения справки о работе установки,
- картинок, файлов и т.д."""
- ui_report_drctry = Ui_drctryChoice()
- ui_report_drctry.setupUi(self.widget)
- ui_report_drctry.pushButton.clicked.connect(lambda: Ui_drctryChoice.get_report_directory(ui_report_drctry))
- try:
- with open('path_prisma_report.txt', 'r') as f:
- ui_report_drctry.lineEdit.setText(f.read())
- except FileNotFoundError:
- ui_report_drctry.lineEdit.setText("")
- self.widget.show()
- def report_on_click(self):
- """Метод, описывающий получение паспорта с помощью данных UI"""
- start_date = self.dateEdit.date().toPyDate()
- end_date = self.dateEdit_2.date().toPyDate()
- try:
- if start_date > end_date:
- raise DateError(start_date, end_date)
- with open('path_prisma_report.txt', 'r') as f:
- report_path = f.read()
- picture_path = report_path + '/Pics' + f'/{start_date.year}'
- with open('path_prisma_1cl_files.txt', 'r') as f:
- path_to_files_1 = f.read()
- with open('path_prisma_2cl_files.txt', 'r') as f:
- path_to_files_2 = f.read()
- if ~os.path.exists(picture_path):
- try:
- os.mkdir(picture_path)
- except OSError:
- print(f"Создать директорию {picture_path} не удалось")
- else:
- print(f"Успешно создана директория {picture_path}")
- # concat_n_df_1, concat_n_df_2 = DbFileReader.db_preparing_data(start_date=start_date,
- # end_date=end_date,
- # path_to_db="mongodb://localhost:27017/")
- concat_n_df_1, concat_n_df_2 = preparing_data(start_date=start_date,
- end_date=end_date,
- path_to_files_1=path_to_files_1,
- path_to_files_2=path_to_files_2)
- make_report_prisma(start_date=start_date, end_date=end_date, report_path=report_path,
- picture_path=picture_path, concat_n_df_1=concat_n_df_1, concat_n_df_2=concat_n_df_2)
- except PermissionError:
- print("Закройте предыдущую версию файла!")
- except DateError:
- DateError(start_date, end_date).ui_output_error()
- # запуск основного окна
- app = QtWidgets.QApplication([])
- window = UIReportPrisma32()
- window.show()
- app.exec()
|