Esempio n. 1
0
    def __init__(self, parent=None):
        super(KommunalPlateg, self).__init__(parent)

        self.wa = UiWinAdd()

        self.setupUi_KP(self)

        self.period_kp = Period(self.comboBox_month_KP, self.comboBox_year_KP,
                                self.label_month_year_KP)

        current_month = convert_month(dt_month)  # Текущий месяц ("Январь")
        current_year = dt_year  # Текущий год ("2020")

        self.month_index = month.index(current_month)
        self.month_text = month[self.month_index]
        self.year_index = int(current_year)

        # ВЫБОР ПЕРИОДА
        combo_m = self.comboBox_month_KP
        combo_y = self.comboBox_year_KP
        selected_period(combo_m, combo_y)

        # установка ТЕКУЩЕГО ПЕРИОДА
        self.label_month_year_KP.setText(
            current_month + " " +
            current_year)  # устанавливает заголовок ("Январь 2020")
        self.comboBox_month_KP.setCurrentIndex(month.index(
            current_month))  # устанавливает текущий месяц ("Январь")
        self.comboBox_year_KP.setCurrentText(
            current_year)  # устанавливает текущий год ("2020")

        # ВЫБИРАЕМ период
        self.comboBox_month_KP.activated.connect(self.label_period)
        self.comboBox_year_KP.activated.connect(self.label_period)

        self.btn_Left.clicked.connect(self.btn_period_left)
        self.btn_Right.clicked.connect(self.btn_period_right)

        # режим РЕДАКТИРОВАНИЯ значений
        self.checkBox_Edit_KP.setChecked(False)
        self.checkBox_Edit_KP.stateChanged.connect(self.read_only)

        # ДОБАВЛЕНИЕ ПЛАТЕЖА
        self.pushButton_add_Plateg_KP.clicked.connect(self.btn_add_plateg)

        # КНОПКИ окна ДОБАВЛЕНИЕ ПЛАТЕЖА
        self.wa.btn_OK.clicked.connect(self.btn_ok_wa_name)  # кнопка OK
        self.wa.btn_OK.setAutoDefault(True)  # click on <Enter>
        self.wa.lineEdit.returnPressed.connect(self.wa.btn_OK.click)

        self.wa.btn_Cancel.clicked.connect(self.btn_cancel_wa)  # кнопка CANCEL

        # СОХРАНЯЕМ показания
        self.pushButton_Save_KP.clicked.connect(self.btn_save_kp)

        # ЗАКРЫВАЕТ окно ПЛАТЕЖИ
        self.pushButton_Cancel_KP.clicked.connect(self.btn_cancel_kp)

        # ЧИТАЕТ платежи из базы данных
        self.read_kommunal_plateg()
Esempio n. 2
0
    def sel_deb_kred(self):
        self.radio_plat = UiWinAdd()
        self.radio_plat.radio_btn()

        self.radio_plat.btn_OK.clicked.connect(
            self.win_add_name_ok)  # кнопка OK
        self.radio_plat.btn_OK.setAutoDefault(True)

        self.radio_plat.btn_Cancel.clicked.connect(
            self.radio_plat_cancel)  # кнопка CANCEL
Esempio n. 3
0
    def save_yes_or_not(self):
        self.save_yn = UiWinAdd()
        self.save_yn.name_plateg()
        self.save_yn.setWindowTitle("Сохранение")
        self.save_yn.lineEdit.close()
        self.save_yn.label.setGeometry(QtCore.QRect(10, 0, 270, 70))
        self.save_yn.label.setText("Вы действительно хотите \n презаписать эту запись?")

        self.save_yn.btn_OK.clicked.connect(self.btn_ok_save_yn)
        self.save_yn.btn_OK.setAutoDefault(True)
        self.save_yn.btn_Cancel.clicked.connect(self.btn_cancel_save_yn)
Esempio n. 4
0
    def btn_add_plateg(self):
        self.win_add = UiWinAdd()
        self.win_add.name_plateg()

        if win32api.GetKeyboardLayout() == 67699721:  # 67699721 - английский 00000409
            win32api.LoadKeyboardLayout("00000419", 1)  # 68748313 - русский    00000419

        # КНОПКИ окна ДОБАВЛЕНИЕ ПЛАТЕЖА
        self.win_add.btn_OK.clicked.connect(self.win_add_name_ok)  # кнопка OK окна ИМЯ
        self.win_add.btn_OK.setAutoDefault(True)
        self.win_add.lineEdit.returnPressed.connect(self.win_add.btn_OK.click)

        self.win_add.btn_Cancel.clicked.connect(self.win_add_name_cancel)  # кнопка CANCEL
Esempio n. 5
0
    def win_add_name_ok(self):
        self.name = self.win_add.lineEdit.text()

        self.win_add.lineEdit.clear()
        self.win_add.close()

        self.summ_plat = UiWinAdd()
        self.summ_plat.name_plateg()
        self.summ_plat.label.setText("Сумма платежа")

        if win32api.GetKeyboardLayout() == 68748313:  # 67699721 - английский 00000409
            win32api.LoadKeyboardLayout("00000409", 1)  # 68748313 - русский    00000419

        self.summ_plat.btn_OK.clicked.connect(self.win_add_summ_ok)  # кнопка OK окна СУММА
        self.summ_plat.btn_OK.setAutoDefault(True)
        self.summ_plat.lineEdit.returnPressed.connect(self.summ_plat.btn_OK.click)

        self.summ_plat.btn_Cancel.clicked.connect(self.win_add_summ_cancel)
Esempio n. 6
0
    def win_add_name_ok(self):
        self.radio_plat.close()

        if win32api.GetKeyboardLayout(
        ) == 67699721:  # 67699721 - английский 00000409
            win32api.LoadKeyboardLayout("00000419",
                                        1)  # 68748313 - русский    00000419

        self.win_add = UiWinAdd()
        self.win_add.name_plateg()

        self.name = self.win_add.lineEdit.text()

        self.win_add.btn_OK.clicked.connect(self.win_add_summ_ok)  # кнопка OK
        self.win_add.btn_OK.setAutoDefault(True)
        self.win_add.lineEdit.returnPressed.connect(self.win_add.btn_OK.click)

        self.win_add.btn_Cancel.clicked.connect(
            self.win_add_name_cancel)  # кнопка CANCEL
