Google-Checkout

 view release on metacpan or  search on metacpan

lib/Google/Checkout/General/TaxRule.pm  view on Meta::CPAN


=item set_rate RATE

Sets the tax rate.

=item require_shipping_tax FLAG

If there is a FLAG pass in, it sets the shipping tax
flag and return the old value. If no argument is passed
in, it returns the current shipping tax flag.

=item get_area

Returns the C<Google::Checkout::General::TaxTableAreas> object 
where this tax rule is applied to.

=item set_area AREA

Sets where this tax rule should be applied to.

=back

=cut

=head1 COPYRIGHT

Copyright 2006 Google. All rights reserved.

=head1 SEE ALSO

Google::Checkout::General::TaxTableAreas

=cut

#--
#-- Represent the <[default|alternate>-tax-rule> element
#--

use strict;
use warnings;

sub new 
{
  my ($class, %args) = @_;

  my $self = { shipping_tax => $args{shipping_tax} ? 'true' : 'false',
               rate         => $args{rate} || 0 };
              
  if ($args{area})
  {
    if (ref $args{area} eq 'ARRAY')
    {
      push(@{$self->{area}}, $_) for @{$args{area}};
    }
    else
    {
      push(@{$self->{area}}, $args{area});
    }
  }

  return bless $self => $class;
}

sub get_rate 
{
  my ($self) = @_;
 
  return $self->{rate}; 
}

sub set_rate
{
  my ($self, $rate) = @_;

  $self->{rate} = $rate if $rate;
}

sub require_shipping_tax 
{
  my ($self, $data) = @_;

  my $oldv = $self->{shipping_tax};

  $self->{shipping_tax} = $data if @_ > 1;
 
  return $oldv;
}

sub get_area 
{
  my ($self) = @_;
 
  return $self->{area} || []; 
}

sub add_area
{
  my ($self, $area) = @_;

  push(@{$self->{area}}, $area) if $area;
}

1;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 2.028 seconds using v1.00-cache-2.02-grep-82fe00e-cpan-f5108d614456 )