Merge commit 'v7.10.22' into WebGUI8
This commit is contained in:
commit
431cd280a4
92 changed files with 3543 additions and 313 deletions
|
|
@ -257,15 +257,17 @@ sub duplicate {
|
|||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $copy = $self->SUPER::duplicate(@_);
|
||||
my $oldGroupId = $self->get('subscriptionGroupId');
|
||||
my $key = 'subscriptionGroupId';
|
||||
my $oldGroupId = $self->get($key);
|
||||
|
||||
if ($oldGroupId) {
|
||||
my $newGroup = WebGUI::Group->new($session, 'new');
|
||||
my $oldGroup = WebGUI::Group->new($session, $oldGroupId);
|
||||
if ($oldGroup) {
|
||||
$copy->update({ $key => '' });
|
||||
$copy->createSubscriptionGroup();
|
||||
if (my $oldGroup = WebGUI::Group->new($session, $oldGroupId)) {
|
||||
my $newGroup = WebGUI::Group->new($session, $copy->get($key));
|
||||
$newGroup->addUsers($oldGroup->getUsers('withoutExpired'));
|
||||
$newGroup->addGroups($oldGroup->getGroupsIn);
|
||||
}
|
||||
$copy->update({subscriptionGroupId => $newGroup->getId});
|
||||
}
|
||||
return $copy;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -592,6 +592,22 @@ sub processStyle {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 purge ( )
|
||||
|
||||
Extent the base class to clean out any items using this Sku in all Carts.
|
||||
|
||||
=cut
|
||||
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
my $assetId = $self->getId;
|
||||
my $success = $self->SUPER::purge;
|
||||
return $success unless $success;
|
||||
$self->session->db->write('delete from cartItem where assetId=?',[$assetId]);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setTaxConfiguration ($namespace, $configuration)
|
||||
|
||||
=head3 $namespace
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ property templateId => (
|
|||
|
||||
use JSON;
|
||||
use WebGUI::International;
|
||||
use WebGUI::Shop::Admin;
|
||||
use WebGUI::Shop::AddressBook;
|
||||
|
||||
=head1 NAME
|
||||
|
|
@ -204,6 +205,28 @@ sub getMaxAllowedInCart {
|
|||
return 1;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getPostPurchaseActions ( item )
|
||||
|
||||
Return a hash reference of "label" => "url" to do things with this item after
|
||||
it is purchased. C<item> is the WebGUI::Shop::TransactionItem for this item
|
||||
|
||||
=cut
|
||||
|
||||
sub getPostPurchaseActions {
|
||||
my ( $self, $item ) = @_;
|
||||
my $session = $self->session;
|
||||
my $opts = $self->SUPER::getPostPurchaseActions();
|
||||
if($self->getParent->isRegistrationStaff) {
|
||||
my $i18n = WebGUI::International->new( $session, "Asset_EventManagementSystem" );
|
||||
my $badgeId = $item->get('options')->{badgeId};
|
||||
|
||||
$opts->{ $i18n->get('print') } = $self->getParent->getUrl( "func=printBadge;badgeId=$badgeId" );
|
||||
}
|
||||
return $opts;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getPrice
|
||||
|
|
@ -404,11 +427,19 @@ sub view {
|
|||
;
|
||||
|
||||
# instanciate address
|
||||
my $address = WebGUI::Shop::AddressBook->newByUserId($self->session)->getAddress($form->get("addressId")) if ($form->get("addressId"));
|
||||
my $address = undef;
|
||||
my $address_book = WebGUI::Shop::AddressBook->newByUserId($self->session);
|
||||
if ($form->get("addressId")) {
|
||||
$address = $address_book->getAddress($form->get("addressId"));
|
||||
}
|
||||
else {
|
||||
$address = eval{ $address_book->getDefaultAddress }
|
||||
}
|
||||
|
||||
# build the form that the user needs to fill out with badge holder information
|
||||
$vars{formHeader} = WebGUI::Form::formHeader($session, {action => $self->getUrl})
|
||||
. WebGUI::Form::hidden($session, {name=>"func", value =>'addToCart'});
|
||||
. WebGUI::Form::hidden($session, {name=>"func", value =>'addToCart'})
|
||||
. WebGUI::Form::hidden($session, {name=>"addressId", value=>(defined $address ? $address->getId : "" )});;
|
||||
$vars{formFooter} = WebGUI::Form::formFooter($session);
|
||||
$vars{name} = WebGUI::Form::text($session, {
|
||||
name => 'name',
|
||||
|
|
@ -457,9 +488,21 @@ sub view {
|
|||
if($self->getQuantityAvailable() > 0){
|
||||
$vars{submitAddress} = WebGUI::Form::submit($session, {value => $i18n->get('add to cart'),});
|
||||
}
|
||||
$vars{resetButton} = q{<input type="button" value="}.$i18n->get('clear form'). q{" onclick="WebGUI.Form.clearForm(this.form)" />};
|
||||
$vars{title} = $self->getTitle;
|
||||
$vars{description} = $self->description;
|
||||
|
||||
$vars{search_url } = $self->getUrl("shop=address;method=ajaxSearch");
|
||||
|
||||
my $shopAdmin = WebGUI::Shop::Admin->new($session);
|
||||
my $isStaff = $self->getParent->isRegistrationStaff;
|
||||
my $canManageShop = $shopAdmin->canManage;
|
||||
my $isCashier = $shopAdmin->isCashier;
|
||||
|
||||
if($isStaff && ($canManageShop || $isCashier)) {
|
||||
$vars{canSearch} = 1;
|
||||
}
|
||||
|
||||
# render the page;
|
||||
return $self->processTemplate(\%vars, undef, $self->{_viewTemplate});
|
||||
}
|
||||
|
|
@ -495,13 +538,46 @@ sub www_addToCart {
|
|||
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);
|
||||
}
|
||||
|
||||
|
||||
#check to see if address has changed - if so, create a new address and set it to the default
|
||||
my $address_id = $form->get("addressId");
|
||||
if($address_id) {
|
||||
my $address = undef;
|
||||
my $address_book = WebGUI::Shop::AddressBook->newByUserId($self->session);
|
||||
$address = $address_book->getAddress($address_id);
|
||||
my $has_changes = 0;
|
||||
my $new_address = {};
|
||||
foreach my $field_name (qw/name address1 address2 address3 city state country code phoneNumber organization email/) {
|
||||
my $form_field_name = $field_name;
|
||||
$form_field_name = "zipcode" if ($field_name eq "code");
|
||||
if($field_name eq "name") {
|
||||
if($address->get('firstName')." ".$address->get('lastName') ne $badgeInfo{name}) {
|
||||
$has_changes = 1;
|
||||
}
|
||||
($new_address->{firstName},$new_address->{lastName}) = split(" ",$badgeInfo{name});
|
||||
next;
|
||||
}
|
||||
elsif($address->get($field_name) ne $badgeInfo{$form_field_name}) {
|
||||
$has_changes = 1;
|
||||
}
|
||||
$new_address->{$field_name} = $badgeInfo{$form_field_name};
|
||||
}
|
||||
|
||||
if($has_changes) {
|
||||
my $address_book = WebGUI::Shop::AddressBook->newByUserId($self->session);
|
||||
$new_address->{label} = $form->get("label")." New";
|
||||
my $new_address = $address_book->addAddress($new_address);
|
||||
$address_book->update({defaultAddressId => $new_address->getId });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# add it to the cart
|
||||
$self->addToCart(\%badgeInfo);
|
||||
return $self->getParent->www_buildBadge($self->getOptions->{badgeId});
|
||||
|
|
|
|||
|
|
@ -2590,9 +2590,10 @@ sub www_printBadge {
|
|||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
return $session->privilege->insufficient unless ($self->isRegistrationStaff);
|
||||
my $form = $session->form;
|
||||
my $registrant = $self->getRegistrant($form->get('badgeId'));
|
||||
my $badge = WebGUI::Asset::Sku::EMSBadge->newById($session, $registrant->{badgeAssetId});
|
||||
my $form = $session->form;
|
||||
my $badgeId = $form->get('badgeId');
|
||||
my $registrant = $self->getRegistrant($badgeId);
|
||||
my $badge = WebGUI::Asset::Sku::EMSBadge->newById($session, $registrant->{badgeAssetId});
|
||||
$registrant->{badgeTitle} = $badge->getTitle;
|
||||
|
||||
# Add badge metadata
|
||||
|
|
@ -2601,6 +2602,42 @@ sub www_printBadge {
|
|||
$registrant->{ "badgeMeta_" . $key } = $meta->{ $key };
|
||||
}
|
||||
|
||||
#Add tickets
|
||||
my @tickets = $session->db->buildArray(
|
||||
q{select ticketAssetId from EMSRegistrantTicket where badgeId=?},
|
||||
[$badgeId]
|
||||
);
|
||||
|
||||
$registrant->{ticket_loop} = [];
|
||||
foreach my $ticketId (@tickets) {
|
||||
my $ticket = WebGUI::Asset::Sku::EMSTicket->newById($session, $ticketId);
|
||||
push (@{$registrant->{ticket_loop}}, $ticket->get);
|
||||
}
|
||||
|
||||
#Add ribbons
|
||||
my @ribbons = $session->db->buildArray(
|
||||
q{select ribbonAssetId from EMSRegistrantRibbon where badgeId=?},
|
||||
[$badgeId]
|
||||
);
|
||||
|
||||
$registrant->{ribbon_loop} = [];
|
||||
foreach my $ribbonId (@ribbons) {
|
||||
my $ribbon = WebGUI::Asset::Sku::EMSRibbon->newById($session, $ribbonId);
|
||||
push (@{$registrant->{ribbon_loop}}, $ribbon->get);
|
||||
}
|
||||
|
||||
## Add tokens
|
||||
my @tokens = $session->db->buildArray(
|
||||
q{select tokenAssetId from EMSRegistrantToken where badgeId=?},
|
||||
[$badgeId]
|
||||
);
|
||||
|
||||
$registrant->{token_loop} = [];
|
||||
foreach my $tokenId (@tokens) {
|
||||
my $token = WebGUI::Asset::Sku::EMSToken->newById($session, $tokenId);
|
||||
push (@{$registrant->{token_loop}}, $token->get);
|
||||
}
|
||||
|
||||
return $self->processTemplate($registrant,$self->printBadgeTemplateId);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -643,7 +643,7 @@ sub editThingDataSave {
|
|||
}
|
||||
if ($field->{status} eq "required" && ($fieldValue =~ /^\s$/x || $fieldValue eq "" || !(defined $fieldValue))) {
|
||||
push (@errors,{
|
||||
"error_message"=>$field->{label}." ".$i18n->get('is required error').".",
|
||||
"error_message"=>$field->{label}." ".$i18n->get('is required error').".", "field_name"=>$fieldName,
|
||||
});
|
||||
}
|
||||
if ($field->{status} eq "hidden") {
|
||||
|
|
@ -659,7 +659,7 @@ sub editThingDataSave {
|
|||
|
||||
unless ( $self->isUniqueEntry($thingId,$fieldName,$fieldValue,$thingDataId)) {
|
||||
push (@errors,{
|
||||
"error_message"=>$field->{label}. $i18n->get('needs to be unique error'),
|
||||
"error_message"=>$field->{label}. $i18n->get('needs to be unique error'),"field_name"=>$fieldName,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue