sales tax
This commit is contained in:
parent
4deff2a0a9
commit
f3ab99bc02
23 changed files with 607 additions and 111 deletions
|
|
@ -88,7 +88,7 @@ sub new {
|
|||
$session = shift;
|
||||
$eventId = shift;
|
||||
|
||||
my $eventData = $session->db->quickHashRef("select p.productId, p.title, p.description, p.price, p.sku, e.approved, e.passId, e.passType
|
||||
my $eventData = $session->db->quickHashRef("select p.productId, p.title, p.description, p.price, p.useSalesTax, p.sku, e.approved, e.passId, e.passType
|
||||
from EventManagementSystem_products as e, products as p
|
||||
where p.productId = e.productId and p.productId=".$session->db->quote($eventId));
|
||||
|
||||
|
|
@ -183,6 +183,12 @@ sub type {
|
|||
return 'Event';
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub useSalesTax {
|
||||
my $self = shift;
|
||||
return $self->{_event}->{useSalesTax} ? 1 : 0;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub weight {
|
||||
return 0;
|
||||
|
|
|
|||
33
lib/WebGUI/Commerce/Item/Fake.pm
Normal file
33
lib/WebGUI/Commerce/Item/Fake.pm
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
package WebGUI::Commerce::Item::Fake;
|
||||
# Adding this to cope with sales tax without changing the schema.
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2006 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use WebGUI::Commerce::Item;
|
||||
use base 'WebGUI::Commerce::Item';
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
my $id = shift;
|
||||
my $namespace = shift;
|
||||
my ($price, $name) = split /\,/, $id, 2;
|
||||
bless { _name => $name, _price => $price }, $class;
|
||||
}
|
||||
|
||||
sub useSalesTax { 0 }
|
||||
sub name { $_[0]{_name} }
|
||||
sub price { $_[0]{_price} }
|
||||
sub type { 'Fake' }
|
||||
sub id { "$_[0]{_price},$_[0]{_name}" }
|
||||
sub description { $_[0]{_name} }
|
||||
1;
|
||||
|
|
@ -44,36 +44,37 @@ sub description {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub handler {
|
||||
my $self = shift;
|
||||
|
||||
### Add to group action
|
||||
# If group is 'everyone', skip
|
||||
unless ($self->{_product}->get('groupId') eq '7') {
|
||||
my $g = WebGUI::Group->new($self->session,$self->{_product}->get('groupId'));
|
||||
my $expiresOffset;
|
||||
|
||||
# Parse the value
|
||||
if ($self->{_product}->get('groupExpiresOffset') =~ /^(\d+)month/i) {
|
||||
$expiresOffset = $1 * 3600*24*30; # One month
|
||||
} elsif ($self->{_product}->get('groupExpiresOffset') =~ /^(\d+)year/i) {
|
||||
$expiresOffset = $1 * 3600*24*365; # One year
|
||||
}
|
||||
|
||||
# Multiply by how many quantity we're purchasing
|
||||
#!!! TODO !!! - handlers don't know how many we're purchasing
|
||||
|
||||
# If user has time left
|
||||
my $remains = $g->userGroupExpireDate($self->session->user->userId);
|
||||
if ($remains) {
|
||||
# Add any remaining time to the offset
|
||||
$expiresOffset += $remains - time();
|
||||
}
|
||||
|
||||
# Add user to group
|
||||
$g->addUsers([$self->session->user->userId],$expiresOffset);
|
||||
}
|
||||
my $self = shift;
|
||||
|
||||
### Add to group action
|
||||
# If group is 'everyone', skip
|
||||
unless ($self->{_product}->get('groupId') eq '7') {
|
||||
my $g = WebGUI::Group->new($self->session,$self->{_product}->get('groupId'));
|
||||
my $expiresOffset;
|
||||
|
||||
# Parse the value
|
||||
if ($self->{_product}->get('groupExpiresOffset') =~ /^(\d+)month/i) {
|
||||
$expiresOffset = $1 * 3600*24*30; # One month
|
||||
} elsif ($self->{_product}->get('groupExpiresOffset') =~ /^(\d+)year/i) {
|
||||
$expiresOffset = $1 * 3600*24*365; # One year
|
||||
}
|
||||
|
||||
# Multiply by how many quantity we're purchasing
|
||||
#!!! TODO !!! - handlers don't know how many we're purchasing
|
||||
|
||||
# If user has time left
|
||||
my $remains = $g->userGroupExpireDate($self->session->user->userId);
|
||||
if ($remains) {
|
||||
# Add any remaining time to the offset
|
||||
$expiresOffset += $remains - time();
|
||||
}
|
||||
|
||||
# Add user to group
|
||||
$g->addUsers([$self->session->user->userId],$expiresOffset);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub id {
|
||||
return $_[0]->{_variant}->{variantId};
|
||||
|
|
@ -121,6 +122,12 @@ sub price {
|
|||
return $_[0]->{_variant}->{price};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub useSalesTax {
|
||||
my $self = shift;
|
||||
return $self->{_product}->get('useSalesTax') ? 1 : 0;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub type {
|
||||
return 'Product';
|
||||
|
|
|
|||
|
|
@ -82,6 +82,12 @@ sub price {
|
|||
return $_[0]->{_subscription}->get('price');
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub useSalesTax {
|
||||
my $self = shift;
|
||||
return $self->{_subscription}->get('useSalesTax') ? 1 : 0;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub type {
|
||||
return 'Subscription';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue