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 (
|
||||
purchaseId varchar(22) not null,
|
||||
userId varchar(22),
|
||||
transactionId varchar(22),
|
||||
primary key(purchaseId)
|
||||
)
|
||||
SQL4
|
||||
|
|
|
|||
|
|
@ -435,7 +435,7 @@ sub getRegistrationInfo {
|
|||
my %var;
|
||||
|
||||
$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.submit'} = WebGUI::Form::submit($self->session);
|
||||
|
|
@ -448,15 +448,15 @@ sub getRegistrationInfo {
|
|||
$var{'form.country.label'} = "Country";
|
||||
$var{'form.phoneNumber.label'} = "Phone Number";
|
||||
$var{'form.email.label'} = "Email Address";
|
||||
$var{'form.firstName'} = WebGUI::Form::Text($self->session,{});
|
||||
$var{'form.lastName'} = WebGUI::Form::Text($self->session,{});
|
||||
$var{'form.address'} = WebGUI::Form::Text($self->session,{});
|
||||
$var{'form.city'} = WebGUI::Form::Text($self->session,{});
|
||||
$var{'form.state'} = WebGUI::Form::Text($self->session,{});
|
||||
$var{'form.zipCode'} = WebGUI::Form::Text($self->session,{});
|
||||
$var{'form.country'} = WebGUI::Form::SelectList($self->session,{});
|
||||
$var{'form.phoneNumber'} = WebGUI::Form::Phone($self->session,{});
|
||||
$var{'form.email'} = WebGUI::Form::Email($self->session,{});
|
||||
$var{'form.firstName'} = WebGUI::Form::Text($self->session,{name=>'firstName'});
|
||||
$var{'form.lastName'} = WebGUI::Form::Text($self->session,{name=>'lastName'});
|
||||
$var{'form.address'} = WebGUI::Form::Text($self->session,{name=>'address'});
|
||||
$var{'form.city'} = WebGUI::Form::Text($self->session,{name=>'city'});
|
||||
$var{'form.state'} = WebGUI::Form::Text($self->session,{name=>'state'});
|
||||
$var{'form.zipCode'} = WebGUI::Form::Text($self->session,{name=>'zipCode'});
|
||||
$var{'form.country'} = WebGUI::Form::SelectList($self->session,{name=>'country', options => {'us' => 'UnitedStates'}});
|
||||
$var{'form.phoneNumber'} = WebGUI::Form::Phone($self->session,{name=>'phoneNumber'});
|
||||
$var{'form.email'} = WebGUI::Form::Email($self->session,{name=>'email'});
|
||||
$var{'registration'} = 1;
|
||||
return \%var;
|
||||
}
|
||||
|
|
@ -1149,6 +1149,44 @@ sub www_moveEventUp {
|
|||
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 ( )
|
||||
|
|
@ -1199,7 +1237,8 @@ sub view {
|
|||
|
||||
push (@events, {'event' => $self->processTemplate(\%eventFields, $event->{'templateId'}) });
|
||||
}
|
||||
|
||||
$var{'checkout.url'} = $self->getUrl('op=viewCart');
|
||||
$var{'checkout.label'} = "Checkout";
|
||||
$var{'events_loop'} = \@events;
|
||||
$var{'paginateBar'} = $p->getBarTraditional;
|
||||
$var{'manageEvents.url'} = $self->getUrl('func=manageEvents');
|
||||
|
|
|
|||
|
|
@ -37,6 +37,23 @@ sub 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 {
|
||||
return $_[0]->{_event}->{productId};
|
||||
|
|
@ -83,6 +100,12 @@ sub price {
|
|||
return $_[0]->{_event}->{price};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub session {
|
||||
my $self = shift;
|
||||
return $self->{_session};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub type {
|
||||
return 'Event';
|
||||
|
|
|
|||
|
|
@ -103,7 +103,8 @@ sub completeTransaction {
|
|||
|
||||
foreach (@{$self->getItems}) {
|
||||
$item = WebGUI::Commerce::Item->new($self->session,$_->{itemId}, $_->{itemType});
|
||||
$item->handler;
|
||||
$item->handler($_->{transactionId});
|
||||
#$item->handler;
|
||||
}
|
||||
|
||||
$self->status('Completed');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue