finished session changes to Commerce
This commit is contained in:
parent
991f4bea9f
commit
1f55efc92d
8 changed files with 46 additions and 27 deletions
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue