added more documentation to sku types
continuing to migrate EMS to C2
This commit is contained in:
parent
5a50203b35
commit
45fef64fd6
8 changed files with 633 additions and 202 deletions
|
|
@ -42,6 +42,13 @@ These methods are available from this class:
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 definition
|
||||
|
||||
Adds templateId, thankYouMessage, and defaultPrice fields.
|
||||
|
||||
=cut
|
||||
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
|
|
@ -86,6 +93,13 @@ sub definition {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getConfiguredTitle
|
||||
|
||||
Returns title + price
|
||||
|
||||
=cut
|
||||
|
||||
sub getConfiguredTitle {
|
||||
my $self = shift;
|
||||
return $self->getTitle." (".$self->getOptions->{price}.")";
|
||||
|
|
@ -93,12 +107,26 @@ sub getConfiguredTitle {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getPrice
|
||||
|
||||
Returns configured price, or default price, or 100 if neither of those are available.
|
||||
|
||||
=cut
|
||||
|
||||
sub getPrice {
|
||||
my $self = shift;
|
||||
return $self->getOptions->{price} || $self->get("defaultPrice") || 100.00;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 prepareView
|
||||
|
||||
Prepares the template.
|
||||
|
||||
=cut
|
||||
|
||||
sub prepareView {
|
||||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
|
|
@ -109,6 +137,13 @@ sub prepareView {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 view
|
||||
|
||||
Displays the donation form.
|
||||
|
||||
=cut
|
||||
|
||||
sub view {
|
||||
my ($self) = @_;
|
||||
my $session = $self->session;
|
||||
|
|
@ -125,6 +160,13 @@ sub view {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 wwww_donate
|
||||
|
||||
Accepts the information from the donation form and adds it to the cart.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_donate {
|
||||
my $self = shift;
|
||||
if ($self->canView) {
|
||||
|
|
|
|||
|
|
@ -41,6 +41,13 @@ These methods are available from this class:
|
|||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 addToCart ( badgeInfo )
|
||||
|
||||
Adds this badge as configured for an individual to the cart.
|
||||
|
||||
=cut
|
||||
|
||||
sub addToCart {
|
||||
my ($self, $badgeInfo) = @_;
|
||||
$badgeInfo->{badgeId} = "new";
|
||||
|
|
@ -51,6 +58,13 @@ sub addToCart {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 definition
|
||||
|
||||
Adds price, seatsAvailable fields.
|
||||
|
||||
=cut
|
||||
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
|
|
@ -87,6 +101,13 @@ sub definition {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getConfiguredTitle
|
||||
|
||||
Returns title + badgeholder name
|
||||
|
||||
=cut
|
||||
|
||||
sub getConfiguredTitle {
|
||||
my $self = shift;
|
||||
my $name = $self->session->db->getScalar("select name from EMSRegistrant where badgeId=?",[$self->getOptions->{badgeId}]);
|
||||
|
|
@ -95,17 +116,38 @@ sub getConfiguredTitle {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getMaxAllowedInCart
|
||||
|
||||
Returns 1
|
||||
|
||||
=cut
|
||||
|
||||
sub getMaxAllowedInCart {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getPrice
|
||||
|
||||
Returns the price field value.
|
||||
|
||||
=cut
|
||||
|
||||
sub getPrice {
|
||||
my $self = shift;
|
||||
return $self->get("price");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getQuantityAvailable
|
||||
|
||||
Returns seatsAvailable - the count from the EMSRegistrant table.
|
||||
|
||||
=cut
|
||||
|
||||
sub getQuantityAvailable {
|
||||
my $self = shift;
|
||||
my $seatsTaken = $self->session->db->quickScalar("select count(*) from EMSRegistrant where badgeAssetId=?",[$self->getId]);
|
||||
|
|
@ -113,6 +155,13 @@ sub getQuantityAvailable {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 onCompletePurchase (item)
|
||||
|
||||
Marks badge order as paid.
|
||||
|
||||
=cut
|
||||
|
||||
sub onCompletePurchase {
|
||||
my ($self, $item) = @_;
|
||||
my $badgeInfo = $self->getOptions;
|
||||
|
|
@ -123,6 +172,13 @@ sub onCompletePurchase {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 onRemoveFromCart ( item )
|
||||
|
||||
Destroys badge.
|
||||
|
||||
=cut
|
||||
|
||||
sub onRemoveFromCart {
|
||||
my ($self, $item) = @_;
|
||||
my $badgeId = $self->getOptions->{badgeId};
|
||||
|
|
@ -137,13 +193,31 @@ sub onRemoveFromCart {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 purge
|
||||
|
||||
Deletes all badges and things attached to the badges. No refunds are given.
|
||||
|
||||
=cut
|
||||
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
$self->session->db->write("delete from EMSRegistrant where badgeAssetId=?",[$self->getId]);
|
||||
my $db = $self->session->db;
|
||||
$db->write("delete from EMSRegistrantTicket where badgeAssetId=?",[$self->getId]);
|
||||
$db->write("delete from EMSRegistrantToken where badgeAssetId=?",[$self->getId]);
|
||||
$db->write("delete from EMSRegistrantRibbon where badgeAssetId=?",[$self->getId]);
|
||||
$db->write("delete from EMSRegistrant where badgeAssetId=?",[$self->getId]);
|
||||
$self->SUPER::purge;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 view
|
||||
|
||||
Displays badge description.
|
||||
|
||||
=cut
|
||||
|
||||
sub view {
|
||||
my ($self) = @_;
|
||||
|
||||
|
|
@ -235,6 +309,13 @@ sub view {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_addToCart
|
||||
|
||||
Processes form from view() and then adds to cart.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_addToCart {
|
||||
my ($self) = @_;
|
||||
return $self->session->privilege->noAccess() unless $self->getParent->canView;
|
||||
|
|
@ -266,7 +347,7 @@ sub www_addToCart {
|
|||
|
||||
# add it to the cart
|
||||
$self->addToCart(\%badgeInfo);
|
||||
return $self->getParent->www_view;
|
||||
return $self->getParent->www_viewExtras($self->getOptions->{badgeId});
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ package WebGUI::Asset::Sku::EMSRibbon;
|
|||
use strict;
|
||||
use Tie::IxHash;
|
||||
use base 'WebGUI::Asset::Sku';
|
||||
|
||||
use WebGUI::HTMLForm;
|
||||
|
||||
|
||||
=head1 NAME
|
||||
|
|
@ -40,6 +40,13 @@ These methods are available from this class:
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 definition
|
||||
|
||||
Add price field to the definition.
|
||||
|
||||
=cut
|
||||
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
|
|
@ -70,6 +77,13 @@ sub definition {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getConfiguredTitle
|
||||
|
||||
Return title + badge holder name.
|
||||
|
||||
=cut
|
||||
|
||||
sub getConfiguredTitle {
|
||||
my $self = shift;
|
||||
my $name = $self->session->db->getScalar("select name from EMSRegistrant where badgeId=?",[$self->getOptions->{badgeId}]);
|
||||
|
|
@ -77,17 +91,38 @@ sub getConfiguredTitle {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getMaxAllowedInCart
|
||||
|
||||
Return 1;
|
||||
|
||||
=cut
|
||||
|
||||
sub getMaxAllowedInCart {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getPrice
|
||||
|
||||
Returns the price from the definition.
|
||||
|
||||
=cut
|
||||
|
||||
sub getPrice {
|
||||
my $self = shift;
|
||||
return $self->get("price");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 onCompletePurchase
|
||||
|
||||
Does bookkeeping on EMSRegistrationRibbon table.
|
||||
|
||||
=cut
|
||||
|
||||
sub onCompletePurchase {
|
||||
my ($self, $item) = @_;
|
||||
$self->session->db->write("insert into EMSRegistrationRibbon (ribbonAssetId, badgeId) values (?,?)",
|
||||
|
|
@ -96,6 +131,13 @@ sub onCompletePurchase {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 purge
|
||||
|
||||
Deletes all entries in EMSRegistrationRibbon table for this sku. No refunds are given.
|
||||
|
||||
=cut
|
||||
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
$self->session->db->write("delete from EMSRegistrantRibbon where tokenAssetId=?",[$self->getId]);
|
||||
|
|
@ -103,17 +145,51 @@ sub purge {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 view
|
||||
|
||||
Displays the ribbon description.
|
||||
|
||||
=cut
|
||||
|
||||
sub view {
|
||||
my ($self) = @_;
|
||||
return $self->getParent->view;
|
||||
my ($self) = @_;
|
||||
|
||||
# build objects we'll need
|
||||
my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
|
||||
my $form = $self->session->form;
|
||||
|
||||
|
||||
# render the page;
|
||||
my $output = '<h1>'.$self->getTitle.'</h1>'
|
||||
.'<p>'.$self->get('description').'</p>';
|
||||
|
||||
# build the add to cart form
|
||||
if ($form->get('badgeId') ne '') {
|
||||
my $addToCart = WebGUI::HTMLForm->new($self->session, action=>$self->getUrl);
|
||||
$addToCart->hidden(name=>"func", value=>"addToCart");
|
||||
$addToCart->hidden(name=>"badgeId", value=>$form->get('badgeId'));
|
||||
$addToCart->submit(value=>$i18n->get('add to cart','Shop'), label=>$self->getPrice);
|
||||
$output .= $addToCart->print;
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_addToCart
|
||||
|
||||
Takes form variable badgeId and add the ribbon to the cart.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_addToCart {
|
||||
my ($self) = @_;
|
||||
return $self->session->privilege->noAccess() unless $self->getParent->canView;
|
||||
$self->addToCart({badgeId=>$self->session->form->get('badgeId')});
|
||||
return $self->getParent->www_view;
|
||||
my $badgeId = $self->session->form->get('badgeId');
|
||||
$self->addToCart({badgeId=>$badgeId});
|
||||
return $self->getParent->www_viewExtras($badgeId);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,13 @@ These methods are available from this class:
|
|||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 addToCart ( {badgeId=>$badgeId })
|
||||
|
||||
Does some bookkeeping to keep track of limited quantities of tickets that are available, then adds to cart.
|
||||
|
||||
=cut
|
||||
|
||||
sub addToCart {
|
||||
my ($self, $badgeInfo) = @_;
|
||||
$self->session->db->write("insert into EMSRegistrantTicket (badgeId, ticketAssetId) values (?,?)",
|
||||
|
|
@ -47,6 +54,13 @@ sub addToCart {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 definition
|
||||
|
||||
Adds price, seatsAvailable, eventNumber, startDate, endDate and relatedBadges fields.
|
||||
|
||||
=cut
|
||||
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
|
|
@ -81,15 +95,15 @@ sub definition {
|
|||
tab => "properties",
|
||||
fieldType => "dateTime",
|
||||
defaultValue => $date->toDatabase,
|
||||
label => $i18n->get("add/edit event start date"),
|
||||
hoverHelp => $i18n->get("add/edit event start date description"),
|
||||
label => $i18n->get("event start date"),
|
||||
hoverHelp => $i18n->get("start date help"),
|
||||
},
|
||||
endDate => {
|
||||
tab => "properties",
|
||||
fieldType => "dateTime",
|
||||
defaultValue => $date->toDatabase,
|
||||
label => $i18n->get("add/edit event end date"),
|
||||
hoverHelp => $i18n->get("add/edit event end date description"),
|
||||
label => $i18n->get("event end date"),
|
||||
hoverHelp => $i18n->get("event end date help"),
|
||||
},
|
||||
relatedBadges => {
|
||||
tab => "properties",
|
||||
|
|
@ -113,6 +127,13 @@ sub definition {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getConfiguredTitle
|
||||
|
||||
Returns title + badgeholder name.
|
||||
|
||||
=cut
|
||||
|
||||
sub getConfiguredTitle {
|
||||
my $self = shift;
|
||||
my $name = $self->session->db->getScalar("select name from EMSRegistrant where badgeId=?",[$self->getOptions->{badgeId}]);
|
||||
|
|
@ -120,17 +141,38 @@ sub getConfiguredTitle {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getMaxAllowedInCart
|
||||
|
||||
Returns 1.
|
||||
|
||||
=cut
|
||||
|
||||
sub getMaxAllowedInCart {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getPrice
|
||||
|
||||
Returns the value of the price field
|
||||
|
||||
=cut
|
||||
|
||||
sub getPrice {
|
||||
my $self = shift;
|
||||
return $self->get("price");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getQuantityAvailable
|
||||
|
||||
Returns seatsAvailable minus the count from the EMSRegistrantTicket table.
|
||||
|
||||
=cut
|
||||
|
||||
sub getQuantityAvailable {
|
||||
my $self = shift;
|
||||
my $seatsTaken = $self->session->db->quickScalar("select count(*) from EMSRegistrantTicket where ticketAssetId=?",[$self->getId]);
|
||||
|
|
@ -138,6 +180,13 @@ sub getQuantityAvailable {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 onCompletePurchase
|
||||
|
||||
Marks the ticket as purchased.
|
||||
|
||||
=cut
|
||||
|
||||
sub onCompletePurchase {
|
||||
my ($self, $item) = @_;
|
||||
$self->session->db->write("update EMSRegistrantTicket set purchaseComplete=1 where ticketAssetId=? and badgeId=?",
|
||||
|
|
@ -146,6 +195,13 @@ sub onCompletePurchase {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 onRemoveFromCart
|
||||
|
||||
Frees up the ticket to be purchased by someone else.
|
||||
|
||||
=cut
|
||||
|
||||
sub onRemoveFromCart {
|
||||
my ($self, $item) = @_;
|
||||
$self->session->db->write("delete from EMSRegistrantTicket where ticketAssetId=? and badgeId=?",
|
||||
|
|
@ -153,6 +209,13 @@ sub onRemoveFromCart {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 purge
|
||||
|
||||
Deletes all ticket purchases of this type. No refunds are given.
|
||||
|
||||
=cut
|
||||
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
$self->session->db->write("delete from EMSRegistrantTicket where ticketAssetId=?",[$self->getId]);
|
||||
|
|
@ -160,17 +223,52 @@ sub purge {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 view
|
||||
|
||||
Displays the ticket description.
|
||||
|
||||
=cut
|
||||
|
||||
sub view {
|
||||
my ($self) = @_;
|
||||
return $self->getParent->view;
|
||||
my ($self) = @_;
|
||||
|
||||
# build objects we'll need
|
||||
my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
|
||||
my $form = $self->session->form;
|
||||
|
||||
|
||||
# render the page;
|
||||
my $output = '<h1>'.$self->getTitle.' ('.$self->get('eventNumber').')</h1>'
|
||||
.'<p>'.$self->get('description').'</p>'
|
||||
.'<p>'.$self->get('startDate').'</p>';
|
||||
|
||||
# build the add to cart form
|
||||
if ($form->get('badgeId') ne '') {
|
||||
my $addToCart = WebGUI::HTMLForm->new($self->session, action=>$self->getUrl);
|
||||
$addToCart->hidden(name=>"func", value=>"addToCart");
|
||||
$addToCart->hidden(name=>"badgeId", value=>$form->get('badgeId'));
|
||||
$addToCart->submit(value=>$i18n->get('add to cart','Shop'), label=>$self->getPrice);
|
||||
$output .= $addToCart->print;
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_addToCart
|
||||
|
||||
Takes form variable badgeId and add the ticket to the cart.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_addToCart {
|
||||
my ($self) = @_;
|
||||
return $self->session->privilege->noAccess() unless $self->getParent->canView;
|
||||
$self->addToCart({badgeId=>$self->session->form->get('badgeId')});
|
||||
return $self->getParent->www_view;
|
||||
my $badgeId = $self->session->form->get('badgeId');
|
||||
$self->addToCart({badgeId=>$badgeId});
|
||||
return $self->getParent->www_viewExtras($badgeId);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,13 @@ These methods are available from this class:
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 definition
|
||||
|
||||
Adds price field.
|
||||
|
||||
=cut
|
||||
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
|
|
@ -70,6 +77,13 @@ sub definition {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getConfiguredTitle
|
||||
|
||||
Returns title + badgeholder name.
|
||||
|
||||
=cut
|
||||
|
||||
sub getConfiguredTitle {
|
||||
my $self = shift;
|
||||
my $name = $self->session->db->getScalar("select name from EMSRegistrant where badgeId=?",[$self->getOptions->{badgeId}]);
|
||||
|
|
@ -77,12 +91,26 @@ sub getConfiguredTitle {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getPrice
|
||||
|
||||
Returns the value of the price field.
|
||||
|
||||
=cut
|
||||
|
||||
sub getPrice {
|
||||
my $self = shift;
|
||||
return $self->get("price");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 onCompletePurchase
|
||||
|
||||
Adds tokens to the badge.
|
||||
|
||||
=cut
|
||||
|
||||
sub onCompletePurchase {
|
||||
my ($self, $item) = @_;
|
||||
my $db = $self->session->db;
|
||||
|
|
@ -99,6 +127,13 @@ sub onCompletePurchase {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 purge
|
||||
|
||||
Destroys all tokens of this type. No refunds are given.
|
||||
|
||||
=cut
|
||||
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
$self->session->db->write("delete from EMSRegistrantToken where tokenAssetId=?",[$self->getId]);
|
||||
|
|
@ -106,19 +141,53 @@ sub purge {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 view
|
||||
|
||||
Displays the token description.
|
||||
|
||||
=cut
|
||||
|
||||
sub view {
|
||||
my ($self) = @_;
|
||||
return $self->getParent->view;
|
||||
my ($self) = @_;
|
||||
|
||||
# build objects we'll need
|
||||
my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
|
||||
my $form = $self->session->form;
|
||||
|
||||
|
||||
# render the page;
|
||||
my $output = '<h1>'.$self->getTitle.'</h1>'
|
||||
.'<p>'.$self->get('description').'</p>';
|
||||
|
||||
# build the add to cart form
|
||||
if ($form->get('badgeId') ne '') {
|
||||
my $addToCart = WebGUI::HTMLForm->new($self->session, action=>$self->getUrl);
|
||||
$addToCart->hidden(name=>"func", value=>"addToCart");
|
||||
$addToCart->hidden(name=>"badgeId", value=>$form->get('badgeId'));
|
||||
$addToCart->integer(name=>'quantity', value=>1, label=>$i18n->get('quantity','Shop'));
|
||||
$addToCart->submit(value=>$i18n->get('add to cart','Shop'), label=>$self->getPrice);
|
||||
$output .= $addToCart->print;
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_addToCart
|
||||
|
||||
Takes form variable badgeId and add the token to the cart.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_addToCart {
|
||||
my ($self) = @_;
|
||||
return $self->session->privilege->noAccess() unless $self->getParent->canView;
|
||||
$self->addToCart({badgeId=>$self->session->form->get('badgeId')});
|
||||
return $self->getParent->www_view;
|
||||
my $badgeId = $self->session->form->get('badgeId');
|
||||
$self->addToCart({badgeId=>$badgeId});
|
||||
return $self->getParent->www_viewExtras($badgeId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -34,6 +34,185 @@ use Data::Dumper;
|
|||
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 appendBadgeVars ( badgeId, vars )
|
||||
|
||||
Appends template variables for the current badge which is in the currenBadgeId scratch variable.
|
||||
|
||||
=cut
|
||||
|
||||
sub appendBadgeVars {
|
||||
my ($self, $badgeId, $vars) = @_;
|
||||
return undef unless $badgeId ne "";
|
||||
my $badgeInfo = $self->session->db->quickHashRef("select * from EMSRegistrant where badgeId=?",[$badgeId]);
|
||||
%{$vars} = (%{$vars}, %{$badgeInfo});
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
my $definition = shift;
|
||||
my %properties;
|
||||
tie %properties, 'Tie::IxHash';
|
||||
my $i18n = WebGUI::International->new($session,'Asset_EventManagementSystem');
|
||||
%properties = (
|
||||
timezone => {
|
||||
fieldType => 'TimeZone',
|
||||
defaultValue => 'America/Chicago',
|
||||
tab => 'properties',
|
||||
label => $i18n->get('time zone'),
|
||||
hoverHelp => $i18n->get('time zone help'),
|
||||
},
|
||||
templateId => {
|
||||
fieldType => 'template',
|
||||
defaultValue => '',
|
||||
tab => 'display',
|
||||
label => $i18n->get('main template'),
|
||||
hoverHelp => $i18n->get('main template help'),
|
||||
namespace => 'EMS',
|
||||
},
|
||||
extrasTemplateId => {
|
||||
fieldType => 'template',
|
||||
defaultValue => '',
|
||||
tab => 'display',
|
||||
label => $i18n->get('extras template'),
|
||||
hoverHelp => $i18n->get('extras template help'),
|
||||
namespace => 'EMS/Extras',
|
||||
},
|
||||
);
|
||||
push(@{$definition}, {
|
||||
assetName=>$i18n->get('assetName'),
|
||||
icon=>'ems.gif',
|
||||
autoGenerateForms=>1,
|
||||
tableName=>'EventManagementSystem',
|
||||
className=>'WebGUI::Asset::Wobject::EventManagementSystem',
|
||||
properties=>\%properties
|
||||
});
|
||||
return $class->SUPER::definition($session,$definition);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 prepareView ( )
|
||||
|
||||
See WebGUI::Asset::prepareView() for details.
|
||||
|
||||
=cut
|
||||
|
||||
sub prepareView {
|
||||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 view
|
||||
|
||||
Displays the list of configured badges. And other links.
|
||||
|
||||
=cut
|
||||
|
||||
sub view {
|
||||
my ($self) = @_;
|
||||
my $session = $self->session;
|
||||
return $session->privilege->noAccess() unless $self->canView;
|
||||
|
||||
# set up objects we'll need
|
||||
my $badgeId = $session->form->get("badgeId");
|
||||
my $i18n = WebGUI::International->new($session, "Asset_EventManagementSystem");
|
||||
my %var = ();
|
||||
|
||||
# get our badges
|
||||
foreach my $badge (@{$self->getLineage(["children"],{returnObjects=>1, includeOnlyClasses=>["WebGUI::Asset::Sku::EMSBadge"]})}) {
|
||||
push(@{$var{availableBadges}}, $self->get);
|
||||
$var{availableBadges}[-1]{isFull} = $badge->getQuantityAvailable;
|
||||
$var{availableBadges}[-1]{url} = $badge->getUrl;
|
||||
}
|
||||
|
||||
# other template variables
|
||||
$self->appendBadgeVars($badgeId, \%var);
|
||||
|
||||
# render
|
||||
return $self->processTemplate(\%var,undef,$self->{_viewTemplate});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_getBadgesAsJson ()
|
||||
|
||||
Retrieves a list of badges for the www_view() method.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_getBadgesAsJson {
|
||||
my ($self) = @_;
|
||||
my $session = $self->session;
|
||||
return $session->privilege->insufficient() unless $self->canView;
|
||||
my ($db, $form) = $session->quick(qw(db form));
|
||||
my $startIndex = $form->get('startIndex') || 0;
|
||||
my $numberOfResults = $form->get('results') || 25;
|
||||
my @placeholders = ();
|
||||
my $sql = 'select SQL_CALC_FOUND_ROWS assetId from EMSBadgeIndex';
|
||||
my $keywords = $form->get("keywords");
|
||||
if ($keywords ne "") {
|
||||
($sql, @placeholders) = $db->buildSearchQuery($sql, $keywords, [qw{amount username orderNumber shippingAddressName shippingAddress1 paymentAddressName paymentAddress1}])
|
||||
}
|
||||
push(@placeholders, $startIndex, $numberOfResults);
|
||||
$sql .= ' order by dateOfPurchase desc limit ?,?';
|
||||
my %results = $db->buildDataTableStructure($sql, \@placeholders);
|
||||
$results{'startIndex'} = $startIndex;
|
||||
$results{'sort'} = undef;
|
||||
$results{'dir'} = "desc";
|
||||
$session->http->setMimeType('text/json');
|
||||
return JSON::to_json(\%results);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
||||
=head2 www_viewExtras ( [badgeId] )
|
||||
|
||||
Displays available ribbons, tokens, and tickets for the current badge.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_viewExtras {
|
||||
my ($self, $badgeId) = @_;
|
||||
return $self->session->privilege->noAccess() unless $self->canView;
|
||||
$badgeId = $self->session->form->get("badgeId") unless ($badgeId eq "");
|
||||
|
||||
my %var = ();
|
||||
|
||||
# other template variables
|
||||
$self->appendBadgeVars($badgeId, \%var);
|
||||
|
||||
# render
|
||||
return $self->processTemplate(\%var,$self->get('viewRibbonsTemplate'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _getFieldHash {
|
||||
my $self = shift;
|
||||
|
|
@ -4108,25 +4287,7 @@ $self->getUrl('func=addToScratchCart;pid='.$event->{'productId'}.";mid=".$master
|
|||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub view {
|
||||
my ($self) = @_;
|
||||
my $session = $self->session;
|
||||
return $session->privilege->noAccess() unless $self->canView;
|
||||
|
||||
# set up objects we'll need
|
||||
my $i18n = WebGUI::International->new($session, "Asset_EventManagementSystem");
|
||||
my %var = ();
|
||||
|
||||
# get our badges
|
||||
foreach my $badge (@{$self->getLineage(["children"],{returnObjects=>1, includeOnlyClasses=>["WebGUI::Asset::Sku::EMSBadge"]})}) {
|
||||
push(@{$var{availableBadges}}, $self->get);
|
||||
$var{availableBadges}[-1]{isFull} = $badge->getQuantityAvailable;
|
||||
$var{availableBadges}[-1]{url} = $badge->getUrl;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub viewOLD {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,36 @@ package WebGUI::i18n::English::Asset_EventManagementSystem;
|
|||
use strict;
|
||||
|
||||
our $I18N = { ##hashref of hashes
|
||||
|
||||
'assetName' => {
|
||||
message => q|Event Manager (beta)|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'ems badge' => {
|
||||
message => q|Event Manager Badge|,
|
||||
lastUpdated => 0,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'ems ticket' => {
|
||||
message => q|Event Manager Ticket|,
|
||||
lastUpdated => 0,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'ems ribbon' => {
|
||||
message => q|Event Manager Ribbon|,
|
||||
lastUpdated => 0,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'ems token' => {
|
||||
message => q|Event Manager Token|,
|
||||
lastUpdated => 0,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'is required' => {
|
||||
message => q|%s is required.|,
|
||||
lastUpdated => 0,
|
||||
|
|
@ -75,145 +104,38 @@ our $I18N = { ##hashref of hashes
|
|||
context => q|help for a property label|,
|
||||
},
|
||||
|
||||
'event start date' => {
|
||||
message => q|Event Start Date|,
|
||||
lastUpdated => 0,
|
||||
context => q|Event start date field label|
|
||||
},
|
||||
|
||||
'event start date help' => {
|
||||
message => q|The time and date when the event starts.|,
|
||||
lastUpdated => 0,
|
||||
context => q|hover help for Event Start Date field|
|
||||
},
|
||||
|
||||
'event end date' => {
|
||||
message => q|Event End Date|,
|
||||
lastUpdated => 0,
|
||||
context => q|Event end date field label|
|
||||
},
|
||||
|
||||
'end date help' => {
|
||||
message => q|The time and date when the event ends.|,
|
||||
lastUpdated => 0,
|
||||
context => q|hover help for Event End Date field|
|
||||
},
|
||||
|
||||
|
||||
|
||||
'cancel registration' => {
|
||||
message => q|Cancel Registration|,
|
||||
lastUpdated => 0,
|
||||
context => q|Label for hyperlink asking user if they wish to cancel the registration process during checkout.|,
|
||||
},
|
||||
|
||||
'search template' => {
|
||||
message => q|Search Template|,
|
||||
lastUpdated => 1131394070,
|
||||
context => q|Field label for template selector|
|
||||
},
|
||||
|
||||
'search template description' => {
|
||||
message => q|Controls the layout, look, and appearance of the Event Management System Search Page.|,
|
||||
lastUpdated => 1165364261,
|
||||
context => q|Describes this template field selector|
|
||||
},
|
||||
|
||||
'display template' => {
|
||||
message => q|Display Template|,
|
||||
lastUpdated => 1131394070,
|
||||
context => q|Field label for template selector|
|
||||
},
|
||||
|
||||
'display template description' => {
|
||||
message => q|Controls the layout, look, and appearance of an Event Management System.|,
|
||||
lastUpdated => 1165364241,
|
||||
context => q|Describes this template field selector|
|
||||
},
|
||||
|
||||
'checkout template' => {
|
||||
message => q|Checkout Template|,
|
||||
lastUpdated => 1145400901,
|
||||
context => q|Field label for template selector|
|
||||
},
|
||||
|
||||
'checkout template description' => {
|
||||
message => q|Controls the layout, look, and appearance of the Checkout screen in the Event Management System.|,
|
||||
lastUpdated => 1165364248,
|
||||
context => q|Describes this template field selector|
|
||||
},
|
||||
|
||||
'manage purchases template' => {
|
||||
message => q|Manage Purchases Template|,
|
||||
lastUpdated => 1145400901,
|
||||
context => q|Field label for template selector|
|
||||
},
|
||||
|
||||
'manage purchases template description' => {
|
||||
message => q|Controls the layout, look, and appearance of the Manage Purchases screen in the Event Management System.|,
|
||||
lastUpdated => 1165364251,
|
||||
context => q|Describes this template field selector|
|
||||
},
|
||||
|
||||
'view purchase template' => {
|
||||
message => q|View Purchase Template|,
|
||||
lastUpdated => 1145400901,
|
||||
context => q|Field label for template selector|
|
||||
},
|
||||
|
||||
'view purchase template description' => {
|
||||
message => q|Controls the layout, look, and appearance of the View Purchase screen in the Event Management System.|,
|
||||
lastUpdated => 1165364253,
|
||||
context => q|Describes this template field selector|
|
||||
},
|
||||
|
||||
'add/edit event template' => {
|
||||
message => q|Event Template|,
|
||||
lastUpdated => 1131394070,
|
||||
context => q|Field label for event template selector|
|
||||
},
|
||||
|
||||
'add/edit event template description' => {
|
||||
message => q|Controls the layout, look, and appearance of an individual Event in the Event Management System.|,
|
||||
lastUpdated => 1165364256,
|
||||
context => q|Describes the event template field selector|
|
||||
},
|
||||
|
||||
'paginate after' => {
|
||||
message => q|Paginate After|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|Field label for Paginate After|
|
||||
},
|
||||
|
||||
'paginate after description' => {
|
||||
message => q|Number of events to display on one page.|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|Describes the Paginate After field|
|
||||
},
|
||||
|
||||
'group to add events' => {
|
||||
message => q|Group to Add Events|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|Field label|
|
||||
},
|
||||
|
||||
'group to add events description' => {
|
||||
message => q|Members of the selected group will have the ability to add events to an Event Management System.
|
||||
Events added will not be available for purchase until the event is approved by a member of the Group to Approve Events.|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|Describes the Group To Add Events field|
|
||||
},
|
||||
|
||||
'add/edit event start date' => {
|
||||
message => q|Event Start Date|,
|
||||
lastUpdated => 1138837472,
|
||||
context => q|Event start date field label|
|
||||
},
|
||||
|
||||
'add/edit event start date description' => {
|
||||
message => q|The time and date when the event starts.|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|hover help for Event Start Date field|
|
||||
},
|
||||
|
||||
'add/edit event end date' => {
|
||||
message => q|Event End Date|,
|
||||
lastUpdated => 1138837472,
|
||||
context => q|Event end date field label|
|
||||
},
|
||||
|
||||
'add/edit event end date description' => {
|
||||
message => q|The time and date when the event ends.|,
|
||||
lastUpdated => 1138837560,
|
||||
context => q|hover help for Event End Date field|
|
||||
},
|
||||
|
||||
'group to approve events' => {
|
||||
message => q|Group to Approve Events|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|Field Label|
|
||||
},
|
||||
|
||||
'group to approve events description' => {
|
||||
message => q|Members of the selected group will have the ability to approve a pending event so that it is available for purchase.|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|Describes the Group To Approve Events field|
|
||||
},
|
||||
|
||||
'add/edit event title' => {
|
||||
message => q|Event Title|,
|
||||
lastUpdated => 1138312761,
|
||||
|
|
@ -1046,36 +968,6 @@ by setting the "hide" form variable.|,
|
|||
lastUpdated => 1140465899,
|
||||
},
|
||||
|
||||
'assetName' => {
|
||||
message => q|Event Manager (beta)|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'ems badge' => {
|
||||
message => q|Event Manager Badge|,
|
||||
lastUpdated => 0,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'ems ticket' => {
|
||||
message => q|Event Manager Ticket|,
|
||||
lastUpdated => 0,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'ems ribbon' => {
|
||||
message => q|Event Manager Ribbon|,
|
||||
lastUpdated => 0,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'ems token' => {
|
||||
message => q|Event Manager Token|,
|
||||
lastUpdated => 0,
|
||||
context => q|name of asset|,
|
||||
},
|
||||
|
||||
'type name here' => {
|
||||
message => q|Type Name Here|,
|
||||
lastUpdated => 1140469381,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue