AutoUpdate Parents with TImeWorked: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
[[File:Placeholder|right|300px]] | [[File:Placeholder|right|300px]] | ||
<pre> | |||
#############################################################################<br /># | #############################################################################<br /># | ||
# Scrip name: | # Scrip name: WorkFlow MemberOf on Time<br /># Description: Automatically add "Time Worked" to all vertical and horizontal<br /># parent tickets<br /># | ||
# Condition: | # Condition: User Defined<br /># Action: User Defined<br /># Template: Global template: Blank<br /># Stage: TransactionBatch<br /># Written: 12/10/2010 - Kenn Crocker<br /># | ||
# Modified: | # Modified: MM/DD/YYYY - Name/comments<br /># | ||
#############################################################################<br /># | #############################################################################<br /># | ||
#----------------------------------------------------------------------------<br /># Custom condition:<br />#----------------------------------------------------------------------------<br /># Set initial values | #----------------------------------------------------------------------------<br /># Custom condition:<br />#----------------------------------------------------------------------------<br /># Set initial values | ||
| Line 16: | Line 17: | ||
return 1; | return 1; | ||
#---------------------------------------------------------------------------- | #---------------------------------------------------------------------------- | ||
# Custom action preparation code: | |||
#---------------------------------------------------------------------------- | |||
# Set initial values | |||
my $trans = $self->TransactionObj;<br />my $ticket = $self->TicketObj; | my $trans = $self->TransactionObj;<br />my $ticket = $self->TicketObj; | ||
my $Time = (($trans->NewValue) - ($trans->OldValue)); | |||
my $MemberOf = $ticket->MemberOf; | |||
# get out if current ticket is not a "MemeberOf" (child of some parent) | # get out if current ticket is not a "MemeberOf" (child of some parent) | ||
| Line 24: | Line 30: | ||
return 0 unless $MemberOf; | return 0 unless $MemberOf; | ||
# Loop thru each parent and add the Child's "TimeWorked" to them | # Loop thru each parent and add the Child's "TimeWorked" to them | ||
# You can skip a parent ticket if it is not in active state by uncommenting | |||
# the next statement | |||
while( my $l = $MemberOf->Next ) | while( my $l = $MemberOf->Next ) { | ||
# next unless( $l->TargetObj->Status =~ /^(?:new|open|stalled)$/ ); | |||
my $ParentTime = $l->TargetObj->TimeWorked; | |||
my $NewTime = ($ParentTime + $Time); | |||
$l->TargetObj->SetTimeWorked($NewTime); | |||
} | |||
return 1; | return 1; | ||
#---------------------------------------------------------------------------- | #---------------------------------------------------------------------------- | ||
# Custom action cleanup code: None | |||
#---------------------------------------------------------------------------- | |||
return 1; | |||
</pre> | |||
Revision as of 05:51, 1 April 2013
#############################################################################<br />#
# Scrip name: WorkFlow MemberOf on Time<br /># Description: Automatically add "Time Worked" to all vertical and horizontal<br /># parent tickets<br />#
# Condition: User Defined<br /># Action: User Defined<br /># Template: Global template: Blank<br /># Stage: TransactionBatch<br /># Written: 12/10/2010 - Kenn Crocker<br />#
# Modified: MM/DD/YYYY - Name/comments<br />#
#############################################################################<br />#
#----------------------------------------------------------------------------<br /># Custom condition:<br />#----------------------------------------------------------------------------<br /># Set initial values
my $trans = $self->TransactionObj;<br />my $ticket = $self->TicketObj;
# Get out if not for "TimeWorked"
return 0 unless ($trans->Type eq 'Set' &&<br />$trans->Field eq 'TimeWorked');
return 1;
#----------------------------------------------------------------------------
# Custom action preparation code:
#----------------------------------------------------------------------------
# Set initial values
my $trans = $self->TransactionObj;<br />my $ticket = $self->TicketObj;
my $Time = (($trans->NewValue) - ($trans->OldValue));
my $MemberOf = $ticket->MemberOf;
# get out if current ticket is not a "MemeberOf" (child of some parent)
return 0 unless $MemberOf;
# Loop thru each parent and add the Child's "TimeWorked" to them
# You can skip a parent ticket if it is not in active state by uncommenting
# the next statement
while( my $l = $MemberOf->Next ) {
# next unless( $l->TargetObj->Status =~ /^(?:new|open|stalled)$/ );
my $ParentTime = $l->TargetObj->TimeWorked;
my $NewTime = ($ParentTime + $Time);
$l->TargetObj->SetTimeWorked($NewTime);
}
return 1;
#----------------------------------------------------------------------------
# Custom action cleanup code: None
#----------------------------------------------------------------------------
return 1;