Convert README to Markdown for nice GitHub viewing
[interchange.git] / code / UI_Tag / available_www_shipping.coretag
1 # Copyright 2002-2007 Interchange Development Group and others
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.  See the LICENSE file for details.
7
8 UserTag available_www_shipping Order   only
9 UserTag available_www_shipping Version 1.5
10 UserTag available_www_shipping Routine <<EOR
11 sub {
12         my ($only) = @_;
13         my $ups;
14
15         if(! $only or $only =~ /ups/i) {
16                 eval {
17                         require Business::UPS;
18                 };
19                 $ups = $@ ? 0 : 1;
20         }
21         
22         my @ups_modes;
23         if($ups) {
24                 push @ups_modes,
25                         '1DM' => {type => 'UPS', description => 'Next Day Air Early AM'},
26                         '1DML' => {type => 'UPS', description => 'Next Day Air Early AM Letter'},
27                         '1DA' => {type => 'UPS', description => 'Next Day Air'},
28                         '1DAL' => {type => 'UPS', description => 'Next Day Air Letter'},
29                         '1DP' => {type => 'UPS', description => 'Next Day Air Saver'},
30                         '1DPL' => {type => 'UPS', description => 'Next Day Air Saver Letter'},
31                         '2DM' => {type => 'UPS', description => '2nd Day Air A.M.'},
32                         '2DA' => {type => 'UPS', description => '2nd Day Air'},
33                         '2DML' => {type => 'UPS', description => '2nd Day Air A.M. Letter'},
34                         '2DAL' => {type => 'UPS', description => '2nd Day Air Letter'},
35                         '3DS' => {type => 'UPS', description => '3 Day Select'},
36                         'GNDCOM' => {type => 'UPS', description => 'Ground Commercial'},
37                         'GNDRES' => {type => 'UPS', description => 'Ground Residential'},
38                         'XPR' => {type => 'UPS', description => 'Worldwide Express'},
39                         'XDM' => {type => 'UPS', description => 'Worldwide Express Plus'},
40                         'XPRL' => {type => 'UPS', description => 'Worldwide Express Letter'},
41                         'XDML' => {type => 'UPS', description => 'Worldwide Express Plus Letter'},
42                         'XPD' => {type => 'UPS', description => 'Worldwide Expedited'},
43                 ;
44         }
45
46         if (wantarray) {
47                 return @ups_modes;
48         }
49         else {
50                 my $out = '';
51                 my $i;
52                 for ($i = 0; $i < @ups_modes; $i += 2) {
53                         my $ref = $ups_modes[$i + 1];
54                         $out .= qq{UPSE:$ups_modes[$i]\t$ref->{type}: $ref->{description}\n};
55                 }
56                 return $out;
57         }
58 }
59 EOR