def Confirm(self):
     try:
         if self.BusinessEntity == None:
             project = Project.Project(None,
                                       self.ProjectOmschrijvingVar.get(),
                                       self.ProjectIDVar.get(),
                                       self.Button.get(), True)
             if project.Button == '': project.Button = None
             bl = BLProject.BLProject(self.Connection)
             bl.Create(project)
         else:
             project = self.BusinessEntity
             project.Description = self.ProjectOmschrijvingVar.get()
             project.ExterneId = self.ProjectIDVar.get()
             project.Button = self.Button.get()
             if project.Button == '': project.Button = None
             bl = BLProject.BLProject(self.Connection)
             bl.Update(project)
     except sqlite3.IntegrityError as e:
         messagebox.showerror('Error', 'Button must be unique')
         Logger.LogError(str(e))
         return
     except Exception as e:
         Logger.LogError(str(e))
         return
     finally:
         self.Quit()
Esempio n. 2
0
    def Confirm(self):
        # projectID = self.conn.GetProjectID(self.ProjectValue.get())
        # recordTypeID = self.conn.GetRecordTypeID(self.RecordTypeValue.get())
        # self.conn.UpdateSelectedRecord(self.RecordID,projectID,recordTypeID,self.StartDate.get(),self.EndDate.get(),self.DescriptionValue.get())
        blTr = BLTimeRecord.BLTimeRecord(self.Connection)
        blPr = BLProject.BLProject(self.Connection)
        blRt = BLRecordType.BLRecordType(self.Connection)
        Tr = blTr.GetById(self.RecordID)
        Tr.Description = self.DescriptionValue.get()
        timeString = Globals.ConvertToAmericanDate(self.TimeRecord.Date) + ' 00:00'
        Tr.StartHour = self.GetDate(timeString,self.StartDate.get())
        if not self.EndDate.get() =='':           
            Tr.EndHour = self.GetDate(Tr.StartHour,self.EndDate.get())
        Tr.ProjectID = blPr.GetProjectIDFromDescription(self.ProjectValue.get())
        Tr.RecordTypeID = blRt.GetRecordTypeIDFromDescription(self.RecordTypeValue.get())
        Tr.Km = self.KmValue.get()
        oneNoteLink = self.OneNoteValue.get()
        try:
            if not oneNoteLink=="" and not oneNoteLink.startswith("onenote"):
                secondPart = oneNoteLink.split("onenote")[1]
                oneNoteLink = "onenote"+secondPart
        except:
            oneNoteLink = ""
            messagebox.showerror('Error',"No valid link found")
            return

        Tr.OneNoteLink = oneNoteLink

        if not self.IsNew:
            blTr.Update(Tr)
        else:
            Tr.StatusID = TimeRecordStatusEnum.TimeRecordStatusEnum.Gestopt.value
            blTr.Create(Tr)
        self.Master.quit()
Esempio n. 3
0
 def CheckForUpdatesFromController(self):
     if not self.Queue.empty():
         queue = self.Queue.get()
         blPr = BLProject.BLProject(self.dbConnection)
         project = blPr.GetByButton(queue)
         if project is not None:
             print(project.Description)
             recordType = 1
             blTr = BLTimeRecord.BLTimeRecord(self.dbConnection)
             for record in self.Cache.TimeRecords:
                 if record.StatusID == TimeRecordStatusEnum.TimeRecordStatusEnum.Gestart.value:
                     record.StatusID = TimeRecordStatusEnum.TimeRecordStatusEnum.Gestopt.value
                     record.EndHour = Globals.GetCurrentTime()
                     blTr.Update(record)
             timeRecord = TimeRecord.TimeRecord(
                 None, Globals.GetCurrentTime(), None, project.ID,
                 recordType, 'Automatically generated',
                 TimeRecordStatusEnum.TimeRecordStatusEnum.Gestart.value, 0,
                 None, None)
             valid = TimeRecordValidation.TimeRecordValidation()
             validationMessage = valid.ValidateOnCreation(timeRecord)
             if not len(validationMessage) == 0:
                 errorMessage = ''
                 for i in validationMessage:
                     errorMessage = errorMessage + i + '\n'
                 messagebox.showerror('Error', errorMessage)
             else:
                 index = self.DaysCombo.current()
                 blTr.Create(timeRecord)
                 self.Cache.RefreshAllStaticData()
                 self.FillCombos()
                 if index == -1: index = 0
                 self.DaysCombo.current(index)
                 self.RefreshTimeRecords()
     self.Master.after(500, self.CheckForUpdatesFromController)