Esempio n. 7
0
    def btn_ok_wa_name(self, ):
        self.name = self.wa.lineEdit.text()
        self.wa.lineEdit.clear()
        self.wa.close()

        self.sum_pl = UiWinAdd()
        self.sum_pl.label.setText("Сумма платежа")
        self.sum_pl.name_plateg()

        if win32api.GetKeyboardLayout(
        ) == 68748313:  # 67699721 - английский 00000409
            win32api.LoadKeyboardLayout("00000409",
                                        1)  # 68748313 - русский    00000419

        if self.sum_pl.btn_OK.clicked.connect(
                lambda: self.btn_ok_sum_pl(self.win_resize_y, self.position)):
            pass
        self.sum_pl.btn_OK.setAutoDefault(True)
        self.sum_pl.lineEdit.returnPressed.connect(self.sum_pl.btn_OK.click)
        self.sum_pl.btn_Cancel.clicked.connect(self.btn_cancel_sum_pl)
Esempio n. 8
0
class KommunalPlateg(QtWidgets.QWidget, UiWinPlateg):
    def __init__(self, parent=None):
        super(KommunalPlateg, self).__init__(parent)

        self.wa = UiWinAdd()

        self.setupUi_KP(self)

        self.period_kp = Period(self.comboBox_month_KP, self.comboBox_year_KP,
                                self.label_month_year_KP)

        current_month = convert_month(dt_month)  # Текущий месяц ("Январь")
        current_year = dt_year  # Текущий год ("2020")

        self.month_index = month.index(current_month)
        self.month_text = month[self.month_index]
        self.year_index = int(current_year)

        # ВЫБОР ПЕРИОДА
        combo_m = self.comboBox_month_KP
        combo_y = self.comboBox_year_KP
        selected_period(combo_m, combo_y)

        # установка ТЕКУЩЕГО ПЕРИОДА
        self.label_month_year_KP.setText(
            current_month + " " +
            current_year)  # устанавливает заголовок ("Январь 2020")
        self.comboBox_month_KP.setCurrentIndex(month.index(
            current_month))  # устанавливает текущий месяц ("Январь")
        self.comboBox_year_KP.setCurrentText(
            current_year)  # устанавливает текущий год ("2020")

        # ВЫБИРАЕМ период
        self.comboBox_month_KP.activated.connect(self.label_period)
        self.comboBox_year_KP.activated.connect(self.label_period)

        self.btn_Left.clicked.connect(self.btn_period_left)
        self.btn_Right.clicked.connect(self.btn_period_right)

        # режим РЕДАКТИРОВАНИЯ значений
        self.checkBox_Edit_KP.setChecked(False)
        self.checkBox_Edit_KP.stateChanged.connect(self.read_only)

        # ДОБАВЛЕНИЕ ПЛАТЕЖА
        self.pushButton_add_Plateg_KP.clicked.connect(self.btn_add_plateg)

        # КНОПКИ окна ДОБАВЛЕНИЕ ПЛАТЕЖА
        self.wa.btn_OK.clicked.connect(self.btn_ok_wa_name)  # кнопка OK
        self.wa.btn_OK.setAutoDefault(True)  # click on <Enter>
        self.wa.lineEdit.returnPressed.connect(self.wa.btn_OK.click)

        self.wa.btn_Cancel.clicked.connect(self.btn_cancel_wa)  # кнопка CANCEL

        # СОХРАНЯЕМ показания
        self.pushButton_Save_KP.clicked.connect(self.btn_save_kp)

        # ЗАКРЫВАЕТ окно ПЛАТЕЖИ
        self.pushButton_Cancel_KP.clicked.connect(self.btn_cancel_kp)

        # ЧИТАЕТ платежи из базы данных
        self.read_kommunal_plateg()

        # self.show()

    # показывает в заголовке выбранный месяц и год
    def label_period(self):
        self.month_index = self.period_kp.label_sel_period()
        self.read_kommunal_plateg()

    # прокрутка переиода в лево
    def btn_period_left(self):
        self.month_index = self.period_kp.click_btn_left(self.month_index)
        self.read_kommunal_plateg()

    # прокрутка переиода в право
    def btn_period_right(self):
        self.month_index = self.period_kp.click_btn_right(self.month_index)
        self.read_kommunal_plateg()

    # значения по умолчанию
    def default_win(self, y=0):
        self.WinPlateg.resize(800, 400)
        self.WinPlateg.setMinimumSize(QtCore.QSize(800, 365 + y))
        self.frame_plategi_KP.setGeometry(QtCore.QRect(20, 225, 760, 0 + y))

    # открывает окно "добавление нового платежа"
    def btn_add_plateg(self):
        self.wa.name_plateg()
        if win32api.GetKeyboardLayout(
        ) == 67699721:  # 67699721 - английский 00000409
            win32api.LoadKeyboardLayout("00000419",
                                        1)  # 68748313 - русский    00000419

    # кнопка OK окна "имя нового платежа"
    def btn_ok_wa_name(self, ):
        self.name = self.wa.lineEdit.text()
        self.wa.lineEdit.clear()
        self.wa.close()

        self.sum_pl = UiWinAdd()
        self.sum_pl.label.setText("Сумма платежа")
        self.sum_pl.name_plateg()

        if win32api.GetKeyboardLayout(
        ) == 68748313:  # 67699721 - английский 00000409
            win32api.LoadKeyboardLayout("00000409",
                                        1)  # 68748313 - русский    00000419

        if self.sum_pl.btn_OK.clicked.connect(
                lambda: self.btn_ok_sum_pl(self.win_resize_y, self.position)):
            pass
        self.sum_pl.btn_OK.setAutoDefault(True)
        self.sum_pl.lineEdit.returnPressed.connect(self.sum_pl.btn_OK.click)
        self.sum_pl.btn_Cancel.clicked.connect(self.btn_cancel_sum_pl)

    # кнопка OK окна "сумма нового платежа"
    def btn_ok_sum_pl(self, y, position):
        self.sum_pl.lineEdit.close()
        self.sum = self.sum_pl.lineEdit.text()
        self.frame_plateg(self.name, position)
        self.default_win(y)
        dop_pl = text_convert(self.sum)
        self.lineEdit_Pl_sum.setText(dop_pl + " руб")

        self.dop_plategi[self.name] = float(self.sum), 0, 0
        self.dict_pole[self.name] = self.lineEdit_Pl_sum
        self.plategi_sum += float(self.sum)
        self.itog_sum(self.plategi_sum)

        self.win_resize_y += 32
        self.position += 1

        self.sum_pl.lineEdit.clear()
        self.sum_pl.close()

        self.btn_Pl_pdf.clicked.connect(self.btn_del_plateg)

    def btn_del_plateg(self):
        self.widget_Plat.close()
        self.win_resize_y -= 32
        self.position -= 1

    # кнопка CANCEL окна "имя нового платежа"
    def btn_cancel_wa(self):
        self.wa.lineEdit.clear()
        self.wa.close()

    # кнопка CANCEL окна "сумма нового платежа"
    def btn_cancel_sum_pl(self):
        self.sum_pl.lineEdit.clear()
        self.sum_pl.close()

    # читаем сохраненые данные из базы данных
    def read_kommunal_plateg(self):  # читаем данные из базы данных
        self.win_resize_y = 35
        self.position = 1

        self.default_win()
        self.checkBox_Edit_KP.setChecked(False)

        # очищаем поля окна ПЛАТЕЖИ
        self.dict_pole = {
            'Электричество':
            [self.lineEdit_P_sum, self.lineEdit_P_kol, self.lineEdit_P_trf],
            'Вода':
            [self.lineEdit_W_sum, self.lineEdit_W_kol, self.lineEdit_W_trf],
            'Газ':
            [self.lineEdit_G_sum, self.lineEdit_G_kol, self.lineEdit_G_trf]
        }

        self.list_pole = [
            self.lineEdit_P_trf, self.lineEdit_W_trf, self.lineEdit_G_trf,
            self.label_ERROR, self.label_OK_1, self.lineEdit_IS_sum
        ]

        for i in self.dict_pole.values():
            for j in i:
                j.clear()

        for i in self.list_pole:
            i.clear()

        self.checkBox_Edit_KP.show()

        clear_layout(self.gridLayout)  # удаляем все доп. платежи

        file_db = open('../Komunal.db', 'a')
        file_db.close()
        data_base = 'Komunal.db'
        table_pokaz = 'Pokazanya_year_' + str(
            self.comboBox_year_KP.currentText())
        table_plateg = 'Plategi_year_' + str(
            self.comboBox_year_KP.currentText())
        col_name = 'id'
        heading = 'id integer, month_year text, Plateg text, Sum integer, Kol integer, Trf integer'

        sqlite3_create_db(
            data_base, table_plateg,
            heading)  # создаем базу данных в случаи ее отсутствия

        # читаем таблицу ПОКАЗАНИЙ счетчиков из базы данных
        try:
            read_table_PS = sqlite3_read_db(data_base, table_pokaz)
            read_table_PS = read_table_PS[0]

            for i in range(len(read_table_PS)):
                if read_table_PS[i][0] == month.index(
                        self.comboBox_month_KP.currentText()) + 1:
                    pred_pokaz = read_table_PS[i]

                    self.lineEdit_P_kol.setText(str(pred_pokaz[14]))
                    self.lineEdit_W_kol.setText(str(pred_pokaz[17]))
                    self.lineEdit_G_kol.setText(str(pred_pokaz[18]))

        except sqlite3.OperationalError:
            self.checkBox_Edit_KP.show()

        # проверяем существует ли такая запись в таблице ПЛАТЕЖЕЙ, если ДА то помечаем галочкой
        if self.comboBox_month_KP.currentIndex() + 1 in sqlite3_read_db(
                data_base, table_plateg, col_name)[0]:
            self.label_OK_1.setPixmap(
                QtGui.QPixmap("./Resource/img/Galochka.png"))

        self.dop_plategi = {}  # словарь всех ПЛАТЕЖЕЙ
        self.plategi_trf = {}  # словарь только значений тарифов

        year = self.comboBox_year_KP.currentText(
        )  # "ГОД" нужен для функции denominacia

        # читаем таблицу ПЛАТЕЖЕЙ из базы данных (ищим значения тарифов)
        try:
            # если нет записи (только январь)
            if self.comboBox_month_KP.currentIndex() + 1 not in sqlite3_read_db(data_base, table_plateg, "id")[0] and \
                    month[self.comboBox_month_KP.currentIndex()] == "Январь":
                # таблица из предыдущего года
                table_plateg_jan = 'Plategi_year_' + str(
                    int(self.comboBox_year_KP.currentText()) - 1)
                read_table_last = sqlite3_read_db(data_base,
                                                  table_plateg_jan)[0]
                for a in read_table_last:  # значения тарифов из декабрьской таблицы
                    if a[0] == self.comboBox_month_KP.currentIndex() + 12:
                        self.plategi_trf[a[2]] = a[5]
            # если нет записи (любой месяц кроме января)
            elif self.comboBox_month_KP.currentIndex() + 1 not in sqlite3_read_db(data_base, table_plateg, "id")[0] \
                    and month[self.comboBox_month_KP.currentIndex()] != "Январь":
                # таблица из текущего года
                table_plateg = 'Plategi_year_' + str(
                    self.comboBox_year_KP.currentText())
                read_table_last = sqlite3_read_db(data_base, table_plateg)[0]
                for a in read_table_last:  # значения тарифов предыдущего периода
                    if a[0] == self.comboBox_month_KP.currentIndex():
                        self.plategi_trf[a[2]] = a[5]
            else:  # если есть запись (любой месяц)
                # таблица из текущего года
                table_plateg = 'Plategi_year_' + str(
                    self.comboBox_year_KP.currentText())
                read_table_last = sqlite3_read_db(data_base, table_plateg)[0]
                for a in read_table_last:  # значения тарифов сохраненного периода
                    if a[0] == self.comboBox_month_KP.currentIndex() + 1:
                        self.plategi_trf[a[2]] = a[5]

            # устанавливаем значения тарифов в поля окна
            for j, a in zip(self.plategi_trf.values(), self.list_pole[:3]):
                a.setText(str(j))

            # вычисляем значения суммы для наших счетчиков согласно тарифов
            # и заносим эти значения в поля окна и в словарь платежей
            for p, v in self.dict_pole.items():
                pl_sum = float(v[1].text()) * float(
                    v[2].text())  # вычисляем значения суммы
                list_pl = pl_sum, int(v[1].text()), float(v[2].text())
                self.dop_plategi[
                    p] = list_pl  # заносим значения в словарь платежей
                den = denominacia(year, pl_sum)
                v[0].setText(den + " руб")  # заносим значения в поля окна

        except sqlite3.OperationalError:
            self.checkBox_Edit_KP.show()
        except ValueError:
            self.checkBox_Edit_KP.show()

        # читаем таблицу ПЛАТЕЖЕЙ из базы данных (имя и значение доп.платежа)
        read_table_KP = sqlite3_read_db(data_base, table_plateg)[0]

        for i in read_table_KP:  # имя и значения доп.платежа сохраненного периода
            year = self.comboBox_year_KP.currentText()  #

            if i[0] == self.comboBox_month_KP.currentIndex() + 1:
                self.dop_plategi[i[2]] = i[3]  # заносим в словарь

            try:  #
                if i[2] == 'Электричество':
                    self.lineEdit_P_trf.setText(
                        str(self.plategi_trf.get(i[2], "")))
                    self.sum_platega(self.dict_pole, i[2], year)
                elif i[2] == 'Вода':
                    self.lineEdit_W_trf.setText(
                        str(self.plategi_trf.get(i[2], "")))
                    self.sum_platega(self.dict_pole, i[2], year)
                elif i[2] == 'Газ':
                    self.lineEdit_G_trf.setText(
                        str(self.plategi_trf.get(i[2], "")))
                    self.sum_platega(self.dict_pole, i[2], year)

            except ValueError:
                self.checkBox_Edit_KP.show()

        self.plategi_sum = 0  # общая сумма всех платежей

        # вычисляем общую сумму всех платежей
        for i, j in self.dop_plategi.items():
            self.plategi_sum += float(j[0]) if type(j) == tuple else float(j)

            if i == 'Электричество':
                continue
            elif i == 'Вода':
                continue
            elif i == 'Газ':
                continue
            else:
                self.WinPlateg.setMinimumSize(
                    QtCore.QSize(800, 365 + self.win_resize_y))
                self.frame_plategi_KP.setGeometry(
                    QtCore.QRect(20, 225, 760, 0 + self.win_resize_y))
                self.frame_plateg(i, self.position)
                self.dop_plategi[i] = (float(j), 0, 0)
                self.dict_pole[i] = self.lineEdit_Pl_sum
                self.lineEdit_Pl_sum.setText(text_convert(str(j)) + " руб")
                self.win_resize_y += 32
                self.position += 1

            if self.lineEdit_Pl_sum.textEdited[str].connect(
                    lambda: self.text_editing(self.lineEdit_Pl_sum)):
                pass

        self.itog_sum(self.plategi_sum)

    # def check_plateg(self, name_btn, status):
    #     icon = QtGui.QIcon()
    #     name_btn.setIcon(icon)
    #     if status == 1:
    #         icon.addPixmap(QtGui.QPixmap("Resource/img/icon_checked_o.png"), QtGui.QIcon.Active, QtGui.QIcon.On)
    #     else:
    #         icon.addPixmap(QtGui.QPixmap("Resource/img/icon_checked_n.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)

    # вычисляем итоговою сумму платежей
    def itog_sum(self, plategi_sum):
        if self.plategi_sum > 0:
            year = self.comboBox_year_KP.currentText()
            den = denominacia(year, cash=plategi_sum)
            self.lineEdit_IS_sum.setText(den + " руб")

    # функция вычисляет сумму платежа и заносит значение в поле сумма
    def sum_platega(self, pole, plat, year):
        v = pole.get(plat)
        pl_sum = float(v[1].text()) * float(v[2].text())
        list_pl = pl_sum, int(v[1].text()), float(v[2].text())
        self.dop_plategi[plat] = list_pl
        den = denominacia(year, pl_sum)
        v[0].setText(den + " руб")

    # включение режима редактирования
    def read_only(self):  # режим РЕДАКТИРОВАНИЯ значений
        if self.checkBox_Edit_KP.isChecked():
            self.lineEdit_P_trf.setReadOnly(False)
            self.lineEdit_W_trf.setReadOnly(False)
            self.lineEdit_G_trf.setReadOnly(False)
        else:
            self.lineEdit_P_trf.setReadOnly(True)
            self.lineEdit_W_trf.setReadOnly(True)
            self.lineEdit_G_trf.setReadOnly(True)

        if self.lineEdit_P_trf.textEdited[str].connect(
                lambda: self.text_editing(self.lineEdit_P_sum)):
            pass
        if self.lineEdit_W_trf.textEdited[str].connect(
                lambda: self.text_editing(self.lineEdit_W_sum)):
            pass
        if self.lineEdit_G_trf.textEdited[str].connect(
                lambda: self.text_editing(self.lineEdit_G_sum)):
            pass

    # режим редактирования
    def text_editing(self, label):
        try:
            if win32api.GetKeyboardLayout(
            ) == 68748313:  # 67699721 - английский 00000409
                win32api.LoadKeyboardLayout(
                    "00000409", 1)  # 68748313 - русский    00000419

            self.label_ERROR.clear()
            self.checkBox_Edit_KP.show()
            year = self.comboBox_year_KP.currentText()

            if label == self.lineEdit_P_sum:
                self.sum_platega(self.dict_pole, 'Электричество', year)
            elif label == self.lineEdit_W_sum:
                self.sum_platega(self.dict_pole, 'Вода', year)
            elif label == self.lineEdit_G_sum:
                self.sum_platega(self.dict_pole, 'Газ', year)
            elif label == self.lineEdit_Pl_sum:
                v = self.dict_pole.get(self.label_Plat.text())
                pl_sum = float(v.text())
                list_pl = pl_sum, 0, 0
                self.dop_plategi[self.label_Plat.text()] = list_pl

                def ok():
                    den_ok = denominacia(year, pl_sum)
                    v.setText(den_ok + " руб")

                v.returnPressed.connect(ok)

            self.plategi_sum = 0

            for i, j in self.dop_plategi.items():
                self.plategi_sum += float(
                    j[0]) if type(j) == tuple else float(j)

            self.itog_sum(self.plategi_sum)

        except ValueError:
            self.checkBox_Edit_KP.hide()
            self.label_ERROR.setText('Должно быдь значение!')

    # подготовка данных к сохранению
    def create_list_plateg_kommun(self):
        data = []

        id_row = self.comboBox_month_KP.currentIndex() + 1
        select_period = self.comboBox_month_KP.currentText(
        ) + " " + self.comboBox_year_KP.currentText()

        for i, j in self.dop_plategi.items():
            data.append((id_row, select_period, i, *j))

        return data

    # кнопка сохранения данных
    def btn_save_kp(self):
        data_base = 'Komunal.db'
        data = self.create_list_plateg_kommun()
        table = 'Plategi_year_' + data_convert(data[1])

        col_name = 'id'  # Имя колонки
        row_record = str(data[0][0])  # Имя записи
        a = sqlite3_read_db(data_base, table, col_name)[0]

        try:
            if int(row_record) in a:
                self.save_yes_or_not()
            else:
                for data_i in data:
                    pass
                    # sqlite3_insert_tbl(data_base, table, data_i)

                self.read_kommunal_plateg()

            # if self.comboBox_month_KP.currentIndex() + 2 != 13:
            #     b = month[self.comboBox_month_KP.currentIndex() + 1]
            #     c = self.comboBox_year_KP.currentText()
            # else:
            #     b = month[self.comboBox_month_KP.currentIndex() - 11]
            #     c = str(int(self.comboBox_year_KP.currentText()) + 1)
            #
            # self.label_month_year_KP.setText(b + " " + c)  # устанавливает заголовок ("Месяц Год")
            # self.comboBox_month_KP.setCurrentIndex(month.index(b))  # устанавливает текущий месяц ("Месяц")
            # self.comboBox_year_KP.setCurrentText(c)  # устанавливает текущий год ("Год")

        except sqlite3.IntegrityError:
            self.checkBox_Edit_KP.hide()
            self.label_ERROR.setText('Такая запись уже существует!')

    # режим перезаписи сохраненных данных
    def save_yes_or_not(self):
        self.save_yn = UiWinAdd()
        self.save_yn.name_plateg()
        self.save_yn.setWindowTitle("Сохранение")
        self.save_yn.lineEdit.close()
        self.save_yn.label.setGeometry(QtCore.QRect(10, 0, 270, 70))
        self.save_yn.label.setText(
            "Вы действительно хотите \n презаписать эту запись?")

        self.save_yn.btn_OK.clicked.connect(self.btn_ok_save_yn)
        self.save_yn.btn_OK.setAutoDefault(True)
        self.save_yn.btn_Cancel.clicked.connect(self.btn_cancel_save_yn)

    # перезапись сохраненных данных
    def btn_ok_save_yn(self):
        data_base = 'Komunal.db'  # имя базы данных
        data = self.create_list_plateg_kommun()  # список данных для записи
        table = 'Plategi_year_' + data_convert(data[1])  # имя таблицы (период)
        col_name = 'id'  # имя колонки
        row_record = str(data[0][0])  # имя записи

        for data_i in data:
            pass
            # sqlite3_delete_record(data_base, table, col_name, row_record)
            # sqlite3_insert_tbl(data_base, table, data_i)

        self.read_kommunal_plateg()

        self.save_yn.close()

    # кнопка отмены перезаписи
    def btn_cancel_save_yn(self):
        self.save_yn.close()

    # кнопка закрытия окна "Коммунальные платежи"
    def btn_cancel_kp(self):
        self.close()
