Fire up your applications with Jetfire
RSS
Jetfire Wiki

About Us

Code Plex Projects

COR COR Administration Debug GUI Jetfire Administration Jetfire Code Jetfire Core Jetfire Language Jetfire Web Part Library misc Release Notes Roles Solutions States Training User Administration Versioning Web Parts Web Service Website Design Website Procedures Wiki conventions WordML Workflow Administration

Quick Search
»
Advanced Search »

PoweredBy

Table of Contents [Hide/Show]


Jetfire Code: Timesheet

The Jetfire Code Class for Timesheet is shown below in the box. This class is used for the Timesheet application.

// T I M E S H E E T S ==============================================================
// Timesheets.txt
//===================================================================================
// Copyright (C) 2007 TrackerRealm Corporation
//===================================================================================
// T I M E S H E E T S
// Use this Timesheet Workflow submit Timeslips, vacations, sick days, etc
// Each Timesheet workflow tracks multiple timeslips for ONE project (workflow) and ONE worker
// Multiple Timesheet workflows are used to track mutiple Projects/Worker each week.
// Multiple Timesheet workflows are used to track mutiple Projects/Multiple Workers each week.
//
namespace JetfireApps 
{
	private workflow Timeslip
	{
		public Timeslip()
		{
			Subject = "Timeslip ";
			RegularOvertime = false;
			PremiumOvertime = false;
		}

		// Commands
		public void Set_Regular_OT()
		{
			RegularOvertime = true;
		}
		public void Set_Premium_OT()
		{
			PremiumOvertime = true;
		}
		// Properties
		public Workflow Project
		{
			get;
			set;
		}
		public TimeSpan Mon
		{
			get;
			set;
		}
		public TimeSpan Tue
		{
			get;
			set;
		}
		public TimeSpan Wed
		{
			get;
			set;
		}
		public TimeSpan Thu
		{
			get;
			set;
		}
		public TimeSpan Fri
		{
			get;
			set;
		}
		public TimeSpan Sat
		{
			get;
			set;
		}
		public TimeSpan Sun
		{
			get;
			set;
		}
		public bool RegularOvertime
		{
			get;
			set;
		}
		public bool PremiumOvertime
		{
			get;
			set;
		}
	}
	public workflow Timesheet 
	{
		// Add workflow constructor 
		public Timesheet() 
		{
			Subject = "Timesheet ";
			Timeslips = new List();
			OvertimeTimeslips = new List();
			ToilTimeslips = new List();
			WeekNumber = 0;
			enterstate Submitted();
		} 
      
		// The Timesheet goes thru a number of states.
		// 1. The employee fills in and then Submits the timesheet.
		// 2. The manager Approves the timesheet.
		// 3. Accounting reviews and and then Locks the timesheet.
		// From State    To State     Command
		// new           Submitted    Save
		// Submitted     Approved     Approve
		// Approved      Submitted    Un-Approve
		// Approved      Locked       Lock
		// Locked        Approved     Un-Lock
		// Add states to the workflow  
		public Submitted() { } 
		public Approved()  { } 
		public Locked()    { } 

		// Add Properties 
		public Person Worker
		{
			get;
			set;
		}
		public OrganizationUnit Department
		{
			get;
			set;
		}
		public uint WeekNumber
		{
			get;
			set;
		}
		public Date WeekEnding
		{
			get;
			set;
		}
		public List Timeslips
		{
			get;
			private set;
		}
		public List OvertimeTimeslips
		{
			get;
			private set;
		}
		public List ToilTimeslips
		{
			get;
			private set;
		}

		// Add Command Methods 
		public void Save() : states(Submitted)
		{
			enterstate Submitted();
		}
		public void Approve() : states(Submitted) 
		{
			enterstate Approved();
		}
		public void UnApprove() : states(Approved)
		{
			enterstate Submitted();
		} 
		public void Lock() : states(Approved)
		{
			enterstate Locked();
		}
		public void UnLock() : states(Locked)
		{
			enterstate Approved();
		}
		public Timeslip Add_Timeslip() : states(Submitted)
		{
			Timeslip schedule = new Timeslip();
			Timeslips.Add(schedule);
			return schedule;
		}
		public Timeslip Add_Timeslip(Timeslip schedule) : states(Submitted)
		{
			Timeslips.Add(schedule);
			return schedule;
		}
		public Timeslip Add_Overtime_Timeslip() : states(Submitted)
		{
			Timeslip schedule = new Timeslip();
			OvertimeTimeslips.Add(schedule);
			return schedule;
		}
		public Timeslip Add_Overtime_Timeslip(Timeslip schedule) : states(Submitted)
		{
			OvertimeTimeslips.Add(schedule);
			return schedule;
		}
		public Timeslip Add_TOIL_Timeslip() : states(Submitted)
		{
			Timeslip schedule = new Timeslip();
			ToilTimeslips.Add(schedule);
			return schedule;
		}
		public Timeslip Add_TOIL_Timeslip(Timeslip schedule) : states(Submitted)
		{
			ToilTimeslips.Add(schedule);
			return schedule;
		}
	}
}

See Also

Jetfire Code Library
Jetfire Code Application Library

ScrewTurn Wiki version 3.0.4.560. Some of the icons created by FamFamFam.