def onSchedule(self, evt): self.scheduledInput = self.selectedScheduleInput self.startDateInput.SetValue(TimeUtil.getMonday(self.startDateInput.GetValue())) self.endDateInput.SetValue(TimeUtil.getSunday(self.endDateInput.GetValue())) self.scheduledStartDate = self.startDateInput.GetValue() if not self.checkInput(): return self.resultList = list() for input in self.scheduledInput: scheduledWorkers = input[0] scheduledGroup = input[1] # 现在将工作和休息互换,算法不变 s = Scheduler(workers=list(range(len(scheduledWorkers))), dailyRequiredWorkerNum=len(scheduledWorkers) - int(scheduledGroup.workLoad), maxRestDay=self.maxWorkDaysInput.GetValue(), maxWorkDay=self.maxRestDaysInput.GetValue(), isShuffle=True) targetDays = TimeUtil.getDayLength(self.startDateInput.GetValue(), self.endDateInput.GetValue()) scheduleResult = s.schedule(int(targetDays)) if scheduleResult.message.strip() != '': wx.MessageBox(scheduledGroup.groupName + ": " + scheduleResult.message) self.resultList.append([scheduleResult.restCalendar, scheduledWorkers, scheduledGroup]) self.displayScheduleResult(self.resultList, self.scheduledStartDate) self.exportBtn.Enable(True) self.saveBtn.Enable(True) self.selectedScheduleInput = list()
def OnEnterDate(self, evt): if TimeUtil.isValidDate(self.startDateInput.GetValue()) \ and TimeUtil.isValidDate(self.endDateInput.GetValue()) \ and TimeUtil.getDayLength(self.startDateInput.GetValue(), self.endDateInput.GetValue()) > 0: self.warnMsg.Hide() self.scheduleBtn.Enable(True) else: self.warnMsg.Show() # re-layout self.vBox.Layout() self.scheduleBtn.Enable(False)
def validate(): if Constants.LICENSE_PURCHASED: return True conn = sqlite3.connect(Constants.DATABASE_ROOT_PATH + LicenseValidateUtil.LICENSE_TABLE_NAME + '.db') c = conn.cursor() c.execute("CREATE TABLE IF NOT EXISTS " + LicenseValidateUtil.LICENSE_TABLE_NAME + "(startDate VARCHAR[10], version VARCHAR[10])") c.execute("SELECT startDate FROM " + LicenseValidateUtil.LICENSE_TABLE_NAME + " WHERE version=" + Constants.APPLICATION_VERSION) startDate = c.fetchone() if startDate == None: c.execute("INSERT INTO " + LicenseValidateUtil.LICENSE_TABLE_NAME + " VALUES ('" + TimeUtil.getToday() + "','" + Constants.APPLICATION_VERSION + "')") conn.commit() conn.close() return True else: conn.close() return TimeUtil.getDayLength(startDate[0], TimeUtil.getToday()) < Constants.MAX_FREE_TRIAL_DAY