I didn't find any clear indication on the best way to use these fields and their function, especially since there are other similar fields like TaskActStart & TaskActEnd.
1- StartDate (+EndDate &TaskDate) : What are these for exactly ? How do they work / are related with/to TaskActStart & TaskActEnd ?
[edit : guess it's for billing ?]
2- Also a few words about :
TaskID & NextTaskID : I understand they're linked to the gantt chart and help understand how tasks are linked (Linking tasks together using the gantt chart will automatically assign tasks IDs). But are there other "functions" to these fields ?
Thanks !
Comments
' THE FOLLOWING FUNCTIONS TAKE INTO ACCOUNT THAT when "CHECK" is checked, done = today (when unchecked, done is emptied)
' This is made possible through the auto assign section of the check field :
' A:done=now | E:Done=
'
' Conversely when Done is filled, "check" is checked (= -1)
' A:check=1 | E:check=
'
' I've also got some icon stuff going on also thanks to auto assign rules to make things more user friendly...
' Now... on with the functions...
'=============================================================
' when task%complete = 100, "Check" field is checked (and done = today)
'
' Serves to determine if "check" field has to be checked (+ done = todays date).
'
'=============================================================
' Use in task%complete auto assign AM:check=TaskCompleted(Check,taskPerComp)
' NOTES : ("taskPerComplete" needs to be task%complete when transc)
Function TaskCompleted(Check,taskPerComp)
if taskPerComp = 100 then
TaskCompleted = -1
elseif (taskPerComp < 100 and taskPerComp <> 0) then
TaskCompleted = 0
else
TaskCompleted = check
end if
end function
'===============================================================================================
' To allow reversing to the last Task%Complete if task accidently marked as done.
'
'===============================================================================================
' used in "task%completeLast" field equation section (a custom number field you need to create) :
TaskPerComplete_Last(Task%Complete,Task%CompleteLast, done)
Function TaskPerComplete_Last(TaskPerComplete,TaskPerCompleteLast, done)
if isnull(done) then
TaskPerComplete_Last = TaskPerComplete
else
TaskPerComplete_Last = TaskPerCompleteLast
end if
end function
'===============================================================================================
' "check" is checked --> task%complete = 100 but only if TaskActEnd and TaskActStart are not null
' Sert à déterminer si valeur de Task%complete doit être augmentée à 100. Décidé de tenir compte des champs TaskActStart et TaskActEnd pour éviter de peupler inutilement le champ Task%complete
'===============================================================================================
' used in "check" autoassign AM:task%complete=taskPerComp(Check, Task%CompleteLast, TaskActStart, TaskActEnd)
Function taskPerComp(Check, TaskPerCompleteLast, TaskActStart, TaskActEnd)
if check = -1 then
taskPerComp = 100
else
TaskPerComp = TaskPerCompleteLast
end if
end function
'=================================================================
' When DueDate hasn't been set, TaskActEnd will give it its value.
' Else it stays as it is, even if TAskActEnd changes
'
' (that is because a due date, when it's been set, has nothing to do
' with the real actual date of completion of a task.)
'=================================================================
'Used in TaskActEnd autoassign AM:duedate=DueDate_EQ_TaskActEnd( duedate,TaskActEnd )
Function DueDate_EQ_TaskActEnd( duedate,TaskActEnd ) '
if isnull(DueDate) then
DueDate_EQ_TaskActEnd = TaskActEnd
elseif isnull(TaskActEnd) then
DueDate_EQ_TaskActEnd = duedate
else
DueDate_EQ_TaskActEnd = duedate
end if
end function
'=================================================================
' When TaskActStart hasn't been set, DueDate will give it its value. Else it stays as it is, even if TAskActEnd changes.
'=================================================================
' This function is used in the duedate autoassign section : AM:taskactend=TaskActStart_EQ_DueDate(TaskActStart, duedate)
Function TaskActStart_EQ_DueDate(TaskActStart, duedate)
if isnull(TaskActStart) then
TaskActStart_EQ_DueDate = duedate
else
TaskActStart_EQ_DueDate = TaskActStart
end if
end function
'=================================================================
' When TaskActEnd hasn't been set or is : inferior to the new DueDate value AND the tast/project is not 100% complete,
' DueDate will give TaskActEnd its value.
' If the done date is inferior to the TaskActEnd Value, it'll win over and TaskActEnd will equal the done date.
' Else TaskActEnd stays as it is, even if DueDate changes.
'
' (That is because it helps seeing the time line of a project to really have taskActEnd
' to coincide with due and done dates when possible. BUT if a task has been completed ahead of
' time, it's also good to see it as such as it shows that there's more free time for other tasks !)
'=================================================================
' This function is used in Autoassign equation section of duedate and done : AM:taskactend=TaskActEnd_EQ_DueDate_or_done(TaskActEnd, duedate, done, task%Complete)
Function TaskActEnd_EQ_DueDate_or_done(TaskActEnd, duedate, done, taskPerComplete)
if isnull(TaskActEnd) then
TaskActEnd_EQ_DueDate_or_done = duedate
Elseif isnull(done) and TaskActEnd < duedate then
TaskActEnd_EQ_DueDate_or_done = duedate
Elseif not isnull(done) and done < taskActEnd then
TaskActEnd_EQ_DueDate_or_done = done
Else'if not isnull(done) and done>taskActEnd and taskPerComplete = 100 then
TaskActEnd_EQ_DueDate_or_done=taskActEnd
end if
end function
'================================================
'Pour modifier la date de done automatiquement
'================================================
'=================================================================
' When TaskActEnd and Done don't correspond, "DatesDoneMismatch" will get ticked
' + icon exclamation mark (auto assign rule in DatesDoneMismatch)
' When due date date and taskActEnd don't correspond and task is not completed, then DueDateEndDateMismatch field is ticked.
'=================================================================
' Thid function is used in the TaskActEnd and dONE auto-assign : AM:DatesDoneMismatch=DatesDone_Mismatch(TaskActEnd, Done)
Function DatesDone_Mismatch(TaskActEnd, Done)
if TaskActEnd <> Done then
DatesDone_Mismatch = -1
end if
end function
' Thid function is used in the TaskActEnd and duedate auto-assign : AM:DueDateEndDateMismatch=DueDateEndDate_Mismatch(duedate,TaskActEnd,task%complete)
Function DueDateEndDate_Mismatch(duedate,TaskActEnd, taskPerComplete)
if duedate <> taskactend and (taskPerComplete = 0 or isnull(taskPerComplete)) then
DueDateEndDate_Mismatch = -1
end if
end function