UI_report_prisma.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import datetime
  2. import os
  3. from PyQt6 import QtCore, QtWidgets
  4. from interfaces.clientui import Ui_MainWindow
  5. from interfaces.drctryChoice import Ui_drctryChoice
  6. from interfaces.takeFiles import Ui_takeFiles
  7. from make_report_prisma import make_report_prisma
  8. class UIReportPrisma32(QtWidgets.QMainWindow, Ui_MainWindow):
  9. def __init__(self):
  10. super().__init__()
  11. self.widget = QtWidgets.QWidget()
  12. """Описание работы UI приложения, связь кнопок с методами, выставление даты."""
  13. self.setupUi(self)
  14. self.runPassport.pressed.connect(self.report_on_click)
  15. self.openDirectory.pressed.connect(self.open_report_directory)
  16. self.openFileDirectory.pressed.connect(self.open_file_directory)
  17. self.dateEdit_2.setDate(QtCore.QDate(int(str(datetime.datetime.today()).split(' ')[0].split('-')[0]),
  18. int(str(datetime.datetime.today()).split(' ')[0].split('-')[1]),
  19. int(str(datetime.datetime.today()).split(' ')[0].split('-')[2])))
  20. self.dateEdit_2.setDisplayFormat("dd.MM.yyyy")
  21. self.dateEdit.setDate(QtCore.QDate(int(str(datetime.datetime.today()).split(' ')[0].split('-')[0]), 1, 1))
  22. self.dateEdit.setDisplayFormat("dd.MM.yyyy")
  23. def open_file_directory(self):
  24. """Описание работы всплывающей формы проводника с выбором папки с файлами ПРИЗМА.
  25. Производится запись в 2 файла -> 2 кластера, чтобы данные о папке сохранялись в отрыве от работы программы"""
  26. ui_file_drctry = Ui_takeFiles()
  27. ui_file_drctry.setupUi(self.widget)
  28. """Чтение пути папки с файлами ПРИЗМА"""
  29. try:
  30. with open('path_prisma_1cl_files.txt', 'r') as f:
  31. ui_file_drctry.lineEdit.setText(f.read())
  32. except FileNotFoundError:
  33. ui_file_drctry.lineEdit.setText("")
  34. try:
  35. with open('path_prisma_2cl_files.txt', 'r') as f2:
  36. ui_file_drctry.lineEdit_2.setText(f2.read())
  37. except FileNotFoundError:
  38. ui_file_drctry.lineEdit_2.setText("")
  39. """Запись в файл пути папки с файлами ПРИЗМА"""
  40. ui_file_drctry.pushButton.clicked.connect(
  41. lambda: Ui_takeFiles.get_file_directory(ui_file_drctry, 'path_prisma_1cl_files'))
  42. ui_file_drctry.pushButton_2.clicked.connect(
  43. lambda: Ui_takeFiles.get_file_directory(ui_file_drctry, 'path_prisma_2cl_files'))
  44. self.widget.show()
  45. def open_report_directory(self):
  46. """Описание работы всплывающей формы проводника с выбором папки сохранения справки о работе установки,
  47. картинок, файлов и т.д."""
  48. ui_report_drctry = Ui_drctryChoice()
  49. ui_report_drctry.setupUi(self.widget)
  50. ui_report_drctry.pushButton.clicked.connect(lambda: Ui_drctryChoice.get_report_directory(ui_report_drctry))
  51. try:
  52. with open('path_prisma_report.txt', 'r') as f:
  53. ui_report_drctry.lineEdit.setText(f.read())
  54. except FileNotFoundError:
  55. ui_report_drctry.lineEdit.setText("")
  56. self.widget.show()
  57. def report_on_click(self):
  58. """Метод, описывающий получение паспорта с помощью данных UI"""
  59. start_date = self.dateEdit.date().toPyDate()
  60. end_date = self.dateEdit_2.date().toPyDate()
  61. print(f'start_date - {start_date}, \n end_date - {end_date}')
  62. with open('path_prisma_report.txt', 'r') as f:
  63. report_path = f.read()
  64. picture_path = report_path + '/Pics' + f'/{start_date.year}'
  65. with open('path_prisma_1cl_files.txt', 'r') as f:
  66. path_to_files_1 = f.read()
  67. with open('path_prisma_2cl_files.txt', 'r') as f:
  68. path_to_files_2 = f.read()
  69. if ~os.path.exists(picture_path):
  70. try:
  71. os.mkdir(picture_path)
  72. except OSError:
  73. print(f"Создать директорию {picture_path} не удалось")
  74. else:
  75. print(f"Успешно создана директория {picture_path}")
  76. try:
  77. make_report_prisma(start_date=start_date, end_date=end_date, report_path=report_path, picture_path=picture_path,
  78. path_to_files_1=path_to_files_1, path_to_files_2 = path_to_files_2)
  79. except PermissionError:
  80. print("Закройте предыдущую версию файла!")
  81. # проверяем нормальные даты или нет, если да, то графики и word файл строятся
  82. # try:
  83. # pass
  84. # except ZeroDivisionError:
  85. # pass
  86. # запуск основного окна
  87. app = QtWidgets.QApplication([])
  88. window = UIReportPrisma32()
  89. window.show()
  90. app.exec()