@property<EOL><INDENT>def netHours(self):<DEDENT>
if self.specifiedHours is not None:<EOL><INDENT>return self.specifiedHours<EOL><DEDENT>elif self.category in [getConstant('<STR_LIT>'),getConstant('<STR_LIT>')]:<EOL><INDENT>return self.event.duration - sum([sub.netHours for sub in self.replacementFor.all()])<EOL><DEDENT>else:<EOL><INDENT>return sum([x.duration for x in self.occurrences.filter(cancelled=False)])<EOL><DEDENT>
For regular event staff, this is the net hours worked for financial purposes.
For Instructors, netHours is caclulated net of any substitutes.