Esempio n. 9
0
class PokazSchet(QtWidgets.QWidget, UiWinPokazanya):
    def __init__(self):
        super(PokazSchet, self).__init__()

        self.setupUi_PS(self)

        self.period_ps = Period(self.comboBox_month_PS, self.comboBox_year_PS,
                                self.label_month_year_PS)

        current_month = convert_month(dt_month)  # Текущий месяц ("Месяц")
        current_year = dt_year  # Текущий год ("Год")

        self.month_index = month.index(current_month)
        self.month_text = month[self.month_index]
        self.year_index = int(current_year)

        # ВЫБОР ПЕРИОДА
        combo_m = self.comboBox_month_PS
        combo_y = self.comboBox_year_PS
        selected_period(combo_m, combo_y)

        # установка ТЕКУЩЕГО ПЕРИОДА
        self.label_month_year_PS.setText(
            current_month + " " +
            current_year)  # устанавливает заголовок ("Месяц Год")
        self.comboBox_month_PS.setCurrentIndex(month.index(
            current_month))  # устанавливает текущий месяц ("Месяц")
        self.comboBox_year_PS.setCurrentText(
            current_year)  # устанавливает текущий год ("Год")

        # ВЫБИРАЕМ период
        self.comboBox_month_PS.activated.connect(self.label_period)  # месяц
        self.comboBox_year_PS.activated.connect(self.label_period)  # год

        self.btn_Left_PS.clicked.connect(
            self.btn_period_left)  # прокрутка в лево
        self.btn_Right_PS.clicked.connect(
            self.btn_period_right)  # прокрутка в право

        # режим РЕДАКТИРОВАНИЯ значений
        self.checkBox_Edit_PS.setChecked(False)
        self.checkBox_Edit_PS.stateChanged.connect(self.read_only)

        # СОХРАНЯЕТ показания счетчиков
        self.pushButton_Save_PS.clicked.connect(self.btn_save)

        # ЗАКРЫВАЕТ ОКНО показания счетчиков
        self.pushButton_Cancel_PS.clicked.connect(self.btn_cancel_ps)

        # ЧИТАЕТ показания из базы данных
        self.read_pokaz_schet()

        self.show()

    # показывает в заголовке выбранный месяц и год
    def label_period(self):
        self.month_index = self.period_ps.label_sel_period()
        self.read_pokaz_schet()

    # прокрутка переиода в лево
    def btn_period_left(self):
        self.month_index = self.period_ps.click_btn_left(self.month_index)
        self.read_pokaz_schet()

    # прокрутка переиода в право
    def btn_period_right(self):
        self.month_index = self.period_ps.click_btn_right(self.month_index)
        self.read_pokaz_schet()

    # читаем сохраненые данные из базы данных
    def read_pokaz_schet(self):
        if win32api.GetKeyboardLayout(
        ) == 68748313:  # 67699721 - английский 00000409
            win32api.LoadKeyboardLayout("00000409",
                                        1)  # 68748313 - русский    00000419

        file_db = open('Komunal.db', 'a')  # открываем файл базы данных
        file_db.close()
        self.data_base = 'Komunal.db'  # имя базы данных
        table = 'Pokazanya_year_' + str(
            self.comboBox_year_PS.currentText())  # имя таблицы
        col_name = 'id'  # Имя колонки

        heading = (
            'id integer primary key , month_year text, Pred_PW integer, Actual_PW integer, Pred_WA_1 integer, '
            'Actual_WA_1 integer, Pred_WA_2 integer, Actual_WA_2 integer, Pred_WA_3 integer, '
            'Actual_WA_3 integer, Pred_WA_4 integer, Actual_WA_4 integer, Pred_GZ integer, Actual_GZ integer, '
            'PW_month_ras integer, WA_C_month_ras integer, WA_H_month_ras integer, WA_month_ras integer, '
            'GZ_month_ras integer')

        # это нужно если база данных отсутствует
        sqlite3_create_db(self.data_base, table,
                          heading)  # создаем таблицу в базе данных

        # очищаем поля окна ПОКАЗАНИЯ СЧЕТЧИКОВ
        win_pole = [
            self.lineEdit_pred_pokaz_P, self.lineEdit_post_pokaz_P,
            self.lineEdit_pred_pokaz_W1, self.lineEdit_post_pokaz_W1,
            self.lineEdit_pred_pokaz_W2, self.lineEdit_post_pokaz_W2,
            self.lineEdit_pred_pokaz_W3, self.lineEdit_post_pokaz_W3,
            self.lineEdit_pred_pokaz_W4, self.lineEdit_post_pokaz_W4,
            self.lineEdit_pred_pokaz_G, self.lineEdit_post_pokaz_G,
            self.label_month_ras_P, self.label_month_ras_WC,
            self.label_month_ras_WH, self.label_month_ras,
            self.label_month_ras_G, self.label_ERROR_PS, self.label_OK_PS
        ]

        for i in win_pole:
            i.clear()

        self.checkBox_Edit_PS.show()

        if self.comboBox_month_PS.currentIndex() + 1 in sqlite3_read_db(
                self.data_base, table, col_name)[0]:
            self.label_OK_PS.setPixmap(
                QtGui.QPixmap("./Resource/img/Galochka.png"))

        if not sqlite3_read_db(self.data_base, table)[0] and month[
                self.comboBox_month_PS.currentIndex()] == "Январь":
            table = 'Pokazanya_year_' + str(
                int(self.comboBox_year_PS.currentText()) - 1)

        read_table = sqlite3_read_db(self.data_base,
                                     table)  # читаем таблицу из базе данных
        read_table = read_table[0]

        for i in range(len(read_table)):
            pred_pokaz = read_table[i]  # показания сохраненного периода

            if self.label_month_year_PS.text() == pred_pokaz[1]:
                # присваеваем полям значения из сохраненной таблицы
                for a, b in zip(win_pole[:18], range(2, 19)):
                    a.setText(str(pred_pokaz[b]))
                break
            else:
                cor_month = month[self.comboBox_month_PS.currentIndex() - 1]
                if cor_month in pred_pokaz[1]:
                    # присваеваем полям "ПРЕДЫДУЩИЕ" значения из сохраненной таблицы
                    for c, d in zip(win_pole[:11:2], range(3, 14, 2)):
                        c.setText(str(pred_pokaz[d]))
                    # присваеваем полям "ПОСЛЕДНЕЕ" и "МЕСЯЧНЫЙ расход" значения "0"
                    for j in win_pole[1:12:2] + win_pole[12:17]:
                        j.setText("0")

        self.lineEdit_post_pokaz_P.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_P))
        self.lineEdit_pred_pokaz_P.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_P))
        self.lineEdit_post_pokaz_W1.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_WC))
        self.lineEdit_pred_pokaz_W1.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_WC))
        self.lineEdit_post_pokaz_W2.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_WH))
        self.lineEdit_pred_pokaz_W2.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_WH))
        self.lineEdit_post_pokaz_W3.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_WC))
        self.lineEdit_pred_pokaz_W3.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_WC))
        self.lineEdit_post_pokaz_W4.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_WH))
        self.lineEdit_pred_pokaz_W4.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_WH))
        self.lineEdit_post_pokaz_G.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_G))
        self.lineEdit_pred_pokaz_G.textEdited[str].connect(
            lambda: self.text_editing(self.label_month_ras_G))

    def text_editing(self, label_month):
        try:
            self.label_ERROR_PS.clear()
            self.checkBox_Edit_PS.show()
            label_month.setText('0')
            if label_month == self.label_month_ras_P:  # количество израсходованного за период ЭЛЕКТРИЧЕСТВА
                if int(self.lineEdit_post_pokaz_P.text()) != 0:
                    label_month.clear()
                    label_month.setText(
                        str(
                            int(self.lineEdit_post_pokaz_P.text()) -
                            int(self.lineEdit_pred_pokaz_P.text())))
            elif label_month == self.label_month_ras_WC:  # количество израсходованного за период ХОЛОДНОЙ ВОДЫ
                if int(self.lineEdit_post_pokaz_W1.text()) or int(
                        self.lineEdit_post_pokaz_W3.text()) != 0:
                    label_month.clear()
                    label_month.setText(
                        str((int(self.lineEdit_post_pokaz_W1.text()) -
                             int(self.lineEdit_pred_pokaz_W1.text())) +
                            (int(self.lineEdit_post_pokaz_W3.text()) -
                             int(self.lineEdit_pred_pokaz_W3.text()))))
                    self.label_month_ras.setText(
                        str(
                            int(self.label_month_ras_WC.text()) +
                            int(self.label_month_ras_WH.text())))
            elif label_month == self.label_month_ras_WH:  # количество израсходованного за период ГОРЯЧЕЙ ВОДЫ
                if int(self.lineEdit_post_pokaz_W2.text()) or int(
                        self.lineEdit_post_pokaz_W4.text()) != 0:
                    label_month.clear()
                    label_month.setText(
                        str((int(self.lineEdit_post_pokaz_W2.text()) -
                             int(self.lineEdit_pred_pokaz_W2.text())) +
                            (int(self.lineEdit_post_pokaz_W4.text()) -
                             int(self.lineEdit_pred_pokaz_W4.text()))))
                    self.label_month_ras.setText(
                        str(
                            int(self.label_month_ras_WC.text()) +
                            int(self.label_month_ras_WH.text())))
            elif label_month == self.label_month_ras_G:  # количество израсходованного за период ГАЗА
                if int(self.lineEdit_post_pokaz_G.text()) != 0:
                    label_month.clear()
                    label_month.setText(
                        str(
                            int(self.lineEdit_post_pokaz_G.text()) -
                            int(self.lineEdit_pred_pokaz_G.text())))
        except ValueError:
            self.checkBox_Edit_PS.hide()
            self.label_ERROR_PS.setText('Должно быдь значение!')

        self.create_list_pokaz_schet()

    def read_only(self):  # режим РЕДАКТИРОВАНИЯ значений
        if self.checkBox_Edit_PS.isChecked():
            self.lineEdit_pred_pokaz_P.setReadOnly(False)
            self.lineEdit_pred_pokaz_W1.setReadOnly(False)
            self.lineEdit_pred_pokaz_W2.setReadOnly(False)
            self.lineEdit_pred_pokaz_W3.setReadOnly(False)
            self.lineEdit_pred_pokaz_W4.setReadOnly(False)
            self.lineEdit_pred_pokaz_G.setReadOnly(False)
        else:
            self.lineEdit_pred_pokaz_P.setReadOnly(True)
            self.lineEdit_pred_pokaz_W1.setReadOnly(True)
            self.lineEdit_pred_pokaz_W2.setReadOnly(True)
            self.lineEdit_pred_pokaz_W3.setReadOnly(True)
            self.lineEdit_pred_pokaz_W4.setReadOnly(True)
            self.lineEdit_pred_pokaz_G.setReadOnly(True)

    def create_list_pokaz_schet(self):
        ppw = self.lineEdit_pred_pokaz_P.text(
        )  # ПРЕДЫДУЩИЕ значение ЭЛЕКТРИЧЕСТВО
        apw = self.lineEdit_post_pokaz_P.text(
        )  # ПОСЛЕДНЕЕ значение ЭЛЕКТРИЧЕСТВО
        pwa_1 = self.lineEdit_pred_pokaz_W1.text(
        )  # ПРЕДЫДУЩИЕ значение ВОДА № 1
        awa_1 = self.lineEdit_post_pokaz_W1.text(
        )  # ПОСЛЕДНЕЕ значение ВОДА № 1
        pwa_2 = self.lineEdit_pred_pokaz_W2.text(
        )  # ПРЕДЫДУЩИЕ значение ВОДА № 2
        awa_2 = self.lineEdit_post_pokaz_W2.text(
        )  # ПОСЛЕДНЕЕ значение ВОДА № 2
        pwa_3 = self.lineEdit_pred_pokaz_W3.text(
        )  # ПРЕДЫДУЩИЕ значение ВОДА № 3
        awa_3 = self.lineEdit_post_pokaz_W3.text(
        )  # ПОСЛЕДНЕЕ значение ВОДА № 3
        pwa_4 = self.lineEdit_pred_pokaz_W4.text(
        )  # ПРЕДЫДУЩИЕ значение ВОДА № 4
        awa_4 = self.lineEdit_post_pokaz_W4.text(
        )  # ПОСЛЕДНЕЕ значение ВОДА № 4
        pgz = self.lineEdit_pred_pokaz_G.text()  # ПРЕДЫДУЩИЕ значение ГАЗ
        agz = self.lineEdit_post_pokaz_G.text()  # ПОСЛЕДНЕЕ значение ГАЗ

        pow_mount_ras = self.label_month_ras_P.text(
        )  # МЕСЯЧНЫЙ расход ЭЛЕКТРИЧЕСТВО
        w_cold_mount_ras = self.label_month_ras_WC.text(
        )  # МЕСЯЧНЫЙ расход ХОЛОДНАЯ ВОДА
        w_hot_mount_ras = self.label_month_ras_WH.text(
        )  # МЕСЯЧНЫЙ расход ГОРЯЧАЯ ВОДА
        w_mount_ras = self.label_month_ras.text()  # МЕСЯЧНЫЙ расход ВСЕГО ВОДА
        gaz_mount_ras = self.label_month_ras_G.text()  # МЕСЯЧНЫЙ расход ГАЗ

        # СОЗДАЕМ СПИСОК ПОКАЗАНИЙ ЗА МЕСЯЦ
        # номер месяца ("Январь" = 1)
        id_row = month.index(self.comboBox_month_PS.currentText()) + 1
        # название периода ("Январь 2020")
        select_period = self.comboBox_month_PS.currentText(
        ) + " " + self.comboBox_year_PS.currentText()
        # список данных счетчиков предыдущие и последние
        data = [
            id_row, select_period, ppw, apw, pwa_1, awa_1, pwa_2, awa_2, pwa_3,
            awa_3, pwa_4, awa_4, pgz, agz, pow_mount_ras, w_cold_mount_ras,
            w_hot_mount_ras, w_mount_ras, gaz_mount_ras
        ]

        return data

    def btn_save(self):
        data = self.create_list_pokaz_schet()
        table = 'Pokazanya_year_' + data_convert(data)
        col_name = 'id'  # Имя колонки
        row_record = str(data[0])  # Имя записи

        a = sqlite3_read_db(self.data_base, table, col_name)[0]

        try:
            if int(row_record) in a:
                self.save_yes_or_not()
            else:
                sqlite3_insert_tbl(self.data_base, table, data)

                self.read_pokaz_schet()

            # if self.comboBox_month_PS.currentIndex() + 2 != 13:
            #     b = month[self.comboBox_month_PS.currentIndex() + 1]
            #     c = self.comboBox_year_PS.currentText()
            # else:
            #     b = month[self.comboBox_month_PS.currentIndex() - 11]
            #     c = str(int(self.comboBox_year_PS.currentText()) + 1)
            #
            # self.label_month_year_PS.setText(b + " " + c)  # устанавливает заголовок ("Месяц Год")
            # self.comboBox_month_PS.setCurrentIndex(month.index(b))  # устанавливает текущий месяц ("Месяц")
            # self.comboBox_year_PS.setCurrentText(c)  # устанавливает текущий год ("Год")

        except sqlite3.IntegrityError:
            self.checkBox_Edit_PS.hide()
            self.label_ERROR_PS.setText('Такая запись уже существует!')

    def save_yes_or_not(self):
        self.save_yn = UiWinAdd()
        self.save_yn.name_plateg()
        self.save_yn.setWindowTitle("Сохранение")
        self.save_yn.lineEdit.close()
        self.save_yn.label.setGeometry(QtCore.QRect(10, 0, 270, 70))
        self.save_yn.label.setText(
            "Вы действительно хотите \n презаписать эту запись?")

        self.save_yn.btn_OK.clicked.connect(self.btn_ok_save_yn)
        self.save_yn.btn_OK.setAutoDefault(True)
        self.save_yn.btn_Cancel.clicked.connect(self.btn_cancel_save_yn)

    def btn_ok_save_yn(self):
        data = self.create_list_pokaz_schet()  # список данных для записи
        table = 'Pokazanya_year_' + data_convert(data)  # имя таблицы (период)
        col_name = 'id'  # имя колонки
        row_record = str(data[0])  # имя записи

        sqlite3_delete_record(self.data_base, table, col_name, row_record)
        sqlite3_insert_tbl(self.data_base, table, data)

        self.read_pokaz_schet()

        self.save_yn.close()

    def btn_cancel_save_yn(self):
        self.save_yn.close()

    def btn_cancel_ps(self):
        self.close()
