コード例 #1
0
    def event_label_status_change(self):
        try:
            year = int(self.cb_year.currentText())
            week = int(self.cb_week.currentText()) - 1
            F = timefunction.FromWeektoDate(year, week, 1)
            T = timefunction.FromWeektoDate(year, week, 7)
            begin_m = F[1]
            begin_d = F[2]
            end_m = T[1]
            end_d = T[2]
            if week == 0:
                weekday = timefunction.getFirstWeekDate(year)

                # 使得一些日子不可用
                begin_d = 1
                begin_m = 1
            elif week == 52:
                weekday = timefunction.getLastWeekDate(year)

                # 使得一些日子不可用
                end_d = 31
                end_m = 12
            text = '''{}-{}-{}至{}-{}-{}'''.format(year, begin_m, begin_d, year,
                                                  end_m, end_d)
            self.lb_selectone.setText(text)

        except Exception as e:
            print(e)
コード例 #2
0
    def redata(self, data):
        first = {}
        for i, (phone, name, type, coach, year, week, weekday, dian,
                evaluation, signed) in enumerate(data):
            _, mon, day = weekfun.FromWeektoDate(year, week - 1, weekday)

            # 第一层:年月
            if (mon < 10):
                mon = '0{}'.format(mon)
            if (day < 10):
                day = '0{}'.format(day)
            yearandmon = '{}-{}'.format(year, mon)
            if not yearandmon in first:
                first.update({yearandmon: {}})

            # 第二层 日期和周数
            dayandweekday = '{}-{}'.format(day, weekday)
            second = first[yearandmon]
            if not dayandweekday in second:
                second.update({dayandweekday: []})

            # 第三层,具体数据
            info = second[dayandweekday]
            data = [dian, name, coach, signed, evaluation]
            info.append(data)
            second.update({dayandweekday: info})
            first.update({yearandmon: second})
        return first
コード例 #3
0
 def update_stuindo_confirm(self):
     try:
         newcishu = self.et_cichu__old.text()
         newcarditem = self.cb_card_old.currentText()
         money = self.et_money_old.text()
         if (newcishu == ''):
             QMessageBox.warning(self,
                                 u"温馨提示",
                                 u"请输入续卡次数",
                                 buttons=QMessageBox.Ok)
         elif (money == ''):
             QMessageBox.warning(self,
                                 u"温馨提示",
                                 u"请输入续卡的费用",
                                 buttons=QMessageBox.Ok)
         else:
             self.FormVerify = logicVerify()
             self.FormVerify.setWindowModality(QtCore.Qt.ApplicationModal)
             self.FormVerify.show()
             if self.FormVerify.exec() == 1:
                 allcishu = self.current_cichu + int(newcishu)
                 hint = '学生姓名:{}\n联系方式:{}\n课程种类:{}\n原有次数:{}\n' \
                        '增加次数:{}\n总次数:{}\n续卡金额:{}\n续卡种类:{}'.format(
                     self.et_name_old.text(),
                     self.et_phone_old.text(),
                     self.cb_classitem_old.currentText(),
                     self.current_cichu,
                     newcishu,
                     allcishu,
                     self.et_money_old.text(),
                     newcarditem
                 )
                 reply = QMessageBox.warning(
                     self, '确认信息', hint, QMessageBox.Yes | QMessageBox.No,
                     QMessageBox.Yes)
                 if reply == QMessageBox.Yes:
                     sql_update_meminfo = 'UPDATE  mem_info  SET mem_cls_left={}, mem_cardtype=\'{}\' WHERE mem_phone=\'{}\' and mem_type={};'.format(
                         allcishu, newcarditem, self.et_phone_old.text(),
                         self.cb_classitem_old.currentIndex())
                     print(sql_update_meminfo)
                     flag1 = self.MySQL.UpdateFromDataBse(
                         sql_update_meminfo)
                     self.banka_data['学生姓名'] = self.et_name_old.text()
                     self.banka_data['学生电话'] = self.et_phone_old.text()
                     self.banka_data['办卡续卡'] = 1  # '0'是办卡 ‘1’是续卡
                     self.banka_data['金额'] = self.et_money_old.text()
                     self.banka_data['日期'] = dateweek.getCurrentYMD()
                     flag2 = self.Insert2Banka()
                     if (flag1 and flag2):
                         self.clearEditAfterOldMemberUpdate()
                         QMessageBox.information(self, '提示', '录入成功!',
                                                 QMessageBox.Ok,
                                                 QMessageBox.Ok)
                     else:
                         QMessageBox.information(self, '提示', '录入失败!',
                                                 QMessageBox.Ok,
                                                 QMessageBox.Ok)
     except Exception as e:
         print(e)
