GatewayLog adjustments
[interchange.git] / code / UI_Tag / write_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 write-shipping Order      file
9 UserTag write-shipping PosNumber  1
10 UserTag write-shipping addAttr
11 UserTag write-shipping Version    1.6
12 UserTag write-shipping Routine    <<EOR
13 sub {
14         my ($file, $opt) = @_;
15         if(! $file) {
16                 unless($file = $Vend::Cfg->{Special}{'shipping.asc'}) {
17                         my $dir = $Vend::Cfg->{Shipping}{dir} || $Vend::Cfg->{ProductDir};
18                         $file = Vend::Util::catfile($dir,'shipping.asc');
19         }
20         }
21
22         ## This is set so the UI knows where to check for changes
23         $::Scratch->{ui_shipping_asc} = $file;
24
25         my $lines = $Vend::Cfg->{Shipping_line};
26         my @outlines;
27         for (@$lines) {
28                 #    0      1      2      3     4     5       6      7
29                 # ($mode, $desc, $crit, $min, $max, $cost, $query, $opt) 
30                 my @line = @$_;
31                 my $opt = '';
32                 if (ref($line[7]) =~ /HASH/) {
33                         $line[7] = uneval_it($line[7]);
34                 }
35                 push @outlines, \@line;
36         }
37
38         # Back the file up
39         $Tag->backup_file($file);
40
41         open(SHIPOUT, ">$file")
42                 or die errmsg("Can't write shipping to %s: %s", $file, $!);
43         for(@outlines) {
44                 print SHIPOUT join "\t", @$_;
45                 print SHIPOUT "\n";
46         }
47         close SHIPOUT;
48 }
49 EOR