Esempio n. 4
0
 def Delete(self):
     sel = self.ProjectsListBox.curselection()[0]
     project = self.GetProject(sel)
     bl = BLProject.BLProject(self.Connection)
     bl.DeleteByID(project.ID)
     self.Cache.RefreshProjects()
     self.FillProjects()
Esempio n. 5
0
 def ToggleActivation(self):
     sel = self.ProjectsListBox.curselection()[0]
     project = self.Cache.AllProjects[sel]
     if project.Active == 0:
         project.Active = 1
     else:
         project.Active = 0
         project.Button = None
     bl = BLProject.BLProject(self.Connection)
     bl.Update(project)
     self.Cache.RefreshProjects()
     self.FillProjects()
Esempio n. 6
0
def ClearUserTables(dbConn):
    config = configparser.ConfigParser()
    config.read('config.ini')
    reset = int(config['RESET']['Reset'])
    if reset == 1:
        blPr = BLProject.BLProject(dbConn)
        blTr = BLTimeRecord.BLTimeRecord(dbConn)
        blPr.DeleteAll()
        blTr.DeleteAll()
        config['RESET']['Reset'] = '0'  # create

        with open('config.ini', 'w') as configfile:  # save
            config.write(configfile)
Esempio n. 7
0
 def __init__(self, conn):
     Logger.LogInfo('Cache: Initializing Cache')
     self.blTrv = BLTimeRecordView.BLTimeRecordView(conn)
     self.blVwD = BLDayView.BLDayView(conn)
     self.blPr = BLProject.BLProject(conn)
     self.blRt = BLRecordType.BLRecordType(conn)
     self.blTr = BLTimeRecord.BLTimeRecord(conn)
     self.DayViews = self.blVwD.GetAll()
     self.ActiveProjects = self.blPr.GetAll(False)
     self.AllProjects = self.blPr.GetAll()
     self.RecordTypes = self.blRt.GetAll()
     self.TimeRecordViews = []
     self.TimeRecords = []
     Logger.LogInfo('Cache: Cache initialized')
Esempio n. 8
0
def CopyToCodex(dbConn, date):
    try:
        blTr = BLTimeRecord.BLTimeRecord(dbConn)
        timeRecords = blTr.GetAllForDate(date)
        blPr = BLProject.BLProject(dbConn)
        blRt = BLRecordType.BLRecordType(dbConn)
        sequence = ''
        for item in timeRecords:
            item1 = blPr.GetProjectExterneID(item.ProjectID)
            item2 = blRt.GetRecordTypeExterneID(item.RecordTypeID)
            s1Time = time.strptime(item.StartHour, "%Y-%m-%d %H:%M")
            s2Time = time.strptime(item.EndHour, "%Y-%m-%d %H:%M")
            item3 = time.strftime("%H:%M", s1Time)
            item4 = time.strftime("%H:%M", s2Time)
            item5 = item.Description
            s = ""
            string1 = ""
            string2 = ""
            item.StatusID = TimeRecordStatusEnum.TimeRecordStatusEnum.Gekopieerd.value
            blTr.Update(item)
            if len(item5) > 30:
                items = item5.split(" ")
                countChar = 0

                indexToSplit = 0
                for i in range(0, len(items)):
                    countChar = countChar + len(items[i])
                    if i > 30:
                        indexToSplit = i - 1
                        break
                filler = " "
                if indexToSplit == 0:
                    indexToSplit = 30
                    filler = ""
                list1 = item5[0:indexToSplit]
                list2 = item5[indexToSplit:]
                string1 = filler.join(list1)
                string2 = filler.join(list2)
            else:
                string1 = item5
            km = "\t"
            if not item.Km is None:
                km = str(item.Km) + "\t"
            line = (item1, "\t", "\t", "\t", item2, "\t", "\t", "\t", km, "\t",
                    item3, "\t", item4, "\t", string1, "\t", string2, "\n")
            sequence = sequence + s.join(line)
        return sequence
    except Exception as e:
        Logger.LogError(str(e))