コード例 #4
0
 def initday(self):
     tm = time.gmtime()
     week, weekday = timefunction.FromDatetoWeek(year=tm.tm_year,
                                                 month=tm.tm_mon,
                                                 day=tm.tm_mday)
     self.lb_time.setText("当前日期:{}年{}月{}日 第{}周 {}".format(
         tm.tm_year, tm.tm_mon, tm.tm_mday, week,
         self.week2day[int(weekday)]))
コード例 #5
0
    def initUpdateForm(self):

        #信息展示不可见修改
        self.et_coaname.setEnabled(False)
        self.et_classdate.setEnabled(False)
        self.et_stuname.setEnabled(False)
        self.et_stuphone.setEnabled(False)
        self.et_classtime.setEnabled(False)
        self.et_stuclasstype.setEnabled(False)
        #初始化
        weekday = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
        year, mon, day = weekfun.getCurrentYMD()
        self.cb_year.addItems([str(year - 1), str(year)])
        self.cb_weekday.addItems(weekday)
        for i in range(53):
            self.cb_weekj.addItem('第{}周'.format(i + 1))

        #选定当前日期
        self.cb_year.setCurrentIndex(1)
        week, weekday = weekfun.FromDatetoWeek(year=year, month=mon, day=day)
        self.cb_weekj.setCurrentIndex(int(week) - 1)
        self.cb_weekday.setCurrentIndex(int(weekday) - 1)
        self.lb_date.setText('{}年{}月{}日 周{}'.format(year, mon, day, weekday))

        #初始化今天的任务

        #课程列表表头初始化
        self.headers_StudentList = ['姓名', '科目种类', '上课时间', '教练', '是否签到', '是否评价']
        self.class_data_model = QStandardItemModel()
        # 学生表初始化
        self.class_data_model.setHorizontalHeaderLabels(
            self.headers_StudentList)
        self.tv_classlist.setEditTriggers(QTableView.NoEditTriggers)  # 不可编辑
        self.tv_classlist.setSelectionBehavior(QTableView.SelectRows)  # 选中行
        self.tv_classlist.setModel(self.class_data_model)
        self.tv_classlist.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)
コード例 #6
0
    def lb_init(self):
        tm = time.gmtime()
        week, weekday = timefunction.FromDatetoWeek(year=tm.tm_year,
                                                    month=tm.tm_mon,
                                                    day=tm.tm_mday)
        self.lb_time.setText("当前日期:{}年{}月{}日 第{}周 {}".format(
            tm.tm_year, tm.tm_mon, tm.tm_mday, week,
            self.int2week2day[int(weekday)]))

        self.lb_student.setText("学生:{},联系方式:{},课程种类:{},办卡种类:{}".format(
            self.meminfo['学生姓名'],
            self.meminfo['联系方式'],
            self.type2card[self.meminfo['课程种类']],
            self.meminfo['办卡种类'],
        ))
