Google-Checkout

 view release on metacpan or  search on metacpan

lib/Google/Checkout/Command/DeliverOrder.pm  view on Meta::CPAN


=item set_carrier CARRIER

Sets the carrier that will be used to deliver the order.

=item get_tracking_number

Returns the tracking number provided by the carrier.

=item set_tracking_number TRACKING_NUMBER

Sets the tracking number provided by the carrier.

=item should_send_email

Returns true if email should be sent to user. Otherwise, 
returns false.

=item set_send_email FLAG

Sets the flag to send optional email to user or not.

=item to_xml

Return the XML that will be sent to Google Checkout. Note that 
this function should not be used directly. Instead, it's called 
indirectly by the C<Google::Checkout::General::GCO> object internally.

=back

=cut

=head1 COPYRIGHT

Copyright 2006 Google. All rights reserved.

=head1 SEE ALSO

Google::Checkout::Command::GCOCommand

=cut

use strict;
use warnings;

use Google::Checkout::XML::Constants;
use Google::Checkout::General::Util qw/get_valid_carrier is_gco_error/;

use Google::Checkout::Command::GCOCommand;
our @ISA = qw/Google::Checkout::Command::GCOCommand/;

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

  my $self = $class->SUPER::new(%args, name => Google::Checkout::XML::Constants::DELIVER_ORDER);
     $self->{carrier}         = $args{carrier};
     $self->{tracking_number} = $args{tracking_number} || '';
     $self->{send_email}      = $args{send_email} ? 'true' : 'false';

  return bless $self => $class;
}

sub get_carrier 
{ 
  my ($self) = @_;

  return $self->{carrier};
}

sub set_carrier
{
  my ($self, $carrier) = @_;

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

sub get_tracking_number 
{
  my ($self) = @_;
 
  return $self->{tracking_number}; 
}

sub set_tracking_number
{
  my ($self, $tracking_number) = @_;

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

sub should_send_email 
{ 
  my ($self) = @_;

  return $self->{send_email}; 
}

sub set_send_email
{
  my ($self, $should_send_email) = @_;

  $self->{send_email} = $should_send_email ? 'true' : 'false';
}

sub to_xml
{
  my ($self, @args) = @_;

  my $carrier = get_valid_carrier($self->get_carrier || '');
  my $tracking_number = $self->get_tracking_number;

  my $code = $self->SUPER::to_xml(@args);

  return $code if is_gco_error($code);

  $self->add_element(name => Google::Checkout::XML::Constants::SEND_EMAIL, 
                     data => $self->should_send_email, close => 1);

  $self->add_element(name => Google::Checkout::XML::Constants::TRACKING_DATA) 
    if (!is_gco_error($carrier) || $tracking_number);

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

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