예제 #1
0
    def Compute(self)-> Timesheet:                
        if( self.Timesheet is not None):
            # computer  total legal hours and overtimehours
            dailyTimeObject =  TimeObject(self.DailyExpectedHours * 60 * 60 * 1000);
            unpayThreshold  =  TimeObject(self.WeeklyUnPayOvertimeHours * 60 * 60 * 1000);
            if(self.Timesheet.Projects.Total.Hours > dailyTimeObject):

                overtimeDiff  =  (self.Timesheet.Project.Total   - dailyTimeObject)
                if(overtimeDiff  > unpayThreshold):
                    self.Timesheet.OverTimeWeeklyHours   = overtimeDiff - unpayThreshold;
            self.Timesheet.TotalLegalWeeklyHours =  self.Timesheet.Projects.Total   - self.Timesheet.OverTimeWeeklyHours
예제 #2
0
 def __init__(self, uid: str):
     super().__init__()
     self.__TitleHeader = ""
     self.__Title = ""
     self.__UID = uid
     self.__WeekEndingSunday = ""
     self.__EmployeeName = self.__UID
     self.__Department = ""
     self.__ProjectHeaders = list()
     self.__Projects = ProjectCollection()
     self.__Description = ""
     self.__ElapseHours = TimeObject(0.0)
     self.__OverTimeHours = TimeObject(0.0)
     self.__TotalLegalHours = TimeObject(0.0)
     self.__Template = ""
예제 #3
0
    def __init__(self):
        self.__Timesheets = dict()
        self.__Timesheets[DayOfWeekType.MONDAY] = TimeObject(0)
        self.__Timesheets[DayOfWeekType.TUESDAY] = TimeObject(0)
        self.__Timesheets[DayOfWeekType.WEDNESDAY] = TimeObject(0)
        self.__Timesheets[DayOfWeekType.THURSDAY] = TimeObject(0)
        self.__Timesheets[DayOfWeekType.FRIDAY] = TimeObject(0)
        self.__Timesheets[DayOfWeekType.SATURDAY] = TimeObject(0)
        self.__Timesheets[DayOfWeekType.SUNDAY] = TimeObject(0)

        self.__TotalTimeObject = TimeObject(0)
예제 #4
0
    def __init__(self, seconds):
        super().__init__("Timesheet.recorder.Elapse.event")
        if (type(seconds) != float):
            if (type(seconds) != int):
                raise TypeError(
                    "@ElapseEventArgs: expecting parameter 1 to be a floating number"
                )

        milliseconds = 1000 * seconds
        self.__Elapsed = TimeObject(milliseconds)
예제 #5
0
 def __init__(self,
              orderNumber: str,
              projectType=ProjectType.USER_DEFINED_PROJECT):
     if (type(orderNumber) != str):
         raise TypeError("@Project: expecting a order number to be string")
     self.RSRCE = ""
     self.__WorkOrderNumber = orderNumber
     self.__ContractNumber = orderNumber
     self.__TimeHistory = WeeklyTimeHistory()
     self.__projectType = projectType
     self.__Description = ""
     self.__WeeklyHours = TimeObject(0)
예제 #6
0
 def send_time(self, now):
     if self.buddy.online: print 'spam buddy is online'
     else: print 'spam buddy is not online'
     self.lastIteration = now
     print 'sending spam to ' + self.spamUser
     cTime = TimeObject.current_time()
     if cTime.is_after(self.destTime):
         print 'passed time: %s > %s' % (str(cTime), str(self.destTime))
     else:
         timeRemaining = cTime.time_until(self.destTime)
         msg = str(timeRemaining) + ' left, bro'
         conv = purple.Conversation('IM', self.account, self.spamUser)
         conv.new()
         conv.im_send(msg)
         print 'sent: ' + msg + ' to aim:' + self.spamUser
예제 #7
0
 def send_time(self, now):
     if self.buddy.online: print 'spam buddy is online'
     else: print 'spam buddy is not online'
     self.lastIteration = now
     print 'sending spam to ' + self.spamUser
     cTime = TimeObject.current_time()
     if cTime.is_after(self.destTime):
         print 'passed time: %s > %s' % (str(cTime), str(self.destTime))
     else:
         timeRemaining = cTime.time_until(self.destTime)
         msg = str(timeRemaining) + ' left, bro'
         conv = purple.Conversation('IM', self.account, self.spamUser)
         conv.new()
         conv.im_send(msg)
         print 'sent: ' + msg + ' to aim:' + self.spamUser
예제 #8
0
 def FixedElapseWeeklyHours(self):
     total = TimeObject(0.0)
     for project in self.FixedRecords:
         total += project.WeeklyElapseHours
     return total
예제 #9
0
 def __init__(self):
     self.__Headers = list()
     self.__Records = list()
     self.__FixedRecords = list()
     self.__FixedElapseHours = TimeObject(0.0)
     self.__ElapseHours = TimeObject(0.0)
예제 #10
0
 def Insert(self, weekday: DayOfWeekType, miliseconds: float):
     if (self.ValidWeekday(weekday)):
         self.__Timesheets[weekday] = TimeObject(miliseconds)
예제 #11
0
 def Update(self, weekday: DayOfWeekType, millseconds: float):
     status = False
     if (self.ValidWeekday(weekday)):
         self.__Timesheets[weekday] += TimeObject(millseconds)
         status = True
     return status
예제 #12
0
 def Total(self):
     result = TimeObject(0)
     for key in self.__Timesheets:
         timeobject = self.__Timesheets[key]
         result += timeobject
     return result
예제 #13
0
                      dest='destination',
                      help='the destination time of day')

    (options, arg) = parser.parse_args()
    username, password, interval, victim, destination = [None] * 5
    if not options.user:
        sys.stdout.write('Enter AIM account: ')
        username = sys.stdin.readline().rstrip()
    else:
        username = options.user
    if not options.password:
        password = getpass.getpass()
    else:
        password = options.password
    if not options.interval:
        interval = TimeObject(hour=0, minute=30, second=0)
    else:
        interval = TimeObject(options.interval)
    if not options.victim:
        sys.stdout.write('Enter AIM victim: ')
        victim = sys.stdin.readline().rstrip()
    else:
        victim = options.victim
    if not options.destination:
        destination = TimeObject(hour=17, minute=30, second=0)
    else:
        destination = TimeObject(options.destination)

    print 'Using aim:%s to spam aim:%s at interval of %s until %s' % (
        username, victim, str(interval), str(destination))