More EMS stuff.

This commit is contained in:
Roy Johnson 2006-02-03 21:03:57 +00:00
parent 0c64c4f386
commit 2e645f0517
3 changed files with 107 additions and 10 deletions

View file

@ -19,8 +19,8 @@ use base 'WebGUI::Asset::Wobject';
use Tie::IxHash;
use WebGUI::HTMLForm;
use WebGUI::International;
use WebGUI::Commerce::ShoppingCart;
use WebGUI::Commerce::Item;
#-------------------------------------------------------------------
=head2 checkRequiredFields ( requiredFields )
@ -326,6 +326,27 @@ sub validateEditEventForm {
#-------------------------------------------------------------------
=head2 www_addToCart ( )
Method that will add an event to the users shopping cart.
=cut
sub www_addToCart {
my $self = shift;
my $eventId = $self->session->form->get("pid");
#my $cart = WebGUI::Commerce::ShoppingCart->new($self->session);
#$cart->add($eventId, 'Event');
my $item = WebGUI::Commerce::Item->new($self->session, $eventId, 'Event');
$self->session->errorHandler->warn($item->{_eventData}->{available});
return $self->www_view;
}
#-------------------------------------------------------------------
=head2 www_approveEvent ( )
Method that will set the status of an event to approved.
@ -504,6 +525,11 @@ sub www_editEvent {
-hoverHelp => $i18n->get('add/edit event maximum attendees description'),
-label => $i18n->get('add/edit event maximum attendees')
);
$f->hidden(
-name => "approved",
-value => 0 || $event->{approved}
);
my $prerequisiteList = $self->getPrerequisiteEventList($pid);
if ( scalar(keys %{$prerequisiteList}) > 0) {
@ -593,7 +619,7 @@ sub www_editEventSave {
startDate => $self->session->datetime->humanToEpoch($self->session->form->get("startDate")),
endDate => $self->session->datetime->humanToEpoch($self->session->form->get("endDate")),
maximumAttendees => $self->session->form->get("maximumAttendees"),
approved => "0"
approved => $self->session->form->get("approved")
},1,1
);
@ -761,7 +787,8 @@ sub view {
from products as p, EventManagementSystem_products as e
where
p.productId = e.productId and approved=1
and e.assetId =".$self->session->db->quote($self->get("assetId"));
and e.assetId =".$self->session->db->quote($self->get("assetId"))."
and p.productId not in (select distinct(productId) from EventManagementSystem_prerequisites)";
my $p = WebGUI::Paginator->new($self->session,$self->getUrl,$self->get("paginateAfter"));
$p->setDataByQuery($sql);
@ -777,6 +804,8 @@ sub view {
$eventFields{'title'} = $event->{'title'};
$eventFields{'description'} = $event->{'description'};
$eventFields{'price'} = $event->{'price'};
$eventFields{'purchase.url'} = $self->getUrl('func=addToCart;pid='.$event->{'productId'});
$eventFields{'purchase.label'} = "Add To Cart";
push (@events, {'event' => $self->processTemplate(\%eventFields, $event->{'templateId'}) });
}

View file

@ -155,20 +155,21 @@ The type (namespace) of the item you want.
=cut
sub new {
my ($class, $namespace, $load, $cmd, $plugin);
my ($class, $session, $namespace, $load, $cmd, $plugin);
$class = shift;
$session = shift;
$id = shift;
$namespace = shift;
$self->session->errorHandler->fatal('No namespace') unless ($namespace);
$self->session->errorHandler->fatal('No ID') unless ($id);
$session->errorHandler->fatal('No namespace') unless ($namespace);
$session->errorHandler->fatal('No ID') unless ($id);
$cmd = "WebGUI::Commerce::Item::$namespace";
$load = "use $cmd";
eval($load);
$self->session->errorHandler->warn("Item plugin failed to compile: $cmd.".$@) if($@);
$plugin = eval($cmd."->new('$id', '$namespace')");
$self->session->errorHandler->warn("Couldn't instantiate Item plugin: $cmd.".$@) if($@);
$session->errorHandler->warn("Item plugin failed to compile: $cmd.".$@) if($@);
$plugin = eval($cmd."->new('$session', '$id', '$namespace')");
$session->errorHandler->warn("Couldn't instantiate Item plugin: $cmd.".$@) if($@);
return $plugin;
}

View file

@ -0,0 +1,67 @@
package WebGUI::Commerce::Item::Event;
use strict;
our @ISA = qw(WebGUI::Commerce::Item);
#-------------------------------------------------------------------
sub available {
return $_[0]->{_event}->{available};
}
#-------------------------------------------------------------------
sub description {
return $_[0]->{_event}{description};
}
#-------------------------------------------------------------------
sub id {
return $_[0]->{_event}{productId};
}
#-------------------------------------------------------------------
sub isRecurring {
return 0;
}
#-------------------------------------------------------------------
sub name {
return $_[0]->{_event}->{title};
}
#-------------------------------------------------------------------
sub new {
my ($class, $session, $eventId, $eventData);
$class = shift;
$session = shift;
$eventId = shift;
my $eventData = $session->db->quickHashRef("select p.productId, p.title, p.description, p.price, e.available
from EventManagementSystem_products as e, products as p
where p.productId = e.productId and p.productId=".$session->db->quote($eventId));
bless {_event => $eventData}, $class;
}
#-------------------------------------------------------------------
sub needsShipping {
return 0;
}
#-------------------------------------------------------------------
sub price {
return $_[0]->{_event}->{price};
}
#-------------------------------------------------------------------
sub type {
return 'Event';
}
#-------------------------------------------------------------------
sub weight {
return 0;
}
1;