コード例 #7
0
 def add_table(self):
     self.data_model.clear()
     self.data_model.setHorizontalHeaderLabels(self.headers_ClassList)
     for i, (mem_phone, mem_name, mem_type, mem_coa_name, year, week, cday,
             ctime, _, mem_signed) in enumerate(self.class_info):
         _, mon, day = timefunction.FromWeektoDate(year,
                                                   int(week) - 1, cday)
         if (mem_signed == 0):
             signed = '否'
         else:
             signed = '是'
         self.data_model.appendRow([
             QStandardItem(mem_name),
             QStandardItem(mem_phone),
             QStandardItem(self.type2card[mem_type]),
             QStandardItem(mem_coa_name),
             QStandardItem('{}年'.format(year)),
             QStandardItem('{}月'.format(mon)),
             QStandardItem('{}日'.format(day)),
             QStandardItem('{}点'.format(ctime)),
             QStandardItem(signed),
         ])
コード例 #8
0
    def refresh_lesson_table(self):

        self.class_data_model.clear()
        self.class_data_model.setHorizontalHeaderLabels(
            self.headers_StudentList)

        year = self.cb_year.currentText()
        week = self.cb_weekj.currentIndex() + 1
        weekday = self.cb_weekday.currentIndex() + 1
        _, mon, day = weekfun.FromWeektoDate(year, week - 1, weekday)
        self.lb_date.setText('{}年{}月{}日 周{}'.format(year, mon, day, weekday))
        try:
            sql = 'select * from mem_class where year={} and week = {} and cday = {}'\
                                .format(year,week,weekday)
            print(sql)
            flag, self.lesson_item = self.MySQL.SelectFromDataBse(sql)
            if (flag):
                if (len(self.lesson_item) > 0):
                    self.add_lesson()
                # else:
                #     print(None)
        except Exception as e:
            print(e)
コード例 #9
0
    def selectClassList(self):
        try:
            tm = time.gmtime()
            week, weekday = timefunction.FromDatetoWeek(year=tm.tm_year,
                                                        month=tm.tm_mon,
                                                        day=tm.tm_mday)
            diansql = 'ctime={}'.format(self.dian2int[self.dianlist[0]])
            for i in range(1, len(self.dianlist)):
                diansql += ' OR ctime={}'.format(
                    self.dian2int[self.dianlist[i]])

            sql = 'SELECT distinct mem_class.mem_name, ' \
                  'mem_class.mem_phone, ' \
                  'mem_class.mem_type,' \
                  'mem_class.mem_coa_name,' \
                  'mem_info.mem_cls_left,' \
                  'mem_class.ctime, ' \
                  'mem_class.mem_signed,' \
                  'mem_info.mem_facefeature, ' \
                  'mem_info.mem_cardtype ' \
                  ' FROM mem_info JOIN  mem_class WHERE ' \
                  'mem_class.mem_name = mem_info.mem_name ' \
                  ' AND mem_class.year={}  ' \
                  ' AND mem_class.week={} ' \
                  ' AND mem_class.cday={}' \
                  ' AND ({})'.format(
                tm.tm_year,
                week,
                weekday,
                diansql
            )
            print(sql)
            flag, self.data_meminfo_search = self.MySQL.SelectFromDataBse(sql)
            # self.data_meminfo_table = self.selectone(data = self.data_meminfo_search,name='裴正蒙',phone='12312312312')
            self.data_meminfo_table = self.data_meminfo_search
        except Exception as e:
            print(e)
コード例 #10
0
    def confrim_and_insert_new(self):

        try:
            #数据库段
            self.meminfo_data['学生姓名'] = self.et_name_new.text()
            self.meminfo_data['学生年龄'] = self.et_age_new.text()
            self.meminfo_data['学生家长'] = self.et_parent_new.text()
            self.meminfo_data['联系方式'] = self.et_phone_new.text()
            self.meminfo_data['课程种类'] = self.cardtype[
                self.cb_classitem_new.currentText()]
            self.meminfo_data['课时次数'] = self.et_cichu_new.text()
            self.meminfo_data['办卡种类'] = self.cb_card_new.currentText()

            self.banka_data['学生姓名'] = self.et_name_new.text()
            self.banka_data['学生电话'] = self.et_phone_new.text()
            self.banka_data['办卡续卡'] = 0  #'0'是办卡 ‘1’是续卡
            self.banka_data['金额'] = self.et_money_new.text()
            self.banka_data['日期'] = dateweek.getCurrentYMD()

            if (self.meminfo_data['学生姓名'] == ''):
                QMessageBox.warning(
                    self,
                    u"温馨提示",
                    u"请输入学生姓名",
                    buttons=QMessageBox.Ok,
                )
            elif (self.meminfo_data['学生性别'] == ''):
                QMessageBox.warning(
                    self,
                    u"温馨提示",
                    u"请选择学生性别",
                    buttons=QMessageBox.Ok,
                )
            elif (self.meminfo_data['学生家长'] == ''):
                QMessageBox.warning(
                    self,
                    u"温馨提示",
                    u"请输入学生家长姓名",
                    buttons=QMessageBox.Ok,
                )
            elif (self.meminfo_data['联系方式'] == ''):
                QMessageBox.warning(
                    self,
                    u"温馨提示",
                    u"请输入联系手机号码",
                    buttons=QMessageBox.Ok,
                )
            elif not (self.PhoneCheck(self.meminfo_data['联系方式'])):
                QMessageBox.warning(
                    self,
                    u"温馨提示",
                    u"请输入正确的11位手机号码",
                    buttons=QMessageBox.Ok,
                )
            elif (self.meminfo_data['课时次数'] == ''):
                QMessageBox.warning(
                    self,
                    u"温馨提示",
                    u"请输入录入的课时次数",
                    buttons=QMessageBox.Ok,
                )
            elif (self.banka_data['金额'] == ''):
                QMessageBox.warning(
                    self,
                    u"温馨提示",
                    u"请输入此次录入学生的办卡费用",
                    buttons=QMessageBox.Ok,
                )
            else:
                self.FormVerify = logicVerify()
                self.FormVerify.setWindowModality(QtCore.Qt.ApplicationModal)
                self.FormVerify.show()
                if self.FormVerify.exec() == 1:
                    hint = '学生姓名:{}\n学生性别:{}\n学生年龄:{}\n学生家长:{}\n联系方式:{}\n课时次数:{}\n' \
                           '金额:{}\n课程种类:{}\n办卡种类:{}'.format(
                        self.meminfo_data['学生姓名'],
                        self.meminfo_data['学生性别'],
                        self.meminfo_data['学生年龄'],
                        self.meminfo_data['学生家长'],
                        self.meminfo_data['联系方式'],
                        self.meminfo_data['课时次数'],
                        self.banka_data['金额'],
                        self.cb_classitem_new.currentText(),
                        self.cb_card_new.currentText()
                    )
                    reply = QMessageBox.warning(
                        self, '确认信息', hint, QMessageBox.Yes | QMessageBox.No,
                        QMessageBox.Yes)
                    if reply == QMessageBox.Yes:
                        if (self.meminfo_data['人脸特征'] == ''):
                            reply2 = QMessageBox.warning(
                                self, '确认信息', '您还没有录入人脸图像\n确认继续录入吗?',
                                QMessageBox.Yes | QMessageBox.No,
                                QMessageBox.Yes)
                            if (reply2 == QMessageBox.Yes):
                                try:
                                    flag1 = self.Insert2Banka()
                                    flag2 = self.Insert2Meminfo()
                                    if (flag1 and flag2):
                                        QMessageBox.information(
                                            self, '提示', '录入成功!',
                                            QMessageBox.Ok, QMessageBox.Ok)
                                        self.clearEditAfterNewMemberInsert()
                                    else:
                                        QMessageBox.information(
                                            self, '提示', '录入失败!',
                                            QMessageBox.Ok, QMessageBox.Ok)
                                except Exception as e:
                                    print(e)
                            else:
                                print(1)
                        else:
                            try:
                                flag3 = self.Insert2Banka()
                                flag4 = self.Insert2Meminfo()
                                if (flag3 and flag4):
                                    QMessageBox.information(
                                        self, '提示', '录入成功!', QMessageBox.Ok,
                                        QMessageBox.Ok)
                                    self.clearEditAfterNewMemberInsert()
                                else:
                                    QMessageBox.information(
                                        self, '提示', '录入失败!', QMessageBox.Ok,
                                        QMessageBox.Ok)
                            except Exception as e:
                                print(e)

        except Exception as e:
            print(e.args)
            traceback.print_exc()
            print('traceback.format_exc():\n%s' % traceback.format_exc())
コード例 #11
0
    def confrim_qiandao(self):
        try:
            if not (self.et_name == ''):
                if (int(self.meminfo_data['剩余次数']) > 1000):
                    mem_cls_left = '无限'
                    hint = '学生姓名:{}\n联系方式:{}\n课程种类:{}\n 教练姓名:{}\n上课时间:{}\n剩余次数:{}-1={}\n'.format(
                        self.meminfo_data['学生姓名'],
                        self.meminfo_data['联系方式'],
                        self.type2card[self.meminfo_data['课程种类']],
                        self.cb_coach.currentText(),
                        self.meminfo_data['上课时间'],
                        mem_cls_left,
                        mem_cls_left,
                    )
                else:
                    mem_cls_left = self.meminfo_data['剩余次数']
                    hint = '学生姓名:{}\n联系方式:{}\n课程种类:{}\n 教练姓名:{}\n上课时间:{}\n剩余次数:{}-1={}\n'.format(
                        self.meminfo_data['学生姓名'],
                        self.meminfo_data['联系方式'],
                        self.type2card[self.meminfo_data['课程种类']],
                        self.cb_coach.currentText(),
                        self.meminfo_data['上课时间'],
                        mem_cls_left,
                        int(mem_cls_left) - 1,
                    )
                reply = QMessageBox.warning(self, '确认删除?', hint,
                                            QMessageBox.Yes | QMessageBox.No,
                                            QMessageBox.Yes)
                if reply == QMessageBox.Yes:
                    tm = time.gmtime()
                    week, weekday = timefunction.FromDatetoWeek(
                        year=tm.tm_year, month=tm.tm_mon, day=tm.tm_mday)
                    sql_update_cishu = 'UPDATE  mem_info  SET mem_cls_left={} WHERE mem_name=\'{}\' and mem_phone=\'{}\' and mem_type={};'.format(
                        int(self.meminfo_data['剩余次数']) - 1,
                        self.meminfo_data['学生姓名'], self.meminfo_data['联系方式'],
                        self.meminfo_data['课程种类'])
                    sql_update_class = 'UPDATE  mem_class  SET mem_signed=1, mem_coa_name=\'{}\' WHERE mem_name=\'{}\' ' \
                                       'and mem_phone=\'{}\' ' \
                                       'and mem_type={} ' \
                                       'and year={} and week ={} and cday={} and ctime = {};'.format(
                        self.cb_coach.currentText(),
                        self.meminfo_data['学生姓名'],
                        self.meminfo_data['联系方式'],
                        self.meminfo_data['课程种类'],
                        tm.tm_year,week,weekday,
                        self.dian2int[self.meminfo_data['上课时间']]
                    )
                    print(sql_update_class)

                    flag1 = self.MySQL.UpdateFromDataBse(sql_update_cishu)
                    flag2 = self.MySQL.UpdateFromDataBse(sql_update_class)

                    if (flag1 and flag2):
                        self.selectClassList()
                        self.add_table()
                        QMessageBox.information(self, '提示', '签到成功!',
                                                QMessageBox.Ok, QMessageBox.Ok)
                    else:
                        QMessageBox.information(self, '提示', '签到失败!',
                                                QMessageBox.Ok, QMessageBox.Ok)
            else:
                QMessageBox.information(self, '提示', '没有选择学生课程!',
                                        QMessageBox.Ok, QMessageBox.Ok)
        except Exception as e:
            print(e)