コード例 #1
0
    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()
コード例 #2
0
 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)
コード例 #3
0
    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