Esempio n. 10
0
class DebitKredit(QtWidgets.QWidget, UiWinDebitKredit):
    def __init__(self):
        super(DebitKredit, self).__init__()

        self.setupUi_DK(self)

        self.period_dk = Period(self.comboBox_month_DK, self.comboBox_year_DK,
                                self.label_month_year_DK)

        current_month = convert_month(dt_month)  # Текущий месяц ("Январь")
        current_year = dt_year  # Текущий год ("2020")

        self.month_index = month.index(current_month)
        self.month_text = month[self.month_index]
        self.year_index = int(current_year)

        # ВЫБОР ПЕРИОДА
        combo_m = self.comboBox_month_DK
        combo_y = self.comboBox_year_DK
        selected_period(combo_m, combo_y)

        # установка ТЕКУЩЕГО ПЕРИОДА
        self.label_month_year_DK.setText(
            current_month + " " +
            current_year)  # устанавливает заголовок ("Январь 2020")
        self.comboBox_month_DK.setCurrentIndex(month.index(
            current_month))  # устанавливает текущий месяц ("Январь")
        self.comboBox_year_DK.setCurrentText(
            current_year)  # устанавливает текущий год ("2020")

        # ВЫБИРАЕМ период с помощью comboBox
        self.comboBox_month_DK.activated.connect(self.label_period)
        self.comboBox_year_DK.activated.connect(self.label_period)

        # ВЫБИРАЕМ период с помощью стрелок
        self.btn_Left_DK.clicked.connect(self.btn_period_left)
        self.btn_Right_DK.clicked.connect(self.btn_period_right)

        # ДОБАВЛЕНИЕ новые данные
        self.pushButton_add_Plateg_DK.clicked.connect(self.sel_deb_kred)

        # СОХРАНЯЕМ значения ДОХОДЫ/РАСХОДЫ
        self.pushButton_Save_DK.clicked.connect(self.btn_save_dk)

        # ЗАКРЫВАЕТ окно ДОХОДЫ/РАСХОДЫ
        self.pushButton_Cancel_DK.clicked.connect(self.btn_cancel_dk)

        # ЧИТАЕТ значения ДОХОДЫ/РАСХОДЫ из базы данных
        self.read_debit_kredit()

        self.show()

    # показывает в заголовке выбранный месяц и год
    def label_period(self):
        self.month_index = self.period_dk.label_sel_period()
        self.read_debit_kredit()

    # прокрутка переиода в лево
    def btn_period_left(self):
        self.month_index = self.period_dk.click_btn_left(self.month_index)
        self.read_debit_kredit()

    # прокрутка переиода в право
    def btn_period_right(self):
        self.month_index = self.period_dk.click_btn_right(self.month_index)
        self.read_debit_kredit()

    # значения по умолчанию
    def default_win(self, y=0):
        self.WinDebKred.resize(800, 400)
        self.WinDebKred.setMinimumSize(QtCore.QSize(800, 365 + y))
        self.frame_Debit.setGeometry(QtCore.QRect(20, 85, 760, 0 + y))
        self.frame_Kredit.setGeometry(QtCore.QRect(20, 190, 760, 0 + y))

    # окно выбора "ДОХОД/РАСХОД"
    def sel_deb_kred(self):
        self.radio_plat = UiWinAdd()
        self.radio_plat.radio_btn()

        self.radio_plat.btn_OK.clicked.connect(
            self.win_add_name_ok)  # кнопка OK
        self.radio_plat.btn_OK.setAutoDefault(True)

        self.radio_plat.btn_Cancel.clicked.connect(
            self.radio_plat_cancel)  # кнопка CANCEL

    # кнопка CANCEL окна выбора "ДОХОД/РАСХОД"
    def radio_plat_cancel(self):
        self.radio_plat.close()

    # окно "ИМЯ нового платежа"
    def win_add_name_ok(self):
        self.radio_plat.close()

        if win32api.GetKeyboardLayout(
        ) == 67699721:  # 67699721 - английский 00000409
            win32api.LoadKeyboardLayout("00000419",
                                        1)  # 68748313 - русский    00000419

        self.win_add = UiWinAdd()
        self.win_add.name_plateg()

        self.name = self.win_add.lineEdit.text()

        self.win_add.btn_OK.clicked.connect(self.win_add_summ_ok)  # кнопка OK
        self.win_add.btn_OK.setAutoDefault(True)
        self.win_add.lineEdit.returnPressed.connect(self.win_add.btn_OK.click)

        self.win_add.btn_Cancel.clicked.connect(
            self.win_add_name_cancel)  # кнопка CANCEL

    # кнопка CANCEL окна "ИМЯ нового платежа"
    def win_add_name_cancel(self):
        self.win_add.lineEdit.clear()
        self.win_add.close()

    # окно "СУММА нового платежа"
    def win_add_summ_ok(self):
        self.win_add.lineEdit.clear()
        self.win_add.close()

        if win32api.GetKeyboardLayout(
        ) == 68748313:  # 67699721 - английский 00000409
            win32api.LoadKeyboardLayout("00000409",
                                        1)  # 68748313 - русский    00000419

        self.summ_plat = UiWinAdd()
        self.summ_plat.name_plateg()
        self.summ_plat.label.setText("Сумма платежа")

        self.sum = self.summ_plat.lineEdit.text()

        self.summ_plat.btn_OK.clicked.connect(
            lambda: self.create_plat(self.win_resize_y, self.position))
        self.summ_plat.btn_OK.setAutoDefault(True)
        self.summ_plat.lineEdit.returnPressed.connect(
            self.summ_plat.btn_OK.click)

        self.summ_plat.btn_Cancel.clicked.connect(
            self.win_add_summ_cancel)  # кнопка CANCEL

    # кнопка CANCEL окна "СУММА нового платежа"
    def win_add_summ_cancel(self):
        self.summ_plat.lineEdit.clear()
        self.summ_plat.close()

    def create_plat(self, y, position):
        self.summ_plat.lineEdit.clear()
        self.summ_plat.close()

        self.frame_plateg(self.frame_Kredit, self.name, self.gLayout_Kredit,
                          position)
        self.default_win(y)
        # self.lineEdit_sum_Plat.setText(text_convert(self.sum) + " руб")

        # self.dop_plategi[self.name] = float(self.sum), 0, 0, 0
        # self.dict_pole[self.name] = self.lineEdit_sum_Plat
        # self.plategi_sum += float(self.sum)
        # self.itog_sum(self.plategi_sum)

        self.win_resize_y += 32
        self.position += 1

        self.btn_del_Plat.clicked.connect(
            self.btn_del_plateg
        )  # возможно удаление после того как был создан доп. плат.

    # УДАЛЕНИЕ "нового платежа"
    def btn_del_plateg(self):
        self.widget_Plat.close()
        self.plategi_sum -= float(self.sum)
        if self.plategi_sum <= 0:
            self.lineEdit_IS_sum.clear()
        self.itog_sum(self.plategi_sum)
        self.win_resize_y -= 32
        self.position -= 1

    # читаем сохраненые данные из базы данных
    def read_debit_kredit(self):  # читаем данные из базы данных
        pass
        self.win_resize_y = 35
        self.position = 1

    # вычисляем сумму платежа и заносим в поле сумма
    def sum_platega(self):
        pass

    # вычисляем итоговою сумму платежей
    def itog_sum(self):
        pass

    # режим редактирования
    def text_editing(self):
        pass

    # подготовка данных к сохранению
    def create_list_plateg_kommun(self):
        pass

    # кнопка сохранения данных
    def btn_save_dk(self):
        pass

    # режим перезаписи сохраненных данных
    def save_yes_or_not(self):
        pass

    # перезапись сохраненных данных
    def btn_ok_save_yn(self):
        pass

    # кнопка отмены перезаписи
    def btn_cancel_save_yn(self):
        pass

    def btn_cancel_dk(self):
        self.close()