made event handlers for cart/sku
created baseline emsbadge and emsticket added completePurchase() and denyPurchase() utility methods for transaction
This commit is contained in:
parent
f3fd67378f
commit
2a2e683dd9
9 changed files with 884 additions and 170 deletions
|
|
@ -66,25 +66,7 @@ A hash reference as generated by getOptions().
|
|||
sub addToCart {
|
||||
my ($self, $options) = @_;
|
||||
$self->applyOptions($options);
|
||||
my $cart = WebGUI::Shop::Cart->create($self->session);
|
||||
$cart->addItem($self);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 adjustQuantityAvailable ( amount )
|
||||
|
||||
Adjust the quantity of this product that is available. Send a negative number to decrease, or a positive number to increase. Returns getQuantityAvailable.
|
||||
|
||||
=head3 amount
|
||||
|
||||
A signed integer that represents the amount to adjust
|
||||
|
||||
=cut
|
||||
|
||||
sub adjustQuantityAvailable {
|
||||
my ($self, $amount) = @_;
|
||||
return $self->setQuantityAvailable($self->getQuantityAvailable + $amount);
|
||||
$self->getCart->addItem($self);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -175,6 +157,13 @@ sub definition {
|
|||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getCart ( ) {
|
||||
my $self = shift;
|
||||
return WebGUI::Shop::Cart->getCartBySession($self->session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getConfiguredTitle ( )
|
||||
|
|
@ -345,6 +334,61 @@ sub newBySku {
|
|||
return WebGUI::Asset->newByDynamicClass($session, $assetId);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 onAdjustQuantityInCart ( item, amount )
|
||||
|
||||
Called just after the quantity is adjusted in the cart. Should be overridden by subclasses that need to account for inventory or other bookkeeping.
|
||||
|
||||
=head3 item
|
||||
|
||||
Receives a reference to the WebGUI::Shop::CartItem so it can determine things like itemId and quantity if it needs them for book keeping purposes.
|
||||
|
||||
=head3 amount
|
||||
|
||||
The amount to be adjusted for. Could be positive if more are being added to the cart or negative if more are being removed from the cart.
|
||||
|
||||
=cut
|
||||
|
||||
sub onAdjustQuantityInCart {
|
||||
my ($self, $item, $amount) = @_;
|
||||
return undef;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 onCompletePurchase ( item )
|
||||
|
||||
Called just after payment has been made. It allows for privileges to be given, or bookkeeping
|
||||
tasks to be performed. It should be overriden by subclasses that need to do special processing after the purchase.
|
||||
|
||||
=head3 item
|
||||
|
||||
Receives a reference to the WebGUI::Shop::CartItem so it can determine things like itemId and quantity if it needs them for book keeping purposes.
|
||||
|
||||
=cut
|
||||
|
||||
sub onCompletePurchase {
|
||||
my ($self, $item) = @_;
|
||||
return undef;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 onRemoveFromCart ( item )
|
||||
|
||||
Called by the cart just B<before> the item is removed from the cart. This allows for cleanup. Should be overridden by subclasses for inventory control or other housekeeping.
|
||||
|
||||
=head3 item
|
||||
|
||||
Receives a reference to the WebGUI::Shop::CartItem so it can determine things like itemId and quantity if it needs them for book keeping purposes.
|
||||
|
||||
=cut
|
||||
|
||||
sub onRemoveFromCart {
|
||||
my ($self, $item) = @_;
|
||||
return undef;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
|
@ -366,23 +410,6 @@ sub processStyle {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setQuantityAvailable ( amount )
|
||||
|
||||
Set the quantity of this product that is available. Returns getQuantityAvailable(). Should be overridden by skus that keep track of quantity.
|
||||
|
||||
=head3 amount
|
||||
|
||||
A signed integer that represents the quantity to set it to.
|
||||
|
||||
=cut
|
||||
|
||||
sub setQuantityAvailable {
|
||||
my ($self, $amount) = @_;
|
||||
return $self->getQuantityAvailable;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_view ( )
|
||||
|
||||
Renders self->view based upon current style, subject to timeouts. Returns Privilege::noAccess() if canView is False.
|
||||
|
|
|
|||
271
lib/WebGUI/Asset/Sku/EMSBadge.pm
Normal file
271
lib/WebGUI/Asset/Sku/EMSBadge.pm
Normal file
|
|
@ -0,0 +1,271 @@
|
|||
package WebGUI::Asset::Sku::EMSBadge;
|
||||
|
||||
=head1 LEGAL
|
||||
|
||||
-------------------------------------------------------------------
|
||||
WebGUI is Copyright 2001-2008 Plain Black Corporation.
|
||||
-------------------------------------------------------------------
|
||||
Please read the legal notices (docs/legal.txt) and the license
|
||||
(docs/license.txt) that came with this distribution before using
|
||||
this software.
|
||||
-------------------------------------------------------------------
|
||||
http://www.plainblack.com info@plainblack.com
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=cut
|
||||
|
||||
use strict;
|
||||
use Tie::IxHash;
|
||||
use base 'WebGUI::Asset::Sku';
|
||||
use JSON;
|
||||
use WebGUI::HTMLForm;
|
||||
use WebGUI::International;
|
||||
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Package WebGUI::Asset::Sku::EMSBadge
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
A badge for the Event Manager.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use WebGUI::Asset::Sku::EMSBadge;
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
These methods are available from this class:
|
||||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub addToCart {
|
||||
my ($self, $badgeInfo) = @_;
|
||||
$badgeInfo->{badgeId} = "new";
|
||||
$badgeInfo->{badgeAssetId} = $self->getId;
|
||||
$badgeInfo->{emsAssetId} = $self->getParent->getId;
|
||||
my $badgeId = $self->session->db->setRow("EMSRegistrant","badgeId", $badgeInfo);
|
||||
$self->SUPER::addToCart({badgeId=>$badgeId, name=>$badgeInfo->{name}});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
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 = (
|
||||
price => {
|
||||
tab => "commerce",
|
||||
fieldType => "float",
|
||||
defaultValue => 0.00,
|
||||
label => $i18n->get("price"),
|
||||
hoverHelp => $i18n->get("price help"),
|
||||
},
|
||||
seatsAvailable => {
|
||||
tab => "properties",
|
||||
fieldType => "integer",
|
||||
defaultValue => 100,
|
||||
label => $i18n->get("seats available"),
|
||||
hoverHelp => $i18n->get("seats available help"),
|
||||
},
|
||||
);
|
||||
push(@{$definition}, {
|
||||
assetName => $i18n->get('ems badge'),
|
||||
icon => 'EMSBadge.gif',
|
||||
autoGenerateForms => 1,
|
||||
tableName => 'EMSBadge',
|
||||
className => 'WebGUI::Asset::Sku::EMSBadge',
|
||||
properties => \%properties
|
||||
});
|
||||
return $class->SUPER::definition($session, $definition);
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getConfiguredTitle {
|
||||
my $self = shift;
|
||||
return $self->getTitle." (".$self->getOptions->{name}.")";
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getMaxAllowedInCart {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getPrice {
|
||||
my $self = shift;
|
||||
return $self->get("price");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getQuantityAvailable {
|
||||
my $self = shift;
|
||||
my $seatsTaken = $self->session->db->quickScalar("select count(*) from EMSRegistrant where badgeAssetId=? and purchaseComplete=1",[$self->getId]);
|
||||
return $self->get("seatsAvailable") - $seatsTaken;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub onCompletePurchase {
|
||||
my ($self, $item) = @_;
|
||||
my $badgeInfo = $self->getOptions;
|
||||
$badgeInfo->{purchaseComplete} = 1;
|
||||
$badgeInfo->{userId} = $self->session->user->userId; # they have to be logged in at this point
|
||||
$self->session->db->setRow("EMSRegistrant","badgeId", $badgeInfo);
|
||||
return undef;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub onRemoveFromCart {
|
||||
my ($self, $item) = @_;
|
||||
my $badgeId = $self->getOptions->{badgeId};
|
||||
foreach my $cartitem (@{$item->cart->getItems()}) {
|
||||
if (isIn((ref $cartitem), qw(WebGUI::Asset::Sku::EMSTicket WebGUI::Asset::Sku::EMSRibbon WebGUI::Asset::Sku::EMSToken))) {
|
||||
if ($cartitem->getSku->getOptions->{badgeId} eq $badgeId) {
|
||||
$cartitem->remove;
|
||||
}
|
||||
}
|
||||
}
|
||||
$self->session->db->deleteRow('EMSRegistrant','badgeId',$badgeId);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
$self->session->db->write("delete from EMSRegistrant where badgeAssetId=?",[$self->getId]);
|
||||
$self->SUPER::purge;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub view {
|
||||
my ($self) = @_;
|
||||
|
||||
my $error = $self->{_errorMessage};
|
||||
my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
|
||||
my $form = $self->session->form;
|
||||
|
||||
# build the form to allow the user to choose from their address book
|
||||
my $book = WebGUI::HTMLForm->new($self->session, action=>$self->getUrl);
|
||||
$book->hidden(name=>"shop", value=>"address");
|
||||
$book->hidden(name=>"method", value=>"view");
|
||||
$book->hidden(name=>"callback", value=>JSON::to_json({
|
||||
url => $self->getUrl,
|
||||
}));
|
||||
$book->submit(value=>$i18n->get("populate from address book"));
|
||||
|
||||
# instanciate address
|
||||
my $address = WebGUI::Shop::Address->new($self->session, $form->get("addressId")) if ($form->get("addressId"));
|
||||
|
||||
# build the form that the user needs to fill out with badge holder information
|
||||
my $info = WebGUI::HTMLForm->new($self->session, action=>$self->getUrl);
|
||||
$info->hidden(name=>"func", value=>"addToCart");
|
||||
$info->text(
|
||||
name => 'name',
|
||||
defaultValue => (defined $address) ? $address->get("name") : $form->get('name'),
|
||||
label => $i18n->get('name','Shop'),
|
||||
);
|
||||
$info->text(
|
||||
name => 'organization',
|
||||
defaultValue => $form->get("organization"),
|
||||
label => $i18n->get('organization'),
|
||||
);
|
||||
$info->text(
|
||||
name => 'address1',
|
||||
defaultValue => (defined $address) ? $address->get("address1") : $form->get('address1'),
|
||||
label => $i18n->get('address','Shop'),
|
||||
);
|
||||
$info->text(
|
||||
name => 'address2',
|
||||
defaultValue => (defined $address) ? $address->get("address2") : $form->get('address2'),
|
||||
);
|
||||
$info->text(
|
||||
name => 'address3',
|
||||
defaultValue => (defined $address) ? $address->get("address3") : $form->get('address3'),
|
||||
);
|
||||
$info->text(
|
||||
name => 'city',
|
||||
defaultValue => (defined $address) ? $address->get("city") : $form->get('city'),
|
||||
label => $i18n->get('city','Shop'),
|
||||
);
|
||||
$info->text(
|
||||
name => 'state',
|
||||
defaultValue => (defined $address) ? $address->get("state") : $form->get('state'),
|
||||
label => $i18n->get('state','Shop'),
|
||||
);
|
||||
$info->zipcode(
|
||||
name => 'zipcode',
|
||||
defaultValue => (defined $address) ? $address->get("code") : $form->get('zipcode','zipcode'),
|
||||
label => $i18n->get('code','Shop'),
|
||||
);
|
||||
$info->country(
|
||||
name => 'country',
|
||||
defaultValue => (defined $address) ? $address->get("country") : ($form->get('country') || 'United States'),
|
||||
label => $i18n->get('country','Shop'),
|
||||
);
|
||||
$info->phone(
|
||||
name => 'phoneNumber',
|
||||
defaultValue => (defined $address) ? $address->get("phoneNumber") : $form->get("phone","phone"),
|
||||
label => $i18n->get('phone number','Shop'),
|
||||
);
|
||||
$info->email(
|
||||
name => 'email',
|
||||
label => $i18n->get('email address'),
|
||||
defaultValue => $form->get("email","email")
|
||||
);
|
||||
$info->submit(value=>"add to cart");
|
||||
|
||||
# render the page;
|
||||
my $output = '<h1>'.$self->getTitle.'</h1>'
|
||||
.'<p>'.$self->get('description').'</p>'
|
||||
.'<h2>'.$i18n->get("badge holder information").'</h2>'
|
||||
.$book->print;
|
||||
if ($error ne "") {
|
||||
$output .= '<p><b>'.$error.'</b></p>';
|
||||
}
|
||||
$output .= $info->print;
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_addToCart {
|
||||
my ($self) = @_;
|
||||
return $self->session->privilege->noAccess() unless $self->getParent->canView;
|
||||
|
||||
# gather badge info
|
||||
my $form = $self->session->form;
|
||||
my %badgeInfo = ();
|
||||
foreach my $field (qw(name address1 address2 address3 city state organization)) {
|
||||
$badgeInfo{$field} = $form->get($field, "text");
|
||||
}
|
||||
$badgeInfo{'phoneNumber'} = $form->get('phoneNumber', 'phone');
|
||||
$badgeInfo{'email'} = $form->get('email', 'email');
|
||||
$badgeInfo{'country'} = $form->get('country', 'country');
|
||||
$badgeInfo{'zipcode'} = $form->get('zipcode', 'zipcode');
|
||||
|
||||
|
||||
# check for required fields
|
||||
my $error = "";
|
||||
my $i18n = WebGUI::International->new($self->session, 'Asset_EventManagementSystem');
|
||||
if ($badgeInfo{name} eq "") {
|
||||
$error = sprintf $i18n->get('is required'), $i18n->get('name','Shop');
|
||||
}
|
||||
|
||||
# return them back to the previous screen if they messed up
|
||||
if ($error) {
|
||||
$self->{_errorMessage} = $error;
|
||||
return $self->www_view($error);
|
||||
}
|
||||
|
||||
# add it to the cart
|
||||
$self->addToCart(\%badgeInfo);
|
||||
return $self->getParent->www_view;
|
||||
}
|
||||
|
||||
1;
|
||||
169
lib/WebGUI/Asset/Sku/EMSTicket.pm
Normal file
169
lib/WebGUI/Asset/Sku/EMSTicket.pm
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
package WebGUI::Asset::Sku::EMSTicket;
|
||||
|
||||
=head1 LEGAL
|
||||
|
||||
-------------------------------------------------------------------
|
||||
WebGUI is Copyright 2001-2008 Plain Black Corporation.
|
||||
-------------------------------------------------------------------
|
||||
Please read the legal notices (docs/legal.txt) and the license
|
||||
(docs/license.txt) that came with this distribution before using
|
||||
this software.
|
||||
-------------------------------------------------------------------
|
||||
http://www.plainblack.com info@plainblack.com
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=cut
|
||||
|
||||
use strict;
|
||||
use Tie::IxHash;
|
||||
use base 'WebGUI::Asset::Sku';
|
||||
|
||||
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Package WebGUI::Asset::Sku::EMSBadge
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
A badge for the Event Manager.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use WebGUI::Asset::Sku::EMSBadge;
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
These methods are available from this class:
|
||||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub addToCart {
|
||||
my ($self, $badgeInfo) = @_;
|
||||
$self->session->db->write("insert into EMSRegistrantTicket (badgeId, ticketAssetId) values (?,?)",
|
||||
[$badgeInfo->{badgeId},$self->getId]);
|
||||
$self->addToCart($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");
|
||||
my $date = WebGUI::DateTime->new($session, time());
|
||||
%properties = (
|
||||
price => {
|
||||
tab => "commerce",
|
||||
fieldType => "float",
|
||||
defaultValue => 0.00,
|
||||
label => $i18n->get("price"),
|
||||
hoverHelp => $i18n->get("price help"),
|
||||
},
|
||||
seatsAvailable => {
|
||||
tab => "properties",
|
||||
fieldType => "integer",
|
||||
defaultValue => 25,
|
||||
label => $i18n->get("seats available"),
|
||||
hoverHelp => $i18n->get("seats available help"),
|
||||
},
|
||||
eventNumber => {
|
||||
tab => "properties",
|
||||
fieldType => "integer",
|
||||
defaultValue => $session->db->quickScalar("select max(eventNumber)+1 from EMSTicket"),
|
||||
label => $i18n->get("seats available"),
|
||||
hoverHelp => $i18n->get("seats available help"),
|
||||
},
|
||||
startDate => {
|
||||
tab => "properties",
|
||||
fieldType => "dateTime",
|
||||
defaultValue => $date->toDatabase,
|
||||
label => $i18n->get("add/edit event start date"),
|
||||
hoverHelp => $i18n->get("add/edit event start date description"),
|
||||
},
|
||||
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"),
|
||||
},
|
||||
relatedBadges => {
|
||||
tab => "properties",
|
||||
fieldType => "checkList",
|
||||
options => {},
|
||||
defaultValue => undef,
|
||||
label => $i18n->get("related badges"),
|
||||
hoverHelp => $i18n->get("related badges help"),
|
||||
},
|
||||
);
|
||||
push(@{$definition}, {
|
||||
assetName => $i18n->get('ems ticket'),
|
||||
icon => 'EMSTicket.gif',
|
||||
autoGenerateForms => 1,
|
||||
tableName => 'EMSTicket',
|
||||
className => 'WebGUI::Asset::Sku::EMSTicket',
|
||||
properties => \%properties
|
||||
});
|
||||
return $class->SUPER::definition($session, $definition);
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getConfiguredTitle {
|
||||
my $self = shift;
|
||||
return $self->getTitle." (".$self->getOptions->{name}.")";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getMaxAllowedInCart {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getPrice {
|
||||
my $self = shift;
|
||||
return $self->get("price");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getQuantityAvailable {
|
||||
my $self = shift;
|
||||
my $seatsTaken = $self->session->db->quickScalar("select count(*) from EMSRegistrantTicket where ticketAssetId=? and purchaseComplete=1",[$self->getId]);
|
||||
return $self->get("seatsAvailable") - $seatsTaken;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub onCompletePurchase {
|
||||
my ($self, $item) = @_;
|
||||
$self->session->db->write("update EMSRegistrantTicket set purchaseComplete=1 where ticketAssetId=? and badgeId=?",
|
||||
[$self->getId, $self->getOptions->{badgeId}]);
|
||||
return undef;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub onRemoveFromCart {
|
||||
my ($self, $item) = @_;
|
||||
$self->session->db->write("delete from EMSRegistrantTicket where ticketAssetId=? and badgeId=?",
|
||||
[$self->getId, $self->getOptions->{badgeId}]);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
$self->session->db->write("delete from EMSRegistrantTicket where ticketAssetId=?",[$self->getId]);
|
||||
$self->SUPER::purge;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub view {
|
||||
my ($self) = @_;
|
||||
my $session = $self->session;
|
||||
return "Don't know what it is to view this thing.";
|
||||
}
|
||||
|
||||
|
||||
1;
|
||||
|
|
@ -454,95 +454,88 @@ sub definition {
|
|||
tie %properties, 'Tie::IxHash';
|
||||
my $i18n = WebGUI::International->new($session,'Asset_EventManagementSystem');
|
||||
%properties = (
|
||||
displayTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000001',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem",
|
||||
hoverHelp=>$i18n->get('display template description'),
|
||||
label=>$i18n->get('display template')
|
||||
},
|
||||
checkoutTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000003',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem_checkout",
|
||||
hoverHelp=>$i18n->get('checkout template description'),
|
||||
label=>$i18n->get('checkout template')
|
||||
},
|
||||
managePurchasesTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000004',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem_managePurchas",
|
||||
hoverHelp=>$i18n->get('manage purchases template description'),
|
||||
label=>$i18n->get('manage purchases template')
|
||||
},
|
||||
viewPurchaseTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000005',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem_viewPurchase",
|
||||
hoverHelp=>$i18n->get('view purchase template description'),
|
||||
label=>$i18n->get('view purchase template')
|
||||
},
|
||||
searchTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000006',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem_search",
|
||||
hoverHelp=>$i18n->get('search template description'),
|
||||
label=>$i18n->get('search template')
|
||||
},
|
||||
badgePrinterTemplateId => {
|
||||
fieldType => "template",
|
||||
defaultValue => "emsbadgeprintout000000",
|
||||
tab => "display",
|
||||
namespace => "emsbadgeprint",
|
||||
lable => "Badge Printer Template",
|
||||
},
|
||||
ticketPrinterTemplateId => {
|
||||
fieldType => "template",
|
||||
defaultValue => "emsticketprintout00000",
|
||||
tab => "display",
|
||||
namespace => "emsticketprint",
|
||||
lable => "Ticket Printer Template",
|
||||
},
|
||||
paginateAfter =>{
|
||||
fieldType=>"integer",
|
||||
defaultValue=>10,
|
||||
tab=>"display",
|
||||
hoverHelp=>$i18n->get('paginate after description'),
|
||||
label=>$i18n->get('paginate after')
|
||||
},
|
||||
groupToAddEvents =>{
|
||||
fieldType=>"group",
|
||||
defaultValue=>3,
|
||||
tab=>"security",
|
||||
hoverHelp=>$i18n->get('group to add events description'),
|
||||
label=>$i18n->get('group to add events')
|
||||
},
|
||||
groupToApproveEvents =>{
|
||||
fieldType=>"group",
|
||||
defaultValue=>3,
|
||||
tab=>"security",
|
||||
hoverHelp=>$i18n->get('group to approve events description'),
|
||||
label=>$i18n->get('group to approve events')
|
||||
},
|
||||
globalPrerequisites =>{
|
||||
fieldType=>"yesNo",
|
||||
defaultValue=>1,
|
||||
tab=>"properties",
|
||||
label=>$i18n->get('global prerequisite'),
|
||||
hoverHelp=>$i18n->get('global prerequisite description')
|
||||
},
|
||||
globalMetadata =>{
|
||||
fieldType=>"yesNo",
|
||||
defaultValue=>1,
|
||||
tab=>"properties",
|
||||
label=>$i18n->get('global metadata'),
|
||||
hoverHelp=>$i18n->get('global metadata description')
|
||||
},
|
||||
timezone => {
|
||||
fieldType => 'TimeZone',
|
||||
defaultValue => 'America/Chicago',
|
||||
tab => 'properties',
|
||||
label => $i18n->get('time zone'),
|
||||
hoverHelp => $i18n->get('time zone help'),
|
||||
},
|
||||
displayTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000001',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem",
|
||||
hoverHelp=>$i18n->get('display template description'),
|
||||
label=>$i18n->get('display template')
|
||||
},
|
||||
checkoutTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000003',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem_checkout",
|
||||
hoverHelp=>$i18n->get('checkout template description'),
|
||||
label=>$i18n->get('checkout template')
|
||||
},
|
||||
managePurchasesTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000004',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem_managePurchas",
|
||||
hoverHelp=>$i18n->get('manage purchases template description'),
|
||||
label=>$i18n->get('manage purchases template')
|
||||
},
|
||||
viewPurchaseTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000005',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem_viewPurchase",
|
||||
hoverHelp=>$i18n->get('view purchase template description'),
|
||||
label=>$i18n->get('view purchase template')
|
||||
},
|
||||
searchTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'EventManagerTmpl000006',
|
||||
tab=>"display",
|
||||
namespace=>"EventManagementSystem_search",
|
||||
hoverHelp=>$i18n->get('search template description'),
|
||||
label=>$i18n->get('search template')
|
||||
},
|
||||
badgePrinterTemplateId => {
|
||||
fieldType => "template",
|
||||
defaultValue => "emsbadgeprintout000000",
|
||||
tab => "display",
|
||||
namespace => "emsbadgeprint",
|
||||
lable => "Badge Printer Template",
|
||||
},
|
||||
ticketPrinterTemplateId => {
|
||||
fieldType => "template",
|
||||
defaultValue => "emsticketprintout00000",
|
||||
tab => "display",
|
||||
namespace => "emsticketprint",
|
||||
lable => "Ticket Printer Template",
|
||||
},
|
||||
paginateAfter =>{
|
||||
fieldType=>"integer",
|
||||
defaultValue=>10,
|
||||
tab=>"display",
|
||||
hoverHelp=>$i18n->get('paginate after description'),
|
||||
label=>$i18n->get('paginate after')
|
||||
},
|
||||
groupToAddEvents =>{
|
||||
fieldType=>"group",
|
||||
defaultValue=>3,
|
||||
tab=>"security",
|
||||
hoverHelp=>$i18n->get('group to add events description'),
|
||||
label=>$i18n->get('group to add events')
|
||||
},
|
||||
groupToApproveEvents =>{
|
||||
fieldType=>"group",
|
||||
defaultValue=>3,
|
||||
tab=>"security",
|
||||
hoverHelp=>$i18n->get('group to approve events description'),
|
||||
label=>$i18n->get('group to approve events')
|
||||
},
|
||||
);
|
||||
push(@{$definition}, {
|
||||
assetName=>$i18n->get('assetName'),
|
||||
|
|
@ -4114,8 +4107,29 @@ $self->getUrl('func=addToScratchCart;pid='.$event->{'productId'}.";mid=".$master
|
|||
return $self->processStyle($self->processTemplate(\%var,$self->getValue("searchTemplateId")));
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
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 {
|
||||
my $self = shift;
|
||||
my %var;
|
||||
return $self->session->privilege->noAccess() unless $self->canView;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue