From 2f386e7146708ddf95832f809395a28d91f7e4e1 Mon Sep 17 00:00:00 2001 From: Roy Johnson Date: Wed, 26 Apr 2006 23:40:07 +0000 Subject: [PATCH] Think everything is converted for the temporary prereq system. --- .../Asset/Wobject/EventManagementSystem.pm | 597 ++++++++---------- 1 file changed, 248 insertions(+), 349 deletions(-) diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index a908e02c7..03b42ea8b 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -325,8 +325,8 @@ sub checkConflicts { # make sure it's a subevent... my ($isSubEvent) = $self->session->db->quickArray(" - select count(*) from EventManagementSystem_prerequisites - where productId=?", [$scheduleData->{productId}] + select count(*) from EventManagementSystem_products + where prerequisiteId is not null and productId=?", [$scheduleData->{productId}] ); next unless ($isSubEvent); @@ -832,67 +832,67 @@ sub getRequiredEventNames { } #------------------------------------------------------------------ -sub findSubEvents { - my $self = shift; - my $eventId = shift; - my $returnEverythingFlag = shift; - - my $eventsInCart = $self->getEventsInScratchCart; - - # Get the prerequisites for the sub events passed in - my $subEventPrerequisites = $self->getSubEventPrerequisites($eventId); - - # Now we need to see if the prerequisites are satisfied - my @failedSubEvents; - my @subEvents; - foreach my $subEventPrerequisite (keys %{$subEventPrerequisites}) { - - my ($prerequisiteId, $productId) = split(':',$subEventPrerequisite); - - # Is this an 'And' or an 'Or' prerequisite - my $operator = $subEventPrerequisites->{$subEventPrerequisite}; - - # All of the required events per this prerequisite definition - my @requiredEventList = $self->session->db->buildArray(" - select requiredProductId from EventManagementSystem_prerequisiteEvents - where prerequisiteId=".$self->session->db->quote($prerequisiteId) - ); - - # Check to see that every required prerequisite is met - # - # If a sub-event fails one of it's prerequisites we'll push the productId onto a failure list - # At the end, we'll only return events whos productId is not in the failure list. - # - if ($operator eq 'and') { # make sure every required event is in the users cart - foreach my $requiredEvent (@requiredEventList) { - unless ( WebGUI::Utility::isIn($requiredEvent, @{$eventsInCart}) ) { - push (@failedSubEvents, $productId); - last; - } - } - } elsif ($operator eq 'or') { # make sure one of the required events is in the users cart - - my $atLeastOneFlag = 0; - foreach my $requiredEvent (@requiredEventList) { - if ( WebGUI::Utility::isIn($requiredEvent, @{$eventsInCart}) ) { - $atLeastOneFlag = 1; - last; - } - } - push(@failedSubEvents, $productId) unless ($atLeastOneFlag); - } - } - - # Return list of - - # Check our list against the failed events, return productIds of valid subevents - foreach my $subEvent (keys %{$subEventPrerequisites}) { - - my ($prerequisiteId, $productId) = split(':', $subEvent); - push (@subEvents, $productId) unless (WebGUI::Utility::isIn($productId, @failedSubEvents)); - } - return \@subEvents; -} +#sub findSubEvents { +# my $self = shift; +# my $eventId = shift; +# my $returnEverythingFlag = shift; +# +# my $eventsInCart = $self->getEventsInScratchCart; +# +# # Get the prerequisites for the sub events passed in +# my $subEventPrerequisites = $self->getSubEventPrerequisites($eventId); +# +# # Now we need to see if the prerequisites are satisfied +# my @failedSubEvents; +# my @subEvents; +# foreach my $subEventPrerequisite (keys %{$subEventPrerequisites}) { +# +# my ($prerequisiteId, $productId) = split(':',$subEventPrerequisite); +# +# # Is this an 'And' or an 'Or' prerequisite +# my $operator = $subEventPrerequisites->{$subEventPrerequisite}; +# +# # All of the required events per this prerequisite definition +# my @requiredEventList = $self->session->db->buildArray(" +# select requiredProductId from EventManagementSystem_prerequisiteEvents +# where prerequisiteId=".$self->session->db->quote($prerequisiteId) +# ); +# +# # Check to see that every required prerequisite is met +# # +# # If a sub-event fails one of it's prerequisites we'll push the productId onto a failure list +# # At the end, we'll only return events whos productId is not in the failure list. +# # +# if ($operator eq 'and') { # make sure every required event is in the users cart +# foreach my $requiredEvent (@requiredEventList) { +# unless ( WebGUI::Utility::isIn($requiredEvent, @{$eventsInCart}) ) { +# push (@failedSubEvents, $productId); +# last; +# } +# } +# } elsif ($operator eq 'or') { # make sure one of the required events is in the users cart +# +# my $atLeastOneFlag = 0; +# foreach my $requiredEvent (@requiredEventList) { +# if ( WebGUI::Utility::isIn($requiredEvent, @{$eventsInCart}) ) { +# $atLeastOneFlag = 1; +# last; +# } +# } +# push(@failedSubEvents, $productId) unless ($atLeastOneFlag); +# } +# } +# +# # Return list of +# +# # Check our list against the failed events, return productIds of valid subevents +# foreach my $subEvent (keys %{$subEventPrerequisites}) { +# +# my ($prerequisiteId, $productId) = split(':', $subEvent); +# push (@subEvents, $productId) unless (WebGUI::Utility::isIn($productId, @failedSubEvents)); +# } +# return \@subEvents; +#} #------------------------------------------------------------------ sub getRegistrationInfo { @@ -931,150 +931,150 @@ sub getRegistrationInfo { } #------------------------------------------------------------------ -sub getSubEventPrerequisites { - my $self = shift; - my $eventId = shift; - - # All prerequisiteIds, and operators where eventId is listed as a requiredEvent - # - # This will give us the prerequisite definitions which require the eventId passed in. - - my $prerequisites = $self->session->db->buildHashRef(" - select distinct(pe.prerequisiteId), pr.productId, pr.operator - from EventManagementSystem_prerequisiteEvents as pe, EventManagementSystem_prerequisites as pr - where - pe.requiredProductId=".$self->session->db->quote($eventId)." - and pe.prerequisiteId = pr.prerequisiteId" - ); - - # A subevent can have more than one prerequisite definition and the second or third, etc - # may require other events before they should be listed as a sub-event to the parentId passed in. - # So, we can't search for them the way we did above. - # - # We need to look up these prerequisites by getting the productId from the prerequisites table - # for all of the prerequisiteIds returned above and use it to search the prerequisites table again - # for any more entries that contain that productId. The productId is the id of the parent event. - # This gives us all prerequistes defined for the parent product. - # - - # Make a copy of the $prerequisites hash so we can use it for itteration and insert any newly found - # prerequisites into the $prerequisites hash. Apparently looping through a hash and adding keys to it - # is a no no. - my %tempHash = %{$prerequisites}; - - foreach my $prerequisiteId (keys %tempHash) { - - $prerequisiteId =~ s/^(.*):.*$/$1/; #strip the productId from the key for our query - - my $otherPrerequisites = $self->session->db->buildHashRef(" - select prerequisiteId, productId, operator from EventManagementSystem_prerequisites - where productId = - (select productId from EventManagementSystem_prerequisites - where prerequisiteId =".$self->session->db->quote($prerequisiteId).") - "); - - foreach my $otherPrerequisiteId (keys %{$otherPrerequisites}) { - $prerequisites->{$otherPrerequisiteId} = $otherPrerequisites->{$otherPrerequisiteId}; - } - } - return $prerequisites; -} +#sub getSubEventPrerequisites { +# my $self = shift; +# my $eventId = shift; +# +# # All prerequisiteIds, and operators where eventId is listed as a requiredEvent +# # +# # This will give us the prerequisite definitions which require the eventId passed in. +# +# my $prerequisites = $self->session->db->buildHashRef(" +# select distinct(pe.prerequisiteId), pr.productId, pr.operator +# from EventManagementSystem_prerequisiteEvents as pe, EventManagementSystem_prerequisites as pr +# where +# pe.requiredProductId=".$self->session->db->quote($eventId)." +# and pe.prerequisiteId = pr.prerequisiteId" +# ); +# +# # A subevent can have more than one prerequisite definition and the second or third, etc +# # may require other events before they should be listed as a sub-event to the parentId passed in. +# # So, we can't search for them the way we did above. +# # +# # We need to look up these prerequisites by getting the productId from the prerequisites table +# # for all of the prerequisiteIds returned above and use it to search the prerequisites table again +# # for any more entries that contain that productId. The productId is the id of the parent event. +# # This gives us all prerequistes defined for the parent product. +# # +# +# # Make a copy of the $prerequisites hash so we can use it for itteration and insert any newly found +# # prerequisites into the $prerequisites hash. Apparently looping through a hash and adding keys to it +# # is a no no. +# my %tempHash = %{$prerequisites}; +# +# foreach my $prerequisiteId (keys %tempHash) { +# +# $prerequisiteId =~ s/^(.*):.*$/$1/; #strip the productId from the key for our query +# +# my $otherPrerequisites = $self->session->db->buildHashRef(" +# select prerequisiteId, productId, operator from EventManagementSystem_prerequisites +# where productId = +# (select productId from EventManagementSystem_prerequisites +# where prerequisiteId =".$self->session->db->quote($prerequisiteId).") +# "); +# +# foreach my $otherPrerequisiteId (keys %{$otherPrerequisites}) { +# $prerequisites->{$otherPrerequisiteId} = $otherPrerequisites->{$otherPrerequisiteId}; +# } +# } +# return $prerequisites; +#} #------------------------------------------------------------------ -sub getSubEvents { - my $self = shift; - my $eventIds = shift; - my $subEvents; - my @subEventData; -# my $eventsInCart = $self->getEventsInCart; - my $eventsInCart = $self->getEventsInScratchCart; - #use Data::Dumper; - # $self->session->errorHandler->warn("getsubevents:
".Dumper($eventIds)."
"); - foreach my $eventId (@$eventIds) { - - $subEvents = $self->findSubEvents($eventId); - foreach my $subEventId (@$subEvents) { - # Query to get event details - my $subEventFields = $self->session->db->read(" - select productId, title, price, description - from products - where - productId = ".$self->session->db->quote($subEventId)." - and productId not in (".$self->session->db->quoteAndJoin($eventsInCart).")" - ); - push (@subEventData, $subEventFields); - } - } - - return \@subEventData; -} +#sub getSubEvents { +# my $self = shift; +# my $eventIds = shift; +# my $subEvents; +# my @subEventData; +## my $eventsInCart = $self->getEventsInCart; +# my $eventsInCart = $self->getEventsInScratchCart; +# #use Data::Dumper; +# # $self->session->errorHandler->warn("getsubevents:
".Dumper($eventIds)."
"); +# foreach my $eventId (@$eventIds) { +# +# $subEvents = $self->findSubEvents($eventId); +# foreach my $subEventId (@$subEvents) { +# # Query to get event details +# my $subEventFields = $self->session->db->read(" +# select productId, title, price, description +# from products +# where +# productId = ".$self->session->db->quote($subEventId)." +# and productId not in (".$self->session->db->quoteAndJoin($eventsInCart).")" +# ); +# push (@subEventData, $subEventFields); +# } +# } +# +# return \@subEventData; +#} #------------------------------------------------------------------ -sub getSubEventForm { - my $self = shift; - my $pids = shift; - my $subEvents = $self->getSubEvents($pids); - my @usedEventIds; - my %var; - my @arr = $self->session->form->param("subEventPID"); - return undef if ($self->session->form->process("method") eq 'addSubEvents' && !scalar(@arr)); - my $i18n = WebGUI::International->new($self->session, 'Asset_EventManagementSystem'); - - $var{'form.header'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl}) - .WebGUI::Form::hidden($self->session,{name=>"func",value=>"addToCart"}) - .WebGUI::Form::hidden($self->session,{name=>"method",value=>"addSubEvents"} - ); - - $var{'form.footer'} = WebGUI::Form::formFooter($self->session); - $var{'form.submit'} = WebGUI::Form::Submit($self->session); - $var{'message'} = $i18n->get('allowed sub events'); - - my @subEventLoop; - foreach my $subEvent (@$subEvents) { - while (my $eventData = $subEvent->hashRef) { - - # Track used event ids so we can prevent listing a subevent more than once. - next if (WebGUI::Utility::isIn($eventData->{productId}, @usedEventIds)); - next if $self->checkConflicts($eventData->{productId}); - push (@usedEventIds, $eventData->{productId}); - - push(@subEventLoop, { - 'form.checkBox' => WebGUI::Form::checkbox($self->session, { - value => $eventData->{productId}, - name => "subEventPID"}), - 'title' => $eventData->{title}, - 'description' => $eventData->{description}, - 'price' => $eventData->{price} - }); - } - } - - return '' unless scalar(@subEventLoop); - - my $scratchCart = [split("\n",$self->session->scratch->get('EMS_scratch_cart'))]; - - foreach (@$scratchCart) { - my $details = $self->getEventDetails($_); - push(@subEventLoop, { - 'form.checkBox' => WebGUI::Form::checkbox($self->session, { - value => 1, - checked => 1, - name => "subEventDisregard", - extras => 'disabled="disabled"', - }), - 'title' => $details->{title}, - 'description' => $details->{description}, - 'price' => $details->{price} - }); - } - - $var{'subevents_loop'} = \@subEventLoop; - $var{'chooseSubevents'} = 1; - my $output; - $output = \%var if scalar(@subEventLoop); - - return $output; -} +#sub getSubEventForm { +# my $self = shift; +# my $pids = shift; +# my $subEvents = $self->getSubEvents($pids); +# my @usedEventIds; +# my %var; +# my @arr = $self->session->form->param("subEventPID"); +# return undef if ($self->session->form->process("method") eq 'addSubEvents' && !scalar(@arr)); +# my $i18n = WebGUI::International->new($self->session, 'Asset_EventManagementSystem'); +# +# $var{'form.header'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl}) +# .WebGUI::Form::hidden($self->session,{name=>"func",value=>"addToCart"}) +# .WebGUI::Form::hidden($self->session,{name=>"method",value=>"addSubEvents"} +# ); +# +# $var{'form.footer'} = WebGUI::Form::formFooter($self->session); +# $var{'form.submit'} = WebGUI::Form::Submit($self->session); +# $var{'message'} = $i18n->get('allowed sub events'); +# +# my @subEventLoop; +# foreach my $subEvent (@$subEvents) { +# while (my $eventData = $subEvent->hashRef) { +# +# # Track used event ids so we can prevent listing a subevent more than once. +# next if (WebGUI::Utility::isIn($eventData->{productId}, @usedEventIds)); +# next if $self->checkConflicts($eventData->{productId}); +# push (@usedEventIds, $eventData->{productId}); +# +# push(@subEventLoop, { +# 'form.checkBox' => WebGUI::Form::checkbox($self->session, { +# value => $eventData->{productId}, +# name => "subEventPID"}), +# 'title' => $eventData->{title}, +# 'description' => $eventData->{description}, +# 'price' => $eventData->{price} +# }); +# } +# } +# +# return '' unless scalar(@subEventLoop); +# +# my $scratchCart = [split("\n",$self->session->scratch->get('EMS_scratch_cart'))]; +# +# foreach (@$scratchCart) { +# my $details = $self->getEventDetails($_); +# push(@subEventLoop, { +# 'form.checkBox' => WebGUI::Form::checkbox($self->session, { +# value => 1, +# checked => 1, +# name => "subEventDisregard", +# extras => 'disabled="disabled"', +# }), +# 'title' => $details->{title}, +# 'description' => $details->{description}, +# 'price' => $details->{price} +# }); +# } +# +# $var{'subevents_loop'} = \@subEventLoop; +# $var{'chooseSubevents'} = 1; +# my $output; +# $output = \%var if scalar(@subEventLoop); +# +# return $output; +#} #------------------------------------------------------------------ sub prerequisiteIsMet { @@ -1752,34 +1752,13 @@ sub www_editEvent { ); } -# my $prerequisiteList = $self->getPrerequisiteEventList($pid); -# if ( scalar(keys %{$prerequisiteList}) > 0) { -# $f->checkList( -# -name => "eventList", -# -options => $prerequisiteList, -# -vertical => 1, -# -label => $i18n->get("add/edit event required events"), -# -hoverHelp => $i18n->get("add/edit event required events description"), -# -sortByValue => 1 -# ); -# -# $f->radioList( -# -name => "requirement", -# -options => { 'and' => $i18n->get("and"), -# 'or' => $i18n->get("or"), -# }, -# -value => 'and', -# -label => $i18n->get("add/edit event operator"), -# -hoverHelp => $i18n->get("add/edit event operator description"), -# ); - $f->selectBox( -name => "whatNext", -label => $i18n->get("add/edit event what next"), -hoverHelp => $i18n->get("add/edit event what next"), -options => { # "addAnotherPrereq" => $i18n->get("add/edit event add another prerequisite"), - "managePrereqs" => $i18n->get("manage prerequisites"), + #"managePrereqs" => $i18n->get("manage prerequisites"), "return" => $i18n->get("add/edit event return to manage events"), }, -defaultValue => "return" @@ -1794,8 +1773,10 @@ sub www_editEvent { my $list = $self->getAssignedPrerequisites($pid); foreach my $prerequisiteId (keys %{$list}) { - my $line = $self->session->icon->delete('func=deletePrerequisite;pid='.$pid.';id='.$prerequisiteId, - $self->getUrl, $i18n->get('confirm delete prerequisite'))." "; + + # Disable until the new prereq UI is in place + #my $line = $self->session->icon->delete('func=deletePrerequisite;pid='.$pid.';id='.$prerequisiteId, + # $self->getUrl, $i18n->get('confirm delete prerequisite'))." "; my $eventNames = $self->getRequiredEventNames($prerequisiteId); my $events; @@ -1803,7 +1784,11 @@ sub www_editEvent { $events .= "$event ".$list->{$prerequisiteId}." "; } $events =~ s/(and\s|or\s)$//; - $f->readOnly( -value => $line.$events ); + + #Disable until the new prereq UI is in place + # + #$f->readOnly( -value => $line.$events ); + $f->readOnly( -value => $events ); } my $output = $f->print; @@ -1873,99 +1858,10 @@ sub www_editEventSave { $self->session->db->setRow("products", "productId", $event); } - # Save the prerequisites - #my $prerequisiteList = $self->session->form->process("eventList", "checkList"); - #my @list = split(/\n/, $prerequisiteList); - #unless ($prerequisiteList eq "") { - # my $prerequisiteId = $self->setCollateral("EventManagementSystem_prerequisites", "prerequisiteId", - # { - # prerequisiteId => "new", - # productId => $pid, - # operator => $self->session->form->get("requirement") - # },0,0 - # ); - # - # foreach my $requiredEvent (@list) { - # $self->setCollateral("EventManagementSystem_prerequisiteEvents", "prerequisiteEventId",{ - # prerequisiteEventId => "new", - # prerequisiteId => $prerequisiteId, - # requiredProductId => $requiredEvent - # },0,0); - # } - #} - -# return $self->www_editEvent(undef,$pid) if ($self->session->form->get("whatNext") eq "addAnotherPrereq"); return $self->www_search("managePrereqs",$pid) if ($self->session->form->get("whatNext") eq "managePrereqs"); return $self->www_search; } -##------------------------------------------------------------------- -# -#=head2 www_manageEvents ( ) -# -#Method to display the event management console. -# -#=cut -# -#sub www_manageEvents { -# my $self = shift; -# -# return $self->session->privilege->insufficient unless ($self->canAddEvents); -# my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem'); -# -# my $output; -# my $sth = $self->session->db->read("select p.productId, p.title, p.price, pe.approved from products as p, -# EventManagementSystem_products as pe where p.productId = pe.productId -# and pe.assetId=? order by sequenceNumber", [$self->get("assetId")]); -# -# if ($sth->rows) { -# $output = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl}).WebGUI::Form::hidden($self->session,{name=>"func",value=>"approveEvents"}); -# $output .= sprintf "", -# $i18n->get('event'), -# $i18n->get('add/edit event price'), -# $self->canApproveEvents -# ? $i18n->get('approval') -# : $i18n->get('status'); -# while (my %row = $sth->hash) { -# -# $output .= ""; -# } -# $output .= '' if $self->canApproveEvents; -# $output .= "
%s%s%s
"; -# $output .= $self->session->icon->delete('func=deleteEvent;pid='.$row{productId}, $self->getUrl, -# $i18n->get('confirm delete event')). -# $self->session->icon->edit('func=editEvent;pid='.$row{productId}, $self->getUrl). -# $self->session->icon->moveUp('func=moveEventUp;pid='.$row{productId}, $self->getUrl). -# $self->session->icon->moveDown('func=moveEventDown;pid='.$row{productId}, $self->getUrl). -# " ".$row{title}."".$row{price}.""; -# -# unless ($self->canApproveEvents) { -# if ($row{approved} == 0) { -# $output .= $i18n->get('pending'); -# } else { -# $output .= $i18n->get('approved'); -# } -# } else { -# $output .= WebGUI::Form::checkbox($self->session,{ -# -name => 'eventId', -# -checked => $row{approved}, -# -value => $row{productId} -# }).WebGUI::Form::hidden($self->session,{ -# -name => 'eventIdToCheck', -# -value => $row{productId} -# }); -# } -# $output .= "
  '.WebGUI::Form::submit($self->session,{-value=>$i18n->get('save approvals')}).'
".WebGUI::Form::formFooter($self->session); -# } else { -# $output .= $i18n->get('you do not have any events to display'); -# } -# -# $self->getAdminConsole->setHelp('event management system manage events','Asset_EventManagementSystem'); -# $self->getAdminConsole->addSubmenuItem($self->getUrl('func=editEvent;pid=new'), $i18n->get('add event')); -# $self->getAdminConsole->addSubmenuItem($self->getUrl('func=manageEventMetadata'), $i18n->get('manage event metadata')); -# $self->getAdminConsole->addSubmenuItem($self->getUrl('func=manageEvents'), $i18n->get('refresh events list')); -# return $self->getAdminConsole->render($output, $i18n->get("manage events")); -#} #------------------------------------------------------------------- @@ -2387,38 +2283,41 @@ sub www_moveEventUp { } #------------------------------------------------------------------- -sub www_savePrerequisites { - my $self = shift; - my $eventToAssignPrereqTo = $self->session->form->get("eventToAssignPrereqTo"); - - return $self->session->privilege->insufficient unless ($self->canAddEvents); - - my $prerequisiteList = $self->session->form->process("eventList", "checkList"); - my @list = split(/\n/, $prerequisiteList); - unless ($prerequisiteList eq "") { - my $prerequisiteId = $self->setCollateral("EventManagementSystem_prerequisites", "prerequisiteId", - { - prerequisiteId => "new", - productId => $eventToAssignPrereqTo, - operator => $self->session->form->get("requirement") - },0,0 - ); - - foreach my $requiredEvent (@list) { - $self->setCollateral("EventManagementSystem_prerequisiteEvents", "prerequisiteEventId",{ - prerequisiteEventId => "new", - prerequisiteId => $prerequisiteId, - requiredProductId => $requiredEvent - },0,0); - } - } - - my $instance = WebGUI::Workflow::Instance->create($self->session, { - workflowId=>'EMSworkflow00000000001' - }); - - return $self->www_editEvent(undef,$eventToAssignPrereqTo); -} +# Disable until new prerequ UI is in place +# +# +#sub www_savePrerequisites { +# my $self = shift; +# my $eventToAssignPrereqTo = $self->session->form->get("eventToAssignPrereqTo"); +# +# return $self->session->privilege->insufficient unless ($self->canAddEvents); +# +# my $prerequisiteList = $self->session->form->process("eventList", "checkList"); +# my @list = split(/\n/, $prerequisiteList); +# unless ($prerequisiteList eq "") { +# my $prerequisiteId = $self->setCollateral("EventManagementSystem_prerequisites", "prerequisiteId", +# { +# prerequisiteId => "new", +# productId => $eventToAssignPrereqTo, +# operator => $self->session->form->get("requirement") +# },0,0 +# ); +# +# foreach my $requiredEvent (@list) { +# $self->setCollateral("EventManagementSystem_prerequisiteEvents", "prerequisiteEventId",{ +# prerequisiteEventId => "new", +# prerequisiteId => $prerequisiteId, +# requiredProductId => $requiredEvent +# },0,0); +# } +# } +# +# my $instance = WebGUI::Workflow::Instance->create($self->session, { +# workflowId=>'EMSworkflow00000000001' +# }); +# +# return $self->www_editEvent(undef,$eventToAssignPrereqTo); +#} #------------------------------------------------------------------- sub www_saveRegistration {