| Business-TNTPost-NL documentation | Contained in the Business-TNTPost-NL distribution. |
Business::TNTPost::NL::Data - Shipping cost data for Business::TNTPost::NL
Data module for Business::TNTPost::NL containing shipping cost information, country zones etc.
Nothing to see here, the show is over, move along please.
The following methods are used and can be exported
Returns a hashref with country and zone numbers
This method contains the heart of this module, the lookup table
Menno Blom, <blom@cpan.org>, http://menno.b10m.net/perl/
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
| Business-TNTPost-NL documentation | Contained in the Business-TNTPost-NL distribution. |
package Business::TNTPost::NL::Data; use strict; use base 'Exporter'; use vars qw($VERSION @EXPORT @EXPORT_OK %EXPORT_TAGS); use Carp; use YAML; $VERSION = 0.11; @EXPORT = qw(); @EXPORT_OK = qw(zones table); %EXPORT_TAGS = ("ALL" => [@EXPORT_OK]);
sub zones { my %zones = ( 0 => [ qw(NL) ], # NL 1 => [ qw(BE LU DK DE FR IT AT ES GB SE) ], # EU 1 2 => [ qw(BG EE FI HU IE LV LT PL PT RO SI SK CZ) ], # EU 2 3 => [ qw(AL AD BA IC CY FO GI GR GL IS HR LI MK MD MT ME NO UA SM RS TR VA BY CH) ], # EU 3 ); my %z; foreach my $key (keys %zones) { foreach my $val (@{$zones{$key}}) { $z{$val} = $key; } } return \%z; }
sub table { my $table = Load(<<'...'); --- # Netherlands netherlands: # Letters (brievenbuspost) small: stamp: '0,20': 0.46 '21,50': 0.92 '51,100': 1.38 '101,250': 1.84 '251,500': 2.30 '501,2000': 2.76 machine: '0,20': 0.42 '21,50': 0.84 '51,100': 1.26 '101,250': 1.67 '251,500': 2.09 '501,2000': 2.51 # Parcels (paketten) large: '0,10000': 6.75 '10001,30000': 12.20 # Register (aangetekend) register: stamp: '0,2000': 7.00 '2001,20000': 8.05 '20001,30000': 13.50 machine: '0,2000': 6.79 '2001,10000': 8.05 # Outside of the Netherlands world: basic: # Within Europe (EU1 & EU2) europe: # Letters (brievenbuspost) small: stamp: priority: '0,20': 0.79 '21,50': 1.58 '51,100': 2.37 '101,250': 3.16 '251,500': 6.32 '501,2000': 8.69 machine: priority: '0,20': 0.77 '21,50': 1.53 '51,100': 2.30 '101,250': 3.07 '251,500': 6.13 '501,2000': 8.43 # Outside Europe world: # Letters (brievenbuspost) small: stamp: priority: '0,20': 0.95 '21,50': 1.90 '51,100': 2.85 '101,250': 5.70 '251,500': 10.45 '501,2000': 16.15 machine: priority: '0,20': 0.92 '21,50': 1.84 '51,100': 2.76 '101,250': 5.53 '251,500': 10.14 '501,2000': 15.67 # Internationaal Pakket Plus (Track&Trace) plus: zone: # EU1 1: '0,2000': 13.00 '2001,5000': 19.50 '5001,10000': 25.00 '10001,20000': 34.00 '20001,30000': 40.46 # EU2 2: '0,2000': 18.50 '2001,5000': 25.00 '5001,10000': 31.00 '10001,20000': 40.00 '20001,30000': 47.60 # EU3 3: '0,2000': 19.30 '2001,5000': 26.30 '5001,10000': 32.30 '10001,20000': 42.30 # RoW 4: '0,2000': 24.30 '2001,5000': 34.30 '5001,10000': 58.30 '10001,20000': 105.30 # Register ("aangetekend") register: europe: stamp: '0,2000': 9.48 machine: '0,2000': 9.20 world: stamp: '0,2000': 16.15 machine: '0,2000': 15.67 ... return $table; }
1;