EMS Checkout code
This commit is contained in:
parent
84d43b8d19
commit
8288cfaa6b
4 changed files with 76 additions and 13 deletions
|
|
@ -541,7 +541,7 @@ my $sql4 = <<SQL4;
|
||||||
|
|
||||||
create table EventManagementSystem_purchases (
|
create table EventManagementSystem_purchases (
|
||||||
purchaseId varchar(22) not null,
|
purchaseId varchar(22) not null,
|
||||||
userId varchar(22),
|
transactionId varchar(22),
|
||||||
primary key(purchaseId)
|
primary key(purchaseId)
|
||||||
)
|
)
|
||||||
SQL4
|
SQL4
|
||||||
|
|
|
||||||
|
|
@ -435,7 +435,7 @@ sub getRegistrationInfo {
|
||||||
my %var;
|
my %var;
|
||||||
|
|
||||||
$var{'form.header'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl})
|
$var{'form.header'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl})
|
||||||
.WebGUI::Form::hidden($self->session,{name=>"func",value=>"www_saveRegistration"});
|
.WebGUI::Form::hidden($self->session,{name=>"func",value=>"saveRegistration"});
|
||||||
|
|
||||||
$var{'form.footer'} = WebGUI::Form::formFooter($self->session);
|
$var{'form.footer'} = WebGUI::Form::formFooter($self->session);
|
||||||
$var{'form.submit'} = WebGUI::Form::submit($self->session);
|
$var{'form.submit'} = WebGUI::Form::submit($self->session);
|
||||||
|
|
@ -448,15 +448,15 @@ sub getRegistrationInfo {
|
||||||
$var{'form.country.label'} = "Country";
|
$var{'form.country.label'} = "Country";
|
||||||
$var{'form.phoneNumber.label'} = "Phone Number";
|
$var{'form.phoneNumber.label'} = "Phone Number";
|
||||||
$var{'form.email.label'} = "Email Address";
|
$var{'form.email.label'} = "Email Address";
|
||||||
$var{'form.firstName'} = WebGUI::Form::Text($self->session,{});
|
$var{'form.firstName'} = WebGUI::Form::Text($self->session,{name=>'firstName'});
|
||||||
$var{'form.lastName'} = WebGUI::Form::Text($self->session,{});
|
$var{'form.lastName'} = WebGUI::Form::Text($self->session,{name=>'lastName'});
|
||||||
$var{'form.address'} = WebGUI::Form::Text($self->session,{});
|
$var{'form.address'} = WebGUI::Form::Text($self->session,{name=>'address'});
|
||||||
$var{'form.city'} = WebGUI::Form::Text($self->session,{});
|
$var{'form.city'} = WebGUI::Form::Text($self->session,{name=>'city'});
|
||||||
$var{'form.state'} = WebGUI::Form::Text($self->session,{});
|
$var{'form.state'} = WebGUI::Form::Text($self->session,{name=>'state'});
|
||||||
$var{'form.zipCode'} = WebGUI::Form::Text($self->session,{});
|
$var{'form.zipCode'} = WebGUI::Form::Text($self->session,{name=>'zipCode'});
|
||||||
$var{'form.country'} = WebGUI::Form::SelectList($self->session,{});
|
$var{'form.country'} = WebGUI::Form::SelectList($self->session,{name=>'country', options => {'us' => 'UnitedStates'}});
|
||||||
$var{'form.phoneNumber'} = WebGUI::Form::Phone($self->session,{});
|
$var{'form.phoneNumber'} = WebGUI::Form::Phone($self->session,{name=>'phoneNumber'});
|
||||||
$var{'form.email'} = WebGUI::Form::Email($self->session,{});
|
$var{'form.email'} = WebGUI::Form::Email($self->session,{name=>'email'});
|
||||||
$var{'registration'} = 1;
|
$var{'registration'} = 1;
|
||||||
return \%var;
|
return \%var;
|
||||||
}
|
}
|
||||||
|
|
@ -1149,6 +1149,44 @@ sub www_moveEventUp {
|
||||||
return $self->www_manageEvents;
|
return $self->www_manageEvents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
sub www_saveRegistration {
|
||||||
|
my $self = shift;
|
||||||
|
my $eventsInCart = $self->getEventsInCart;
|
||||||
|
my $purchaseId = $self->session->id->generate;
|
||||||
|
|
||||||
|
foreach my $eventId (@$eventsInCart) {
|
||||||
|
my $registrationId = $self->setCollateral("EventManagementSystem_registrations", "registrationId",
|
||||||
|
{
|
||||||
|
registrationId => "new",
|
||||||
|
purchaseId => $purchaseId,
|
||||||
|
productId => $eventId,
|
||||||
|
firstName => $self->session->form->get("firstName", "text"),
|
||||||
|
lastName => $self->session->form->get("lastName", "text"),
|
||||||
|
address => $self->session->form->get("address", "text"),
|
||||||
|
city => $self->session->form->get("city", "text"),
|
||||||
|
state => $self->session->form->get("state", "text"),
|
||||||
|
zipCode => $self->session->form->get("zipCode", "text"),
|
||||||
|
country => $self->session->form->get("country", "selectList"),
|
||||||
|
phone => $self->session->form->get("phoneNumber", "phone"),
|
||||||
|
email => $self->session->form->get("email", "email")
|
||||||
|
},0,0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#Our item plug-in needs to be able to associate these records with the result of the payment attempt
|
||||||
|
my $counter = 0;
|
||||||
|
while (1) {
|
||||||
|
unless ($self->session->scratch->get("purchaseId".$counter)) {
|
||||||
|
$self->session->scratch->set("purchaseId".$counter, $purchaseId);
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
$counter++;
|
||||||
|
}
|
||||||
|
#use Data::Dumper; print "<pre>".Dumper($self->session)."</pre>";
|
||||||
|
return $self->www_view;
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 prepareView ( )
|
=head2 prepareView ( )
|
||||||
|
|
@ -1199,7 +1237,8 @@ sub view {
|
||||||
|
|
||||||
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.label'} = "Checkout";
|
||||||
$var{'events_loop'} = \@events;
|
$var{'events_loop'} = \@events;
|
||||||
$var{'paginateBar'} = $p->getBarTraditional;
|
$var{'paginateBar'} = $p->getBarTraditional;
|
||||||
$var{'manageEvents.url'} = $self->getUrl('func=manageEvents');
|
$var{'manageEvents.url'} = $self->getUrl('func=manageEvents');
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,23 @@ sub description {
|
||||||
return $_[0]->{_event}->{description};
|
return $_[0]->{_event}->{description};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
sub handler {
|
||||||
|
my $self = shift;
|
||||||
|
my $transactionId = shift;
|
||||||
|
#mark all purchaseIds as paid
|
||||||
|
my $counter = 0;
|
||||||
|
while (1) {
|
||||||
|
my $purchaseId;
|
||||||
|
if ($purchaseId = $self->session->scratch->get("purchaseId".$counter)) {
|
||||||
|
$self->session->db->setRow('EventManagementSystem_purchases', 'purchaseId', {'purchaseId'=>$purchaseId, 'transactionId'=>$transactionId}, $purchaseId);
|
||||||
|
$self->session->scratch->delete("purchaseId".$counter);
|
||||||
|
$counter++;
|
||||||
|
}
|
||||||
|
else { last; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
sub id {
|
sub id {
|
||||||
return $_[0]->{_event}->{productId};
|
return $_[0]->{_event}->{productId};
|
||||||
|
|
@ -83,6 +100,12 @@ sub price {
|
||||||
return $_[0]->{_event}->{price};
|
return $_[0]->{_event}->{price};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
sub session {
|
||||||
|
my $self = shift;
|
||||||
|
return $self->{_session};
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
sub type {
|
sub type {
|
||||||
return 'Event';
|
return 'Event';
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,8 @@ sub completeTransaction {
|
||||||
|
|
||||||
foreach (@{$self->getItems}) {
|
foreach (@{$self->getItems}) {
|
||||||
$item = WebGUI::Commerce::Item->new($self->session,$_->{itemId}, $_->{itemType});
|
$item = WebGUI::Commerce::Item->new($self->session,$_->{itemId}, $_->{itemType});
|
||||||
$item->handler;
|
$item->handler($_->{transactionId});
|
||||||
|
#$item->handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->status('Completed');
|
$self->status('Completed');
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue