finished session changes to Commerce

This commit is contained in:
Colin Kuskie 2006-01-13 23:33:48 +00:00
parent 991f4bea9f
commit 1f55efc92d
8 changed files with 46 additions and 27 deletions

View file

@ -38,12 +38,13 @@ sub name {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub new { sub new {
my ($class, $subscriptionId, $type, $subscription); my ($class, $session, $subscriptionId, $type, $subscription);
$class = shift; $class = shift;
$session = shift;
$subscriptionId = shift; $subscriptionId = shift;
$type = shift; $type = shift;
$subscription = WebGUI::Subscription->new($self->session,$subscriptionId); $subscription = WebGUI::Subscription->new($session,$subscriptionId);
bless {_subscription => $subscription, _subscriptionId => $subscriptionId}, $class; bless {_subscription => $subscription, _subscriptionId => $subscriptionId}, $class;
} }

View file

@ -711,7 +711,7 @@ my %transactionData = %{$self->{_transactionParams}};
</EmailText> </EmailText>
<OrderItems>\n"; <OrderItems>\n";
$items = WebGUI::Commerce::Transaction->new($transactionData{ORGID})->getItems; $items = WebGUI::Commerce::Transaction->new($self->session, $transactionData{ORGID})->getItems;
foreach (@{$items}) { foreach (@{$items}) {
$xml .= $xml .=
" <Item> " <Item>

View file

@ -46,7 +46,8 @@ sub init {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub name { sub name {
my $i18n = WebGUI::International->new($self->session, 'CommerceShippingByPrice'); my ($session) = @_;
my $i18n = WebGUI::International->new($session, 'CommerceShippingByPrice');
return $i18n->get('title'); return $i18n->get('title');
} }

View file

@ -46,7 +46,8 @@ sub init {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub name { sub name {
my $i18n = WebGUI::International->new($self->session, 'CommerceShippingByWeight'); my ($session) = @_;
my $i18n = WebGUI::International->new($session, 'CommerceShippingByWeight');
return $i18n->get('title'); return $i18n->get('title');
} }

View file

@ -42,7 +42,8 @@ sub init {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub name { sub name {
my $i18n = WebGUI::International->new($self->session, 'CommerceShippingPerTransaction'); my ($session) = @_;
my $i18n = WebGUI::International->new($session, 'CommerceShippingPerTransaction');
return $i18n->get('title'); return $i18n->get('title');
} }

View file

@ -264,7 +264,7 @@ sub getByGatewayId {
($transactionId) = $self->session->db->quickArray("select transactionId from transaction where gatewayId=".$self->session->db->quote($gatewayId). ($transactionId) = $self->session->db->quickArray("select transactionId from transaction where gatewayId=".$self->session->db->quote($gatewayId).
" and gateway=".$self->session->db->quote($paymentGateway)); " and gateway=".$self->session->db->quote($paymentGateway));
return WebGUI::Commerce::Transaction->new($transactionId) if $transactionId; return WebGUI::Commerce::Transaction->new($self->session, $transactionId) if $transactionId;
return undef; return undef;
} }
@ -331,7 +331,7 @@ sub getTransactions {
@transactionIds = $self->session->db->buildArray($sql); @transactionIds = $self->session->db->buildArray($sql);
foreach (@transactionIds) { foreach (@transactionIds) {
push(@transactions, WebGUI::Commerce::Transaction->new($_)); push(@transactions, WebGUI::Commerce::Transaction->new($self->session, $_));
} }
return @transactions; return @transactions;
@ -414,25 +414,26 @@ sub new {
my ($class, $transactionId, $gatewayId, $userId, $properties, $sth, $row, @items); my ($class, $transactionId, $gatewayId, $userId, $properties, $sth, $row, @items);
$class = shift; $class = shift;
my $session = shift;
$transactionId = shift; $transactionId = shift;
$gatewayId = shift; $gatewayId = shift;
$userId = shift || $self->session->user->profileField("userId"); $userId = shift || $session->user->profileField("userId");
if ($transactionId eq 'new') { if ($transactionId eq 'new') {
$transactionId = $self->session->id->generate; $transactionId = $session->id->generate;
$self->session->db->write("insert into transaction ". $session->db->write("insert into transaction ".
"(transactionId, userId, amount, gatewayId, initDate, completionDate, status) values ". "(transactionId, userId, amount, gatewayId, initDate, completionDate, status) values ".
"(".$self->session->db->quote($transactionId).",".$self->session->db->quote($userId).",0,".$self->session->db->quote($gatewayId).",".$self->session->db->quote(time).",NULL,'Pending')"); "(".$session->db->quote($transactionId).",".$session->db->quote($userId).",0,".$session->db->quote($gatewayId).",".$session->db->quote(time).",NULL,'Pending')");
} }
$properties = $self->session->db->quickHashRef("select * from transaction where transactionId=".$self->session->db->quote($transactionId)); $properties = $session->db->quickHashRef("select * from transaction where transactionId=".$session->db->quote($transactionId));
$sth = $self->session->db->read("select * from transactionItem where transactionId=".$self->session->db->quote($transactionId)); $sth = $session->db->read("select * from transactionItem where transactionId=".$session->db->quote($transactionId));
while ($row = $sth->hashRef) { while ($row = $sth->hashRef) {
push(@items, $row); push(@items, $row);
} }
bless {_transactionId => $transactionId, _properties => $properties, _items => \@items}, $class; bless {_session => $session, _transactionId => $transactionId, _properties => $properties, _items => \@items}, $class;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -445,10 +446,11 @@ Returns a reference to an array which contains transaction objects of all pendin
sub pendingTransactions { sub pendingTransactions {
my (@transactionIds, @transactions); my (@transactionIds, @transactions);
@transactionIds = $self->session->db->buildArray("select transactionId from transaction where status = 'Pending'"); my ($session) = @_;
@transactionIds = $session->db->buildArray("select transactionId from transaction where status = 'Pending'");
foreach (@transactionIds) { foreach (@transactionIds) {
push(@transactions, WebGUI::Commerce::Transaction->new($_)); push(@transactions, WebGUI::Commerce::Transaction->new($session, $_));
} }
return \@transactions; return \@transactions;
@ -456,6 +458,19 @@ sub pendingTransactions {
#------------------------------------------------------------------- #-------------------------------------------------------------------
=head2 session
Returns the cached, local session variable.
=cut
sub session {
my ($self) = @_;
return $self->{_session};
}
#-------------------------------------------------------------------
=head2 shippingCost ( [amount] ) =head2 shippingCost ( [amount] )
Returns the shipping cost for this transaction. If amount is supplied the sipping cost will Returns the shipping cost for this transaction. If amount is supplied the sipping cost will
@ -632,13 +647,13 @@ The ID of the user you want the transaction of.
=cut =cut
sub transactionsByUser { sub transactionsByUser {
my ($self, @transactionIds, @transactions, $userId); my (@transactionIds, @transactions);
my $self = shift; my $self = shift;
my $userId = shift; my $userId = shift;
@transactionIds = $self->session->db->buildArray("select transactionId from transaction where userId =".$self->session->db->quote($userId)); @transactionIds = $self->session->db->buildArray("select transactionId from transaction where userId =".$self->session->db->quote($userId));
foreach (@transactionIds) { foreach (@transactionIds) {
push (@transactions, WebGUI::Commerce::Transaction->new($_)); push (@transactions, WebGUI::Commerce::Transaction->new($self->session, $_));
} }
return \@transactions; return \@transactions;

View file

@ -92,7 +92,7 @@ sub www_cancelTransaction {
my $session = shift; my $session = shift;
my ($transaction, %var); my ($transaction, %var);
$transaction = WebGUI::Commerce::Transaction->new($session->form->process("tid")); $transaction = WebGUI::Commerce::Transaction->new($session, $session->form->process("tid"));
unless ($transaction->status eq 'Completed') { unless ($transaction->status eq 'Completed') {
$transaction->cancelTransaction; $transaction->cancelTransaction;
} }
@ -249,7 +249,7 @@ sub www_checkoutSubmit {
$plugin->shippingDescription($shippingDescription); $plugin->shippingDescription($shippingDescription);
# Write transaction to the log with status pending # Write transaction to the log with status pending
$transaction = WebGUI::Commerce::Transaction->new('new'); $transaction = WebGUI::Commerce::Transaction->new($session, 'new');
foreach (@{$currentPurchase->{items}}) { foreach (@{$currentPurchase->{items}}) {
$transaction->addItem($_->{item}, $_->{quantity}); $transaction->addItem($_->{item}, $_->{quantity});
$amount += ($_->{item}->price * $_->{quantity}); $amount += ($_->{item}->price * $_->{quantity});
@ -329,7 +329,7 @@ sub www_completePendingTransaction {
my $session = shift; my $session = shift;
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3)); return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
WebGUI::Commerce::Transaction->new($session->form->process("tid"))->completeTransaction; WebGUI::Commerce::Transaction->new($session, $session->form->process("tid"))->completeTransaction;
return WebGUI::Operation::execute('listPendingTransactions'); return WebGUI::Operation::execute('listPendingTransactions');
} }
@ -352,7 +352,7 @@ sub www_confirmTransaction {
$plugin = WebGUI::Commerce::Payment->load($session, $session->form->process("pg")); $plugin = WebGUI::Commerce::Payment->load($session, $session->form->process("pg"));
if ($plugin->confirmTransaction) { if ($plugin->confirmTransaction) {
WebGUI::Commerce::Transaction->new($plugin->getTransactionId)->completeTransaction; WebGUI::Commerce::Transaction->new($session, $plugin->getTransactionId)->completeTransaction;
} }
} }
@ -540,7 +540,7 @@ sub www_listPendingTransactions {
$i18n = WebGUI::International->new($session, "Commerce"); $i18n = WebGUI::International->new($session, "Commerce");
$p = WebGUI::Paginator->new($session,$session->url->page('op=listPendingTransactions')); $p = WebGUI::Paginator->new($session,$session->url->page('op=listPendingTransactions'));
$p->setDataByArrayRef(WebGUI::Commerce::Transaction->pendingTransactions); $p->setDataByArrayRef(WebGUI::Commerce::Transaction->pendingTransactions($session));
$transactions = $p->getPageData; $transactions = $p->getPageData;

View file

@ -68,7 +68,7 @@ sub www_cancelRecurringTransaction {
my $i18n = WebGUI::International->new($session, "TransactionLog"); my $i18n = WebGUI::International->new($session, "TransactionLog");
$transaction = WebGUI::Commerce::Transaction->new($session->form->process("tid")); $transaction = WebGUI::Commerce::Transaction->new($session, $session->form->process("tid"));
if ($transaction->isRecurring) { if ($transaction->isRecurring) {
$error = $transaction->cancelTransaction; $error = $transaction->cancelTransaction;
$message = $i18n->get('cancel error').$error if ($error); $message = $i18n->get('cancel error').$error if ($error);
@ -96,7 +96,7 @@ sub www_deleteTransaction {
$transactionId = $session->form->process("tid"); $transactionId = $session->form->process("tid");
WebGUI::Commerce::Transaction->new($transactionId)->delete; WebGUI::Commerce::Transaction->new($session, $transactionId)->delete;
return WebGUI::Operation::execute('listTransactions'); return WebGUI::Operation::execute('listTransactions');
} }
@ -106,7 +106,7 @@ sub www_deleteTransactionItem {
my $session = shift; my $session = shift;
return $session->privilege->insufficient unless ($session->user->isInGroup(3)); return $session->privilege->insufficient unless ($session->user->isInGroup(3));
WebGUI::Commerce::Transaction->new($session->form->process("tid"))->deleteItem($session->form->process("iid"), $session->form->process("itype")); WebGUI::Commerce::Transaction->new($session, $session->form->process("tid"))->deleteItem($session->form->process("iid"), $session->form->process("itype"));
return WebGUI::Operation::execute('listTransactions'); return WebGUI::Operation::execute('listTransactions');
} }