Whole bunch of EMS bug fixes

This commit is contained in:
Roy Johnson 2006-04-23 00:32:37 +00:00
parent 3e8d8ae580
commit 2e0da40b11
4 changed files with 106 additions and 43 deletions

View file

@ -4,28 +4,11 @@
#url:default-ems-template-checkout #url:default-ems-template-checkout
#namespace:EventManagementSystem_checkout #namespace:EventManagementSystem_checkout
#create #create
<tmpl_if resolveConflicts>
<tmpl_var form.header> <tmpl_var form.header>
<table width="100%" border="0"> <table width="100%" border="0">
<tr><td><tmpl_var message></td></tr> <tr><td><tmpl_var message></td></tr>
<tmpl_if chooseSubevents>
<tr>
<td>
<table width="100%">
<tmpl_loop subevents_loop>
<tr<tmpl_unless __ODD__> class="evenRow"<tmpl_else> class="oddRow"</tmpl_unless>>
<td><tmpl_var form.checkBox></td>
<td><tmpl_var title></td>
<td><tmpl_var description></td>
<td><tmpl_var price></td>
</tr>
</tmpl_loop>
</table>
</td>
</tr>
</tmpl_if>
<tmpl_if resolveConflicts>
<tr> <tr>
<td> <td>
<table width="100%"> <table width="100%">
@ -40,11 +23,13 @@
</table> </table>
</td> </td>
</tr> </tr>
</tmpl_if>
<tr><td><tmpl_var form.submit></td></tr> <tr><td><tmpl_var form.submit></td></tr>
</table> </table>
<tmpl_var form.footer> <tmpl_var form.footer>
</tmpl_if>
<tmpl_if registration> <tmpl_if registration>
<tmpl_var form.header> <tmpl_var form.header>
@ -120,4 +105,4 @@ tr.oddRow td {
tr.evenRow td { tr.evenRow td {
background-color:#E8E8E8; background-color:#E8E8E8;
border-right:solid gray 1px; border-right:solid gray 1px;
} }

View file

@ -118,6 +118,8 @@
<tmpl_if managePrereqs><p><tmpl_var managePrereqsMessage></p><tmpl_var prereqForm.header></tmpl_if> <tmpl_if managePrereqs><p><tmpl_var managePrereqsMessage></p><tmpl_var prereqForm.header></tmpl_if>
<p><tmpl_var message></p> <p><tmpl_var message></p>
<p>Your search returned <tmpl_var numberOfSearchResults> results.</p> <p>Your search returned <tmpl_var numberOfSearchResults> results.</p>
<p><tmpl_var addToBadgeMessage></p>
<table width="100%" border="0" cellpadding="8" cellspacing="0" style="border-top:solid gray 2px;border-bottom:solid gray 2px;"> <table width="100%" border="0" cellpadding="8" cellspacing="0" style="border-top:solid gray 2px;border-bottom:solid gray 2px;">
<tr> <tr>
<tmpl_if managePrereqs><th>&nbsp;</th></tmpl_if> <tmpl_if managePrereqs><th>&nbsp;</th></tmpl_if>
@ -145,7 +147,11 @@
</table> </table>
<tmpl_if managePrereqs><tmpl_var prereqForm.submit><tmpl_var prereqForm.footer></tmpl_if> <tmpl_if managePrereqs><tmpl_var prereqForm.submit><tmpl_var prereqForm.footer></tmpl_if>
<tmpl_var paginateBar> <table width="100%">
<tr><td align="right"><a href='<tmpl_var continue.url>'><tmpl_var continue.label></a></td></tr>
</table>
<tmpl_var paginateBar>
~~~ ~~~
<style type="text/css"> <style type="text/css">
tr.oddRow td { tr.oddRow td {

View file

@ -25,10 +25,16 @@
</tr> </tr>
<tr class="softGray"> <tr class="softGray">
<td colspan="2" class="purchase"> <td colspan="2" class="purchase">
<tmpl_unless eventIsFull> <tmpl_unless eventIsFull>
<a href="<tmpl_var purchase.url>"><tmpl_var purchase.label></a> <a onclick="
<tmpl_else> if( confirm('<tmpl_var purchase.message>')) {
<tmpl_var purchase.label><br /> window.location = '<tmpl_var purchase.wantToSearch.url>';
}
else {
window.location = '<tmpl_var purchase.wantToContinue.url>';
}"><tmpl_var purchase.label></a>
<tmpl_else>
<tmpl_var purchase.label><br />
</tmpl_unless> </tmpl_unless>
</td> </td>
</tr> </tr>

View file

@ -1415,7 +1415,7 @@ sub www_addToCart {
} }
else { # A single id, i.e., a master event else { # A single id, i.e., a master event
my $newPid = $self->session->form->get("pid") || $pid; my $newPid = $self->session->form->get("pid") || $pid;
push(@pids, $newPid); push(@pids, $newPid) unless ($pid eq "_noid_");
} }
foreach my $eventId (@pids) { foreach my $eventId (@pids) {
@ -1426,7 +1426,7 @@ sub www_addToCart {
$output = $self->verifyPrerequisitesForm; $output = $self->verifyPrerequisitesForm;
#$output = $self->getSubEventForm(\@pids) unless ($output); #$output = $self->getSubEventForm(\@pids) unless ($output);
$output = $self->getSubEventForm($self->getEventsInScratchCart) unless ($output); #$output = $self->getSubEventForm($self->getEventsInScratchCart) unless ($output);
$errors = $self->checkConflicts; $errors = $self->checkConflicts;
if (scalar(@$errors) > 0) { return $self->error($errors, "www_addToCart"); } if (scalar(@$errors) > 0) { return $self->error($errors, "www_addToCart"); }
@ -1439,6 +1439,18 @@ sub www_addToCart {
return $self->session->style->process($self->processTemplate($output,$self->getValue("checkoutTemplateId")),$self->getValue("styleTemplateId")); return $self->session->style->process($self->processTemplate($output,$self->getValue("checkoutTemplateId")),$self->getValue("styleTemplateId"));
} }
#-------------------------------------------------------------------
sub www_addToScratchCart {
my $self = shift;
my $pid = $self->session->form->get("pid");
my $nameOfEventAdded = $self->getEventName($pid);
my $masterEventId = $self->session->form->get("mid");
$self->addToScratchCart($pid); #tsc
return $self->www_search(undef, undef, $nameOfEventAdded, $masterEventId, "requirement", "eq", $self->session->form->get("pn"));
}
#------------------------------------------------------------------- #-------------------------------------------------------------------
=head2 www_approveEvent ( ) =head2 www_approveEvent ( )
@ -2479,6 +2491,23 @@ sub www_search {
my $self = shift; my $self = shift;
my $managePrereqs = shift || $self->session->form->get("managePrereqs"); my $managePrereqs = shift || $self->session->form->get("managePrereqs");
my $eventToAssignPrereqTo = shift || $self->session->form->get("eventToAssignPrereqTo"); my $eventToAssignPrereqTo = shift || $self->session->form->get("eventToAssignPrereqTo");
#these allow us to show a specific page of subevents after an add to scratch cart
my $eventAdded = shift;
my $cfilter_t0 = shift;
my $cfilter_s0 = shift;
my $cfilter_c0 = shift;
my $pn;
my $subSearchFlag;
my $showAllFlag;
my $addToBadgeMessage;
if ($cfilter_t0 && $cfilter_s0 && $cfilter_c0) {
$pn = shift || 1;
$subSearchFlag = 1;
$showAllFlag = 1;
$addToBadgeMessage = "$eventAdded was added to your badge successfully.";
}
my $prerequisiteHash = $self->getPrerequisiteEventList($eventToAssignPrereqTo) if ($eventToAssignPrereqTo); my $prerequisiteHash = $self->getPrerequisiteEventList($eventToAssignPrereqTo) if ($eventToAssignPrereqTo);
my @prerequisiteList; my @prerequisiteList;
my %var; my %var;
@ -2502,10 +2531,17 @@ sub www_search {
# If we're at the view method there is no reason we should have anything in our scratch cart # If we're at the view method there is no reason we should have anything in our scratch cart
# so let's empty it to prevent strange and awful things from happening # so let's empty it to prevent strange and awful things from happening
<<<<<<< .mine
#$self->emptyScratchCart;
#$self->session->scratch->delete('EMS_add_purchase_badgeId');
#$self->session->scratch->delete('EMS_add_purchase_events');
=======
unless ($self->session->scratch->get('EMS_add_purchase_badgeId')) { unless ($self->session->scratch->get('EMS_add_purchase_badgeId')) {
$self->emptyScratchCart; $self->emptyScratchCart;
$self->session->scratch->delete('EMS_add_purchase_events'); $self->session->scratch->delete('EMS_add_purchase_events');
} }
>>>>>>> .r1600
push(@keys,$keywords) if $keywords; push(@keys,$keywords) if $keywords;
unless ($keywords =~ /^".*"$/) { unless ($keywords =~ /^".*"$/) {
foreach (split(" ",$keywords)) { foreach (split(" ",$keywords)) {
@ -2531,7 +2567,7 @@ sub www_search {
my %reqHash; my %reqHash;
my $seatsAvailable = 'none'; my $seatsAvailable = 'none';
my $seatsCompare; my $seatsCompare;
if ($self->session->form->get("advSearch") || $self->session->form->get("subSearch")) { if ($self->session->form->get("advSearch") || $self->session->form->get("subSearch") || $subSearchFlag) {
$searchPhrases = ''; $searchPhrases = '';
my $fields = $self->_getFieldHash(); my $fields = $self->_getFieldHash();
my $count = 0; my $count = 0;
@ -2540,8 +2576,24 @@ sub www_search {
$searchPhrases = $basicSearch; $searchPhrases = $basicSearch;
} }
for (my $cfilter = 0; $cfilter < 50; $cfilter++) { for (my $cfilter = 0; $cfilter < 50; $cfilter++) {
my $value = $self->session->form->get("cfilter_t".$cfilter); my $value;
my $fieldId = $self->session->form->get("cfilter_s".$cfilter); my $fieldId;
my $compare;
# filter 0 is reserved for passing a search filter via the url
# or as parameters to this method call. All user selectable filters
# begin with number 1, i.e., cfilter_t1, cfilter_s1, cfilter_c1
#
if ($cfilter_t0 && $cfilter_s0 && $cfilter_c0 && $pn) { # a filter was passed as params to the method call
if ($cfilter == 0) { #don't want to overwrite the user filters
$value = $cfilter_t0;
$fieldId = $cfilter_s0;
$compare = $cfilter_c0;
}
}
$value = $self->session->form->get("cfilter_t".$cfilter) unless ($value);
$fieldId = $self->session->form->get("cfilter_s".$cfilter) unless ($fieldId);
if ($fieldId eq 'requirement') { if ($fieldId eq 'requirement') {
$reqHash{$value} = 1 if $value; $reqHash{$value} = 1 if $value;
} }
@ -2553,7 +2605,7 @@ sub www_search {
next if ($fieldId eq 'seatsAvailable' || $fieldId eq 'requirement'); next if ($fieldId eq 'seatsAvailable' || $fieldId eq 'requirement');
# end temporary # end temporary
next unless (($value || $value =~ /^0/) && defined $fields->{$fieldId}); next unless (($value || $value =~ /^0/) && defined $fields->{$fieldId});
my $compare = $self->session->form->get("cfilter_c".$cfilter); $compare = $self->session->form->get("cfilter_c".$cfilter) unless ($compare);
#Format Value with Operator #Format Value with Operator
$value =~ s/%//g; $value =~ s/%//g;
my $field = $fields->{$fieldId}; my $field = $fields->{$fieldId};
@ -2678,18 +2730,18 @@ sub www_search {
} }
#$self->session->errorHandler->warn("<pre>".Dumper(@results)."</pre>"); #$self->session->errorHandler->warn("<pre>".Dumper(@results)."</pre>");
$sth->finish; $sth->finish;
my $maxResultsForInitialDisplay = 1; my $maxResultsForInitialDisplay = 50;
my $numSearchResults = scalar(@results); my $numSearchResults = scalar(@results);
@results = () unless ( ($numSearchResults <= $maxResultsForInitialDisplay) || ($self->session->form->get("advSearch") || $self->session->form->get("searchKeywords"))); @results = () unless ( ($numSearchResults <= $maxResultsForInitialDisplay) || ($self->session->form->get("advSearch") || $self->session->form->get("searchKeywords") || $showAllFlag));
$p->setDataByArrayRef(\@results); $p->setDataByArrayRef(\@results);
my $eventData = $p->getPageData; my $eventData = $p->getPageData($pn);
my @events; my @events;
foreach my $event (@$eventData) { foreach my $event (@$eventData) {
my %eventFields; my %eventFields;
$eventFields{'title'} = $event->{'title'}; $eventFields{'title'} = $event->{'title'};
$eventFields{'description'} = $event->{'description'}; $eventFields{'description'} = $event->{'description'};
$eventFields{'price'} = $event->{'price'}; $eventFields{'price'} = '$'.$event->{'price'};
my ($numberRegistered) = $self->session->db->quickArray("select count(*) from EventManagementSystem_registrations as r, EventManagementSystem_purchases as p my ($numberRegistered) = $self->session->db->quickArray("select count(*) from EventManagementSystem_registrations as r, EventManagementSystem_purchases as p
where r.purchaseId = p.purchaseId and r.productId=".$self->session->db->quote($event->{'productId'})); where r.purchaseId = p.purchaseId and r.productId=".$self->session->db->quote($event->{'productId'}));
$eventFields{'numberRegistered'} = $numberRegistered; $eventFields{'numberRegistered'} = $numberRegistered;
@ -2709,7 +2761,8 @@ sub www_search {
$eventFields{'purchase.label'} = $i18n->get('sold out'); $eventFields{'purchase.label'} = $i18n->get('sold out');
} }
else { else {
$eventFields{'purchase.url'} = $self->getUrl('func=addToCart;pid='.$event->{'productId'}); my $masterEventId = $cfilter_t0 || $self->session->form->get("cfilter_t0");
$eventFields{'purchase.url'} = $self->getUrl('func=addToScratchCart;pid='.$event->{'productId'}.";mid=".$masterEventId);
$eventFields{'purchase.label'} = $i18n->get('add to cart'); $eventFields{'purchase.label'} = $i18n->get('add to cart');
} }
@ -2758,11 +2811,11 @@ sub www_search {
$var{'canManageEvents'} = 0; $var{'canManageEvents'} = 0;
} }
my $message; my $message;
my $subSearchFlag = $self->session->form->get("subSearch") || ($self->session->form->get("func")); $subSearchFlag = $self->session->form->get("subSearch") || ($self->session->form->get("func"));
my $advSearchFlag = $self->session->form->get("advSearch"); my $advSearchFlag = $self->session->form->get("advSearch");
my $basicSearchFlag = $self->session->form->get("searchKeywords"); my $basicSearchFlag = $self->session->form->get("searchKeywords");
my $managePrereqsFlag = $var{'managePrereqs'}; my $managePrereqsFlag = $var{'managePrereqs'};
my $paginationFlag = $self->session->form->get("pn");# || ($self->get("paginateAfter") < $numSearchResults); my $paginationFlag = $self->session->form->get("pn") || $pn;
my $hasSearchedFlag = ($self->session->form->get("filter")); my $hasSearchedFlag = ($self->session->form->get("filter"));
#Determine type of search results we're displaying #Determine type of search results we're displaying
@ -2784,9 +2837,18 @@ sub www_search {
} elsif ($managePrereqsFlag && $numSearchResults > $maxResultsForInitialDisplay && !$paginationFlag) { } elsif ($managePrereqsFlag && $numSearchResults > $maxResultsForInitialDisplay && !$paginationFlag) {
$message = $i18n->get('forced narrowing'); $message = $i18n->get('forced narrowing');
} }
$var{'message'} = $message; $var{'message'} = $message;
$var{'numberOfSearchResults'} = $numSearchResults; $var{'numberOfSearchResults'} = $numSearchResults;
$var{'continue.url'} = $self->getUrl('func=addToCart;pid=_noid_');
$var{'continue.label'} = "Continue";
$var{'name.label'} = "Event";
$var{'starts.label'} = "Starts";
$var{'ends.label'} = "Ends";
$var{'price.label'} = "Price";
$var{'seats.label'} = "Seats Available";
$var{'addToBadgeMessage'} = $addToBadgeMessage;
$p->appendTemplateVars(\%var); $p->appendTemplateVars(\%var);
$self->buildMenu(\%var); $self->buildMenu(\%var);
@ -2830,24 +2892,28 @@ sub view {
$eventFields{'title'} = $event->{'title'}; $eventFields{'title'} = $event->{'title'};
$eventFields{'title.url'} = $self->getUrl('func=search;cfilter_s0=requirement;cfilter_c0=eq;subSearch=1;cfilter_t0='.$event->{'productId'}); $eventFields{'title.url'} = $self->getUrl('func=search;cfilter_s0=requirement;cfilter_c0=eq;subSearch=1;cfilter_t0='.$event->{'productId'});
$eventFields{'description'} = $event->{'description'}; $eventFields{'description'} = $event->{'description'};
$eventFields{'price'} = $event->{'price'}; $eventFields{'price'} = '$'.$event->{'price'};
my ($numberRegistered) = $self->session->db->quickArray("select count(*) from EventManagementSystem_registrations as r, EventManagementSystem_purchases as p my ($numberRegistered) = $self->session->db->quickArray("select count(*) from EventManagementSystem_registrations as r, EventManagementSystem_purchases as p
where r.purchaseId = p.purchaseId and r.productId=".$self->session->db->quote($event->{'productId'})); where r.purchaseId = p.purchaseId and r.productId=".$self->session->db->quote($event->{'productId'}));
$eventFields{'numberRegistered'} = $numberRegistered; $eventFields{'numberRegistered'} = $numberRegistered;
$eventFields{'maximumAttendees'} = $event->{'maximumAttendees'}; $eventFields{'maximumAttendees'} = $event->{'maximumAttendees'};
$eventFields{'seatsRemaining'} = $event->{'maximumAttendees'} - $numberRegistered; $eventFields{'seatsRemaining'} = $event->{'maximumAttendees'} - $numberRegistered;
$eventFields{'eventIsFull'} = ($eventFields{'seatsRemaining'} == 0); $eventFields{'eventIsFull'} = ($eventFields{'seatsRemaining'} == 0);
if ($eventFields{'eventIsFull'}) { if ($eventFields{'eventIsFull'}) {
$eventFields{'purchase.label'} = $i18n->get('sold out'); $eventFields{'purchase.label'} = $i18n->get('sold out');
} }
else { else {
$eventFields{'purchase.url'} = $self->getUrl('func=addToCart;pid='.$event->{'productId'}); #$eventFields{'purchase.url'} = $self->getUrl('func=addToCart;isMaster=1;pid='.$event->{'productId'});
$eventFields{'purchase.message'} = "Would you like to see available subevents?";
$eventFields{'purchase.wantToSearch.url'} = $self->getUrl('func=search;cfilter_s0=requirement;cfilter_c0=eq;subSearch=1;cfilter_t0='.$event->{productId});
$eventFields{'purchase.wantToContinue.url'} = $self->getUrl('func=addToCart;pid='.$event->{productId});
$eventFields{'purchase.label'} = $i18n->get('add to cart'); $eventFields{'purchase.label'} = $i18n->get('add to cart');
} }
push (@events, {'event' => $self->processTemplate(\%eventFields, $event->{'templateId'}) }); push (@events, {'event' => $self->processTemplate(\%eventFields, $event->{'templateId'}) });
} }
$var{'checkout.url'} = $self->getUrl('op=viewCart'); $var{'checkout.url'} = $self->getUrl('op=viewCart');
$var{'checkout.label'} = $i18n->get('checkout'); $var{'checkout.label'} = $i18n->get('checkout');
$var{'events_loop'} = \@events; $var{'events_loop'} = \@events;
$var{'paginateBar'} = $p->getBarTraditional; $var{'paginateBar'} = $p->getBarTraditional;