Esempio n. 1
0
 def Update_AutoNumbers(self, new_time):
     ds_times = dstore.Get("times")
     if(ds_times["auto_number_enable"] and ds_times["auto_number_logic"]):
         updates = ttAutonumbers.Update(self.model.GetDataframe(), new_time)                
         #self.model.Update()
         for update in updates:
             user = tableUsers.model.getUserParNr(int(update['nr']))                                                                                   
             if user != None:
                 db.update_from_dict(self.model.name, {"id":update["id"], "user_id":user["id"]})
                 print "I: auto number: update:", update['nr'], "id:", update["id"]
                 eventCalcNow.set()
                 return True #only one number at once
     return False
Esempio n. 2
0
 def setDataFromDict(self, mydict):
     print "setDataFromDict()", mydict, self.name
     
     #category changed
     if "category" in mydict:                         
         category = tableCategories.model.getCategoryParName(unicode(mydict["category"]))
         if category.empty:
             uiAccesories.showMessage(self.name+" Update error", "No category with this name "+(mydict['category'])+"!")
             return                
         mydict["category_id"] = category['id']
         del mydict["category"]           
     
     #update db from mydict
     db.update_from_dict(self.name, mydict)
Esempio n. 3
0
 def Update_AutoNumbers(self, new_time):  
     ret = False      
     ds_times = dstore.Get("times")
     if(ds_times["auto_number_enable"] and ds_times["auto_number_logic"]):
         updates = ttAutonumbers.Update(self.model.GetDataframe(), new_time)
         #print "00: Update_AutoNumbers: ", updates, time.clock()                
         #self.model.Update()
         for update in updates:
             user = tableUsers.model.getUserParNr(int(update['nr']))                                                                                   
             if user != None:
                                     
                 #update user id in db
                 if user["nr"] < 0:
                     #for civils also write name to user string
                     db.update_from_dict(self.model.name, {"id":update["id"], "user_id":user["id"], "us1":user["name"]})
                 else:    
                     db.update_from_dict(self.model.name, {"id":update["id"], "user_id":user["id"]})
                 print "I: auto number: update:", update['nr'], "id:", update["id"]
                 ret = True #only one number at once
         if ret == True:
             eventCalcNow.set()                  
     return ret
Esempio n. 4
0
 def setDataFromDict(self, mydict):
     print "setDataFromDict()", mydict, self.name
     db.update_from_dict(self.name, mydict)
Esempio n. 5
0
    def setDataFromDict(self, mydict):
        print "setDataFromDict()", mydict, self.name
                        
        #dict => df
        dfChange = pd.DataFrame([mydict])
        dfChange.set_index(dfChange.id, inplace=True)                   
                       
        #take row before change (from global df)
        dfChangedRow = self.df.loc[dfChange.id]
        #take user before change                                                        
        old_user = tableUsers.model.getUserParNr(int(dfChangedRow['nr']))
               
        #update row before change with change                 
        dfChangedRow.update(dfChange)        
        
        #category changed        
        if "nr" in mydict:            
                                                                        
            user_id = self.checkChangedNumber(dfChangedRow.iloc[0])                                                                                            
            if user_id == None: #dialog inside checkChangedNumber()
                return False
            
            #adjust dict for writing to db
            mydict["user_id"] = user_id
            if mydict["nr"] < 0:                       
                mydict["us1"] = "Civil #"+str(abs(mydict["nr"]))
            del mydict["nr"]                            
                                         
        elif "cell" in mydict:                                                                      
            pass
                      
        # TIMERAW column
        elif "timeraw" in mydict:   
                              
            try:
                dbTimeraw = TimesUtils.TimesUtils.timestring2time(mydict['timeraw'])
            except TimesUtils.TimeFormat_Error:
                uiAccesories.showMessage(self.name+" Update error", "Wrong Time format!")
                return False
            
            #adjust dict for writing to db
            mydict["time_raw"] = dbTimeraw
            del mydict["timeraw"]            

            #change the state (C -> manually Changed)            
            state = str(dfChangedRow.iloc[0]['state'])         
            mydict["state"] = "C" + state[1] + state[2]            
            

        elif "un1" in mydict:
            pass 
        elif "un2" in mydict:
            pass 
        elif "un3" in mydict:
            pass 
        elif "us1" in mydict:
            pass 
        else:
            uiAccesories.showMessage(self.name+" Update error", "Unexpecting change!")
            return False                                                                                         
                                    
        # add changed row to "changed_rows"
        # keep as dataframe otherwise float issues for "nr" and "cell"
        cleared = self.ClearCalculated(dfChangedRow.iloc[0].copy())                                                                                
        self.changed_rows = self.changed_rows.append(cleared)
        try:
            self.changed_rows["nr"] = int(self.changed_rows["nr"])                           
            self.changed_rows["cell"] = int(self.changed_rows["cell"])                           
        except:
            pass        
        eventCalcReady.clear() #s                                 
                                                                                            
        #update db from mydict            
        db.update_from_dict(self.name, mydict)
        
        #user changed => reset all times for new user
        if mydict and ("user_id" in mydict):
            #print "mazu vsechny1", mydict["user_id"]
            self.ResetCalculatedValuesForUser(mydict["user_id"])        

        #reset 1 time
        elif mydict and ("id" in mydict):
            #print "mazu neco", mydict["id"]
            self.ResetCalculatedValues(mydict["id"])
        
        if old_user and ("id" in old_user):
            print "mazu vsechny2", old_user["id"]
            self.ResetCalculatedValuesForUser(old_user["id"])
                
        #self.ResetNrOfLaps()  
        eventCalcNow.set()
        return True